Politechnika Śląska Wydział Elektryczny
|
Rodzaj studiów: EiT mgr Rok akad.: 2010/2011 Semestr IX |
Temat ćwiczenia: Robot mobilny kołowy BOE-BOT |
|
Studenci: 1. JOCHYMEK Marek 2. KOCZWARA Paweł 3. LEJA Bartosz 4. ŚWIERKULA Marcin 5. WARZECHA Kamil
|
Data wykonania: 20. 10.2010
Sekcja: 5
|
CEL:
Celem naszego ćwiczenia było zapoznanie się z możliwościami ruchowymi mobilnego robota kołowego poprzez zaprogramowanie jego procesora.
WSTĘP TEORETYCZNY:
Robot Boe-Bot zbudowany jest z metalowej konstrukcja nośnej, dwóch serwonapędów napędzających koła, oraz układu sterowania robota. Do napędu robota służą dwa serwonapędy o ruchu ciągłym, napędzające koło lewe i prawe. Serwonapędy te wykorzystują silniki prądu stałego z magnesem trwałym w stojanie. Oprócz silnika w skład serwonapędu wchodzi jeszcze przekładnia mechaniczna zwielokrotniająca moment obrotowy, układ zasilający silnik w postaci mostka typu H oraz procesor sterujący. Do programowania robota wykorzystuje się język PBASIC, który jest językiem programowania mikrokontrolerów typu Basic Stamp.
Czujnik śledzenia linii w tym robocie jest czujnikiem optoelektronicznym, umożliwiającym śledzenie czarnej linii narysowanej na białym tle. Czujnik ten jest zainstalowany w dolnej części robota, jak najbliżej podłoża, po którym porusza się robot. Czujnik składa się z 3 detektorów złożonych z diody emitującej podczerwień oraz fototranzystora. Czujnik ten dodatkowo jest wyposażony w trzy czerwone diody LED, które sygnalizują aktualny stan poszczególnych detektorów
ALGORYTM PROGRAMU:
Robota zaprogramowano aby wykonywał podstawowe ruchy tj.: poruszanie w tył w przód, skrętów w lewo i prawo.
Po napisaniu odpowiedniego programu dotyczącego ruchu robota, kontrolowaliśmy czy efekt będzie pożądany poprzez natychmiastowe wysłanie programu do mikrokontrolera robota.
Realizacja ruchów robota odbywa się na podstawie poniższego kodu programu:
'----------[kss sekcja 5]------------
'{$STAMP BS2e}
'{$PBASIC 2.5}
'---------[/////////]-----------------
SensL PIN 0
SensC PIN 1
SensP PIN 2
LED PIN 8
PING PIN 11
KR PIN 12
KL PIN 13
Servo PIN 14
GRIP PIN 15
INPUT SensL
INPUT SensC
INPUT SensP
cmDistance CON 2260
'----------------------------------------
PulseCount VAR Byte
'----------------------------------------
DEBUG "Start Programu"
'---------------------------------------
DO
IF SensL=1 AND SensC=0 AND SensP=1 THEN
GOSUB Przod
ENDIF
IF SensL=1 AND SensC=1 AND SensP=1 THEN
GOSUB Przod
ENDIF
IF SensL=1 AND SensC=1 AND SensP=0 THEN
GOSUB Lewo
ENDIF
IF SensL=0 AND SensC=1 AND SensP=1 THEN
GOSUB Prawo
ENDIF
LOOP
'------------------------------------------
Przod:
FOR PulseCount = 0 TO 10
PULSOUT KR,800
PULSOUT KL,700
PAUSE 16
NEXT
RETURN
Lewo:
FOR PulseCount = 0 TO 10
PULSOUT KR,800
PULSOUT KL,800
PAUSE 16
NEXT
RETURN
Prawo:
FOR PulseCount = 0 TO 10
PULSOUT KR,700
PULSOUT KL,700
PAUSE 16
NEXT
RETURN
'tyl:
'FOR PulseCount = 0 TO 10
'PULSOUT KR,800
'PULSOUT KL,700
'PAUSE 16
'NEXT
'RETURN
WNIOSKI:
Robota staraliśmy się zaprogramować tak aby jeździł po czarnej linii narysowanej na białej planszy za pomocą czujników śledzenia linii. Staraliśmy się dobrać czasy obrotu kół tak, aby poruszał się on w miarę płynnym ruchem.
ZALETY:
Bez wątpienia zaletą tego robota jest łatwość kontroli nad programowaniem robota kołowego ze względu na możliwość ciągłej obserwacji realizacji programu poprzez jego programowanie po interfejsie USB-RS232. Dzięki napędowi na poszczególne osie, mamy możliwość dużego zakresu poruszania się robota.
WADY:
Wadą tego w tego typu robotach jest konieczność zasilania robota akumulatorami, które pozwalają na określony czas pracy. Problemem też jest doświadczalny proces dobierania odpowiedniego czasu obrotu kół tak aby robot poruszał się płynnie.