|
POLITECHNIKA ŚLĄSKA
WYDZIAŁ ELEKTRYCZNY
KATEDRA MECHATRONIKI |
|
|||
Laboratorium robotów i manipulatorów |
|||||
Temat: Robot mobilny kołowy Boe-Bot |
|||||
Wykonano: 03.11.2010 |
Oddano: 17.11.2009 |
||||
|
Prowadzący:
|
|
|||
|
Nazwisko i Imię |
Ocena |
Data, podpis |
||
Dzienne Elektrotechnika Semestr: V Grupa: KSS Sekcja: 6 |
Adam Czudaj Norbert Matyja Piotr Legutko Marcin Ibrom Michał Młotkowski
|
……… ……… ……… ………
|
|
Wstęp
Robot mobilny kołowy Boe-Bot jest robotem edukacyjnym produkowanym przez
firmie Parallax. Robot ten jest napędzany za pośrednictwem dwóch serwonapędów
Modelarskich, z których każdy napędza jedno koło robota. Sterowanie robotem
odbywa sie z wykorzystaniem mikrokontrolera z serii Basic Stamp. Programowanie
robota możliwe jest za pośrednictwem języka wysokiego poziomu PBASIC. Możliwa
Jest współpraca oraz nawigacja robota z użyciem wielu różnego typu czujników
(stykowe, podczerwieni, ultradźwiękowe, optyczne i wiele innych).
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.
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
Do programowania robota wykorzystuje sie jezyk PBASIC, który jest językiem
programowania mikrokontrolerów typu Basic Stamp. Język PBASIC jest językiem
wysokiego poziomu w pełni funkcjonalnym i uniwersalnym. Dokładna specyfikacja
języka wraz z opisem wszystkich dostępnych instrukcji znajduje sie w dokumentacji
anglojęzycznej dołączonej do środowiska Basic Stamp Editor. Programowanie robota
odbywa sie z poziomu srodowiska Basic Stamp Editor.
Cel ćwiczenia
Należało zapoznać się z możliwościami ruchowymi mobilnego robota kołowego poprzez zaprogramowanie jego procesora w celu stwierdzeniu poprawnego wykonywania się programu już wewnątrz jednostki centralnej robota.
Algorytm programu.
Robota zaprogramowano aby wykonywał podstawowe ruchy tj.: poruszanie w tył w przód, skrętów w lewo i prawo
' {$STAMP BS2}
' {$PBASIC 2.5}
Linie programu poprzedzone znakiem apostrofu stanowiła komentarz. Wyjątkiem są tutaj linie trzecia i czwarta, które stanowiła tak zwane dyrektywy. Pierwsza z nich
({$STAMP BS2}) określa rodzaj procesora, do którego biedzie ładowany program ze
środowiska BASIC Stamp Editor. Druga dyrektywa ({$PBASIC 2.5}) określa
z kolei, z której wersji języka PBASIC korzystamy (w tym przypadku wersja 2.5).
Jeśli chodzi o sterownie ruchem serwonapędów robota, to można do tego celu
Wykorzystać instrukcje PULSOUT, która powoduje wysłanie przez port mikrokontrolera
o numerze Pin impulsu prostokątnego o czasie trwania Duration.
PULSOUT 12,800
PULSOUT 13,700
Instrukcja DO-LOOP tworzy nieskończoną pętle, czyli wszystkie instrukcje zawarte
Pomiędzy DO a LOOP sa wykonywane nieskonczona ilość razy. Chcąc uzyskach ruch ciągły należy instrukcje te wywoływać wielokrotnie (z odstępem czasu równym 20ms).
DO
PULSOUT 14,750
PULSOUT 15,750
PAUSE 20
LOOP
Ćwiczenie kontrolowano po zapisaniu kodu do każdego ruch i sprawdzano czy efekt będzie pożądany po przez natychmiastowe wysłanie programu do chipu robota
Realizacja ruchów robota odbywa się na podstawie poniższego kodu programu:
' {$STAMP BS2e}
' {$PBASIC 2.5}
SENSL PIN 0 `deklaracja czujników
SENSC PIN 1
SENSP PIN 2
A VAR Byte `deklarowanie zmiennych
B VAR Byte
MP VAR Byte
INPUT SENSL
INPUT SENSC
INPUT SENSP
DO `pętla główna
IF (SENSL=0) AND (SENSC=0) AND (SENSP=0) THEN ;warunek jeśli czujnik 1,2,3= 0 to stop
GOSUB STOP1
ENDIF
IF (SENSL=0) AND (SENSC=0) AND (SENSP=1) THEN ; czujnik 1,2= 0 a 3=1 to prawo
GOSUB PRAWO
ENDIF
IF (SENSL=0) AND (SENSC=1) AND (SENSP=0) THEN ; czujnik 1,3= 0 a 2=1 to lewo
GOSUB LEWO
ENDIF
IF (SENSL=0) AND (SENSC=1) AND (SENSP=1) THEN ; ; czujnik 1= 0 a 2,3=1 to wykonuje korekcję drogi i szybko skręca w lewo a później w przód
GOSUB LEWO
GOSUB PRZOD
GOSUB PRZOD
GOSUB PRZOD
ENDIF
IF (SENSL=1) AND (SENSC=0) AND (SENSP=0) THEN, warunek czujnik 2,3=0 a 1=1 to lewo
GOSUB LEWO
ENDIF
IF (SENSL=1) AND (SENSC=0) AND (SENSP=1) THEN ; warunek czujnik 2=0 a 1,3=1 to przod
GOSUB PRZOD
ENDIF
IF (SENSL=1) AND (SENSC=1) AND (SENSP=0) THEN; warunek czujnik 3=0 a 1,2=1 to wykonuje korekcję drogi I szybko skręca w prawo a później w przód
GOSUB PRAWO
GOSUB PRZOD
GOSUB PRZOD
ENDIF
IF (SENSL=1) AND (SENSC=1) AND (SENSP=1) THEN; warunek czujnik 1,2,3 = 1 to przód
GOSUB PRZOD
ENDIF
LOOP
STOP1: ;pętla wykonawcza stop
PULSOUT 12,750
PULSOUT 13,750
PAUSE 20
RETURN
PRZOD: ;pętla wykonawcza ruchu w przód
PULSOUT 12,700
PULSOUT 13,800
PAUSE 20
RETURN
TYL: ;pętla wykonawcza ruchu w tył
PULSOUT 12,800
PULSOUT 13,700
PAUSE 20
RETURN
LEWO: ;pętla wykonawcza ruchu w lewo
PULSOUT 12,600
PULSOUT 13,600
PAUSE 20
RETURN
PRAWO: ;pętla wykonawcza ruchu w prawo
PULSOUT 12,870
PULSOUT 13,870
PAUSE 20
RETURN ;koniec
III. WNIOSKI:
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. Wadą tego w tego typu robotach jest konieczność zasilania robota akumulatorami, które pozwalają na określony czas pracy, doświadczalny proces dobierania odpowiedniego czasu obrotu kół tak aby robot poruszał się płynnie.