Trong con robot tự động mẫu của chúng tôi, chúng tôi đặt 2 cặp sensor IR: bên trái
(Left) và bên phải (Right) ở phần đầu của robot. Khi sensor trái cắt đường trắng,
giá trị của sensor sẽ hạ xuống dưới mức điện áp ngưỡng đặt trước và chúng ta
buộc phải để cho robot chạy sang trái một vài bước để điều chỉnh hướng đi của
nó. Hoặc khi sensor phải cắt vào vạch trắng, giá trị của sensor phải sẽ thấp hơn
giá trị ngưỡng đặt sẵn, chúng ta phải cho robot chạy sang phải một vài bước để
điều chính hướng chạy chính xác. Nếu cả hai sensor đều không cắt vạch trắng thì
chúng ta giả định là đã đi đúng hướng và để nó chạy thẳng.
16 trang |
Chia sẻ: tlsuongmuoi | Lượt xem: 2322 | Lượt tải: 3
Bạn đang xem nội dung tài liệu Hướng dẫn làm robocon, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
H ng d nướ ẫ
ROBOCON 2005 Sample Robots
Ng i d ch: ườ ị
roboconaz@gmail.com
www.robocon.vn
www.skynet.com.vn
Hà n i 2006ộ
N i dungộ
Ch ng 1: Đi u khi n DC Motor ươ ề ể
1.1 Gi i thi u ho t đ ng DC motor ớ ệ ạ ộ
1.2Đi u khi n h ng chuy n đ ng dùng m ch c u Hề ể ướ ể ộ ạ ầ
1.3 Đi u khi n DC motor dòng nh (1A) dùng L293Bề ể ỏ
1.4 Đi u khi n DC motor dòng l n (2A) dùng L298ề ể ớ
1.5Đi u khi n t c đ DC Motor dùng ch nh đ r ng xung (Pulse Widthề ể ố ộ ỉ ộ ộ
Modulation -PWM)
1.6 Ph n c ng Pulse Width Modulation (PWM)ầ ứ
1.7 Ph n m m Pulse Width Modulation (PWM)ầ ề
Ch ng 2:ươ Dò đ ng tr ng dùng Sensor h ng ngo i (IR) ườ ắ ồ ạ
2.1 các đ c tính c a IR sensorặ ủ
2.2 IR Sensor đi u bi nề ế
Ch ng 3:ươ L p trình Robot t đ ngậ ự ộ
3.1 Ch y theo đ ng tr ngạ ườ ắ
3.2 Dò và đ m nh ng đ ng c t ế ữ ườ ắ
Ch ng 1: Đi u khi n DC Motor ươ ề ể
1.1 Gi i thi u ho t đ ng DC motor ớ ệ ạ ộ
Đ cho motor 1 chi u ho t đ ng, chúng ta c n đ t 1 đi n áp 1 chi u vào motor andể ề ạ ộ ầ ặ ệ ề
1 dòng đi n 1 chi u s ch y qua motor, motor s quay theo 1 chi u nào đó.ệ ề ẽ ạ ẽ ề
N u chúng ta đ i chi u c a đi n áp 1 chi u này, motor s quay ng c l iế ổ ề ủ ệ ề ẽ ượ ạ
Chú ý: đi n áp V và dòng I không nên v t quá giá tr đ c ghi trên motor, n uệ ượ ị ượ ế
không motor s b h ng. Tuy nhiên n u ta đ t 1 đi n áp th p h n V ho c 1 dòngẽ ị ỏ ế ặ ệ ấ ơ ặ
đi n th p h n I, thì t c đ và đ ch u t i c a motor s gi m theo.ệ ấ ơ ố ộ ộ ị ả ủ ẽ ả
1.2 Đi u khi n h ng chuy n đ ng dùng m ch c u H ề ể ướ ể ộ ạ ầ
Đ đi u khi n h ng quay c a motor 1 chi u, chúng ta c n đ t đi n áp lên motor.ể ề ể ướ ủ ề ầ ặ ệ
Có 1 m ch ph bi n dùng đ đi u khi n motor g i là c u H. Nó đ c g i nhạ ổ ế ể ề ể ọ ầ ượ ọ ư
v y b i vì m ch này trông gi ng hình ch ‘H’. M t trong nh ng kh năng c c hayậ ở ạ ố ữ ộ ữ ả ự
c a m ch này là nó cho phép đi u khi n motor ti n lên ho c lùi l i b t kỳ t c đủ ạ ề ể ế ặ ạ ở ấ ố ộ
nào, ngoài ra nó còn có th dùng 1 ngu n đi n đ c l p [1].ể ồ ệ ộ ậ
Khi đ u vào ‘Direction’ tr ng thái cao thì motor s chuy n sang ch đ h ngầ ở ạ ẽ ể ế ộ ướ
bình th ng. N u đ u vào ‘Direction’ tr ng thái th p thì motor s quay ng cườ ế ầ ở ạ ấ ẽ ượ
chi u.ề
Có r t nhi u lo i IC dùng cho m ch c u H. Lo i ph thông dùng cho motor dòngấ ề ạ ạ ầ ạ ổ
th p là L293B và motor dòng cao là L298.ấ
1.3 Đi u khi n DC motor dòng nh (1A) dùng L293Bề ể ỏ
ng d ng đi n hình c a L293B đ c v trên hình d i [2]. Vs là đi n áp đ t vàoỨ ụ ể ủ ượ ẽ ướ ệ ặ
motor và có th lên t i 36V. Dòng l n nh t c a L293B có th lên t i 1A m i kênh.ể ớ ớ ấ ủ ể ớ ỗ
M t IC L293B có th dùng đ đi u khi n 2 motor. Đ u vào 2 và 7 dùng đ đi uộ ể ể ề ể ầ ể ề
khi n motor 1. Đ u 10 và 15 dùng đ đi u khi n motor 2. Diode D1 và D8 t o 1ể ầ ể ề ể ạ
m ch c p. L293B là m t IC ph thông có th mua các c a hàng đi n t (giáạ ặ ộ ổ ể ở ử ệ ử
kho ng 20 ngàn đ ng – tham kh o www.skynet.com.vn)ả ồ ả
Trong các robot t đ ng, chúng tôi s d ng con L293B đ đi u khi n motor r tráiự ộ ử ụ ể ề ể ẽ
và ph i. M ch đ c v trên hình d i đây. ả ạ ượ ẽ ướ
Trong s đ P1.1 và P1.3 là các tín hi u đi u khi n chi u motor t con vi s lýơ ồ ệ ề ể ề ừ ử
87C552. Nh ng tín hi u đi u khi n h ng này đ c t h p AND v i các tín hi uữ ệ ề ể ướ ượ ổ ợ ớ ệ
đi u bi n đ r ng xung PWM0 và PWM1 đ đi u khi n t c đ motor. Chúng tôiề ế ộ ộ ể ề ể ố ộ
s gi i thích vi c đi u khi n này trong m c sau.ẽ ả ệ ề ể ụ
Ngu n motor đ c cung c p vào chân 8 c a con L293B. Đi n áp th c t ph thu cồ ượ ấ ủ ệ ự ế ụ ộ
vào thông s c a motor, th ng t 9V đ n 12V. Robot m u này s d ng đi n ápố ủ ườ ừ ế ẫ ử ụ ệ
12V. Chân 16 đ c n i vào đi n áp 5V logic dùng làm ngu n IC.ượ ố ệ ồ
L1 và L2 tách ngu n nuôi L293B ra kh i h th ng. Chúng ho t đ ng gi ng nhồ ỏ ệ ố ạ ộ ố ư
nh ng b l c các tín hi u nhi u đ c sinh ra b i motor.ữ ộ ọ ệ ễ ượ ở
1.4 Đi u khi n DC motor dòng l n (2A) dùng L298ề ể ớ
L298 cũng t ng t nh con L293B nh ng nó cho phép dòng l n h n. ng d ngươ ự ư ư ớ ơ Ứ ụ
đi n hình đ c miêu t nh sau [3]. (Giá con này kho ng 40 ngàn đ ng – thamể ượ ả ư ả ồ
kh o www.skynet.com.vn)ả
Cho ng d ng dòng l n h n, chúng ta dùng 2 kênh nh hình v trên. Vs là ngu nứ ụ ớ ơ ư ẽ ồ
motor và Vss là ngu n logic. Đi n tr Rs đ c dùng đ h n ch .ồ ệ ở ượ ể ạ ế
Trong robot m u đi u khi n b ng tay, chúng tôi dùng con L298 đ đi u khi n 2ẫ ề ể ằ ể ề ể
motor dòng l n (2A). M ch đ c v nh hình d i đây.ớ ạ ượ ẽ ư ướ
1.5 Đi u khi n t c đ DC Motor dùng ch nh đ r ng xung (Pulse Width Modulation -ề ể ố ộ ỉ ộ ộ
PWM)
Đi u khi n đ r ng c a xung đ c làm b ng cách t t b t nhanh ngu n đi n lênề ể ộ ộ ủ ượ ằ ắ ậ ồ ệ
motor. Ngu n áp 1 chi u DC s chuy n thành tín hi u xung vuông, thay đ i tồ ề ẽ ể ệ ổ ừ
12V xu ng 0V, t o cho motor m t lo t các cú s c đi n. ố ạ ộ ạ ố ệ
N u t n s b t t t mà đ cao, motor s ch y m t t c đ n đ nh nh mômenế ầ ố ậ ắ ủ ẽ ạ ở ộ ố ộ ổ ị ờ
quay c a bánh xe.ủ
B ng cách thay đ i chu kỳ ho t đ ng c a tín hi u (thay đ i đ r ng xung –ằ ổ ạ ộ ủ ệ ổ ộ ộ
PWM), t c là kho ng th i gian “B t”, ngu n đi n trung bình đ t lên motor sứ ả ờ ậ ồ ệ ặ ẽ
thay đ i và d n đ n thay đ i t c đ . [4][5]ổ ẫ ế ổ ố ộ
1.6Ph n c ng Pulse Width Modulation (PWM)ầ ứ
Đi u khi n đ r ng xung (PMW) có th dùng IC th i gian NE555. M ch dùng conề ể ộ ộ ể ờ ạ
này đ c th hi n trên hình v d i đây. [6]ượ ể ệ ẽ ướ
Trong m ch này đ r ng “B t” c a xung ph thu c vào đi n áp đ t lên đ u vàoạ ộ ộ ậ ủ ụ ộ ệ ặ ầ
chân 5 (RA và C gi nguyên). Và chu kỳ c a xung vuông ph thu c vào tín hi uữ ủ ụ ộ ệ
Trigger.
Trong robot m u đi u khi n tay, 2 con NE555 t o thành ph n c ng đ đi u khi nẫ ề ể ạ ầ ứ ể ề ể
đ r ng xung nh trên hình v . Tín hi u đi u bi n MOD đ c truy n t bi n trộ ộ ư ẽ ệ ề ế ượ ề ừ ế ở
đi u khi n t c đ trên bàn đi u khi n. VR1 và VR2 có th đ c đi u ch nh đề ể ố ộ ề ể ể ượ ề ỉ ể
thay đ i chu kỳ c a xung vuông. VR3 dùng đ ch nh chu kỳ c a sóng.ổ ủ ể ỉ ủ
1.7Ph n m m Pulse Width Modulation (PWM)ầ ề
S d ng con vi s lý có s các tín hi u PWM, nh 87C552 nh chúng tôi dùng choử ụ ử ẵ ệ ư ư
robot m u, chúng tôi có th l p trình đ t o các sóng PWM. ẫ ể ậ ể ạ
Con 87C552 ch a 2 kênh đi u bi n PWM. Nh ng kênh này t o các xung theo đứ ề ế ữ ạ ộ
r ng và kho ng cách đ c l p trình. T n s l p l i đ c đ nh nghĩa b i thanh ghiộ ả ượ ậ ầ ố ặ ạ ượ ị ở
8-bit trong tên là b chia PWMP, t o nh p đ ng h cho b đ m. B chia và b đ mộ ạ ị ồ ồ ộ ế ộ ộ ế
dùng chung cho c 2 kênh PWM. B đ m 8-bit dùng đ m 255, t c là t 0 đ n 254.ả ộ ế ế ứ ừ ế
Giá tr c a b đ m 8-bit đ c so sánh v i n i dung c a 2 thanh ghi: PWM0 vàị ủ ộ ế ượ ớ ộ ủ
PWM1. Gi s n i dung c a nh ng thanh ghi này l n h n giá tr b đ m, thì đ u raả ử ộ ủ ữ ớ ơ ị ộ ế ầ
t ng ng /PWM0 hay /PWM1 s là TH P. N u n i dung nh ng thanh ghi này màươ ứ ẽ Ấ ế ộ ữ
b ng ho c nh h n giá tr b đ m, tín hi u ra s là CAO. Chu kỳ làm vi c do đóằ ặ ỏ ơ ị ộ ế ệ ẽ ệ
đ c xác đ nh b i n i dung c a 2 thanh ghi PWM0 và PWM1. Chu kỳ làm vi cượ ị ở ộ ủ ệ
n m trong kho ng t 0% đ n 100% và có th đ c l p trình t nh ti n 1/255/ằ ả ừ ế ể ượ ậ ị ế
Đ l p l i c a t n s fộ ặ ạ ủ ầ ố PWM, v i các tín hi u ra PWMn đ c xác đ nh b i:ớ ệ ượ ị ở
255)1(2 ×+×
=
PWMP
f
f OSCPWM
Nó cho ta t n s l p l i t 84.7Hz to 21.7kHz (fầ ố ặ ạ ừ OSC=11.0592MHz) trong tr ng h pườ ợ
c a chúng tôi. B ng cách đ a vào các thanh ghi PWM giá tr là 00H ho c FFH, cácủ ằ ư ị ặ
kênh PWM s cho tín hi u ra m c CAO ho c TH P t ng ng. Vì b đ m 8-bitẽ ệ ứ ặ Ấ ươ ứ ộ ế
đ m modul 255, nó có th không bao gi đ t t i giá tr c a các thanh PWM khiế ể ờ ạ ớ ị ủ
chúng ta đ t FFH.ặ
Khi thanh ghi so sánh (PWM0 và PWM1) đ c n p giá tr m i, thì đ u ra t ngượ ạ ị ớ ầ ươ
ng s đ c c p nh t ngay l p t c. Vi c này không c n ph i đ i đ n h t chu kỳứ ẽ ượ ậ ậ ậ ứ ệ ầ ả ợ ế ế
đ m. [7]ế
Mã ngu n C sau đây đ c l p cho các đ u ra PWM:ồ ượ ậ ầ
……
/* PWM for Philips 87c552 */
sfr at 0xFC PWM0 ; //Define the registers addresses
sfr at 0xFD PWM1 ;
sfr at 0xFE PWMP ;
……
……
……
PWMP=53; //The period of the pulse (set to around 400Hz)
PWM0=127; //Set 50% duty cycle for /PWM0
PWM1=63; //Set 25% duty cycle for /PWM1
……
[8][9]
Ch ng 2:ươ Dùng Sensor h ng ngo i (IR) đ dò v ch tr ng ồ ạ ể ạ ắ
2.1 Các đ c tính c a IR sensor ặ ủ
Trong con robot m u t đ ng này, chúng tôi s d ng 2 linh ki n h ng ngo i (IR):ẫ ự ộ ử ụ ệ ồ ạ
m t linh ki n phát h ng ngo i (IR emitter) và m t linh ki n nh n (IR receiver) t oộ ệ ồ ạ ộ ệ ậ ạ
thành 1 c p c m bi n sensor. Linh ki n phát s t o tia h ng ngo i và sau khi ph nặ ả ế ệ ẽ ạ ồ ạ ả
x s truy n t i linh ki n nh n.ạ ẽ ề ớ ệ ậ
Dòng đi n đi qua linh ki n nh n s t l v i c ng đ năng l ng c a tia h ngệ ệ ậ ẽ ỉ ệ ớ ườ ộ ượ ủ ồ
ngo i mà nó nh n đ c.ạ ậ ượ
Trong robot m u c a chúng tôi, linh ki n phát và nh n đ c n i m ch theo s đẫ ủ ệ ậ ượ ố ạ ơ ồ
hình d i đây. Khi TX tr ng thái th p, dòng s đi qua linh ki n phát và nó sướ ở ạ ấ ẽ ệ ẽ
phát ra tia h ng ngo i. N u có 1 v t ph n x m u tr ng thì năng l ng h ng ngo iồ ạ ế ậ ả ạ ầ ắ ượ ồ ạ
s ph n h i l i và t o m t dòng cao h n đi qua linh ki n nh n, do đó đi n áp trênẽ ả ồ ạ ạ ộ ơ ệ ậ ệ
IRS0 s h xu ng. N u v t ph n x có m u đen, ho c m u s m h n thì đi n ápẽ ạ ố ế ậ ả ạ ầ ặ ầ ẫ ơ ệ
trên IRS0 s nâng lên.ẽ
Đ c giá tr đi n áp này chúng ta có th phân bi t đ c v ch d n đ ng màu tr ngọ ị ệ ể ệ ượ ạ ẫ ườ ắ
trên n n nhà màu xanh.ề
2.2 IR Sensor đi u bi nề ế
Đ chính xác c a sensor h ng ngo i đ c miêu t trên ph n tr c b nh h ngộ ủ ồ ạ ượ ả ầ ướ ị ả ưở
r t nhi u b i ánh sáng môi tr ng. M c đi n áp trên đ u ra c a sensor IR khôngấ ề ở ườ ứ ệ ầ ủ
ch ph thu c vào c ng đ ánh sáng ph n x mà còn b thay đ i b i đi u ki nỉ ụ ộ ườ ộ ả ạ ị ổ ở ề ệ
ánh sáng môi tr ng.ườ
Đ gi m b t s nh h ng c a ánh sáng môi tr ng, chúng tôi dùng 1 sensor h ngể ả ớ ự ả ưở ủ ườ ồ
ngo i đi u bi n thay vì sensor IR thông th ng.ạ ề ế ườ
Trong h th ng sensor IR đi u bi n c a chúng tôi, linh ki n phát đ c b t và t tệ ố ề ế ủ ệ ượ ậ ắ
b i 1 đ ng h . Tín hi u nh n đ c sau đó đi qua 1 m ch khu ch đ i 1 chi u DCở ồ ồ ệ ậ ượ ạ ế ạ ề
nh trên hình v d i đây. T C2 trong m ch s ch n dòng DC ra kh i tín hi u điư ẽ ướ ụ ạ ẽ ặ ỏ ệ
qua b khu ch đ i này. Ch có ph n xoay chi u c a tín hi u thay đ i t ng ngộ ế ạ ỉ ầ ề ủ ệ ổ ươ ứ
v i tia h ng ngo i ph n x phát ra t b phát là đ c khu ch đ i và tích h p vàoớ ồ ạ ả ạ ừ ộ ượ ế ạ ợ
m c 1 chi u đ u ra c a m ch. Nh v y m c ra c a m ch ch ph thu c vào tiaứ ề ở ầ ủ ạ ư ậ ứ ủ ạ ỉ ụ ộ
h ng ngo i mà không ph thu c vào ánh sáng môi tr ng. [10]ồ ạ ụ ộ ườ
Ch ng 3:ươ L p trình m t Robot t đ ng ậ ộ ự ộ
Đ hoàn thành các công vi c c a 1 robot t đ ng trong cu c thi Robocon 2005,ể ệ ủ ự ộ ộ
robot ph i có các tính năng sau:ả
1. kh năng l n theo v ch tr ngả ầ ạ ắ
2. kh năng nh n bi t và đ m các đi m giao nhau khi nó đi qua ả ậ ế ế ể
3.1 L n theo v ch tr ng ầ ạ ắ
Trong con robot t đ ng m u c a chúng tôi, chúng tôi đ t 2 c p sensor IR: bên tráiự ộ ẫ ủ ặ ặ
(Left) và bên ph i (Right) ph n đ u c a robot. Khi sensor trái c t đ ng tr ng,ả ở ầ ầ ủ ắ ườ ắ
giá tr c a sensor s h xu ng d i m c đi n áp ng ng đ t tr c và chúng taị ủ ẽ ạ ố ướ ứ ệ ưỡ ặ ướ
bu c ph i đ cho robot ch y sang trái m t vài b c đ đi u ch nh h ng đi c aộ ả ể ạ ộ ướ ể ề ỉ ướ ủ
nó. Ho c khi sensor ph i c t vào v ch tr ng, giá tr c a sensor ph i s th p h nặ ả ắ ạ ắ ị ủ ả ẽ ấ ơ
giá tr ng ng đ t s n, chúng ta ph i cho robot ch y sang ph i m t vài b c đị ưỡ ặ ẵ ả ạ ả ộ ướ ể
đi u chính h ng ch y chính xác. N u c hai sensor đ u không c t v ch tr ng thìề ướ ạ ế ả ề ắ ạ ắ
chúng ta gi đ nh là đã đi đúng h ng và đ nó ch y th ng.ả ị ướ ể ạ ẳ
Thu t toán l n theo v ch tr ng đ c miêu t trong bi u đ sau: ậ ầ ạ ắ ượ ả ể ồ
3.2 Dò và đ m nh ng đ ng c t ế ữ ườ ắ
Đ dò đ c nh ng đi m giao nhau c a các vach khi robot ch y qua, chúng tôi ki mể ượ ữ ể ủ ạ ể
tra c sensor trái và ph i. N u c hai sensor đ u c t v ch tr ng cùng lúc thì chúngả ả ế ả ề ắ ạ ắ
ta có th cho r ng robot đã đi qua 1 đi m giao nhau. Trong tr ng h p này, chúng taể ằ ể ườ ợ
ph i đ cho robot đi ti p vài b c đ tránh đ m 2 l n đi m giao nhau này.ả ể ế ướ ể ế ầ ể
Thu t toán nh n bi t và đ m đi m giao nhau đ c v d i đây:ậ ậ ế ế ể ượ ẽ ướ
Hàm C d i đây là ví d cho 1 robot l n theo đ ng tr ng và đ m v ch giao nhauướ ụ ầ ườ ắ ế ạ
khi nó đi qua:
……
void move_robot(unsigned char step) {
int cnt;
cnt=0;
while(cnt<step) {
if (read_sensor(1)>ALIGN_THRESHOLD && read_sensor(2)>ALIGN_THRESHOLD) movet(FORWARD,1,0);
else if (read_sensor(1) ALIGN_THRESHOLD) movet(TURN_LEFT,1,80);
else if (read_sensor(2) ALIGN_THRESHOLD) movet(TURN_RIGHT,1,80);
else if (read_sensor(2) <=ALIGN_THRESHOLD && read_sensor(1) <=ALIGN_THRESHOLD) {
cnt++;
movet(FORWARD,8,0);
}
}
stop();
}
……
……
move_robot(3); // move the robot for 3 cross line
……
[11]
References
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10] bottom.pdf
[11] RoboconDemo05.c
Các file đính kèm theo tài liệu này:
- Hướng dẫn làm robocon.pdf