Laboratorium Robotów i Manipulatorów
Robot mobilny kołowy Boe-Bot
Gliwice, 2008
Opracował: D. Krawczyk
Politechnika Śląska
Wydział Elektryczny
KATEDRA MECHATRONIKI
44-100 Gliwice, ul. Akademicka 10
Roboty i manipulatory. Laboratorium
- 1 -
1.
Wprowadzenie
Robot mobilny kołowy Boe-Bot jest robotem edukacyjnym produkowanym przez
firm
ę
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 si
ę
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). Niniejsza
instrukcja stanowi wprowadzenie do zagadnie
ń
programowania i nawigacji robotem
Boe-Bot. Dodatkowe informacje o robocie jak równie
ż
o dodatkowych urz
ą
dzeniach,
które mog
ą
współpracowa
ć
z robotem mo
ż
na uzyska
ć
na stronie internetowej
producenta, firmy Parallax (www.parallax.com).
2.
Budowa robota
Głównymi elementami składowymi robota Boe-Bot s
ą
: metalowa konstrukcja no
ś
na,
dwa serwonap
ę
dy nap
ę
dzaj
ą
ce koła lewe i prawe (koło tylne nie jest nap
ę
dzane)
oraz układ sterowania robota (mikrokontroler, płytka monta
ż
owa, zł
ą
cze AppMod,
zł
ą
cza serwonap
ę
dów, zł
ą
cze zasilania). Widok robota przedstawiony jest na rys. 1.
Rys. 1. Ogólny widok robota Boe-Bot.
2.1.
Nap
ę
d robota
Do nap
ę
du robota słu
żą
dwa serwonap
ę
dy o ruchu ci
ą
głym, nap
ę
dzaj
ą
ce koło lewe
i prawe. Widok takiego serwonap
ę
du jest przedstawiony na rys. 2.
Politechnika Śląska
Wydział Elektryczny
KATEDRA MECHATRONIKI
44-100 Gliwice, ul. Akademicka 10
Roboty i manipulatory. Laboratorium
- 2 -
Rys. 2. Widok pojedynczego serwonap
ę
du o ruchu ci
ą
głym.
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
(z
ę
bata) zwielokrotniaj
ą
ca moment obrotowy, układ zasilaj
ą
cy silnik w postaci
mostka typu H oraz procesor steruj
ą
cy. Serwonap
ę
d posiada trzy wyprowadzenia:
masa (przewód czarny), zasilanie +5V (przewód czerwony) oraz sterowanie
(przewód biały). Sygnał steruj
ą
cy serwonap
ę
dem ma posta
ć
impulsu prostok
ą
tnego,
którego czas trwania zawiera informacj
ę
zarówno o kierunku jak i pr
ę
dko
ś
ci
wirowania serwonap
ę
du. Sygnał steruj
ą
cy powinien by
ć
wysyłany do serwonap
ę
du
cyklicznie co 20ms tak, jak przykładowo przedstawia to rys. 3.
Rys. 3. Zasada sterowania prac
ą
serwonap
ę
du poprzez impuls prostok
ą
tny.
Na rys. 3. impuls steruj
ą
cy ma długo
ść
1.5ms, co dla rozpatrywanych tu
serwonap
ę
dów oznacza zatrzymanie silników. Aby wprawi
ć
dany serwonap
ę
d w ruch
nale
ż
y wysła
ć
do niego impuls dłu
ż
szy lub krótszy od impulsu 1.5ms. To czy impuls
steruj
ą
cy jest dłu
ż
szy czy krótszy od impulsu 1.5ms decyduje o kierunku jego
wirowania, natomiast to, o ile dany impuls jest dłu
ż
szy b
ą
d
ź
krótszy od 1.5ms
decyduje o pr
ę
dko
ś
ci wirowania serwonap
ę
du. Obrazowo przedstawiaj
ą
to rys. 4 i 5.
Politechnika Śląska
Wydział Elektryczny
KATEDRA MECHATRONIKI
44-100 Gliwice, ul. Akademicka 10
Roboty i manipulatory. Laboratorium
- 3 -
Rys. 4. Wysterowanie serwonap
ę
du do wirowania w prawo (czas trwania impulsu steruj
ą
cego krótszy
od 1.5ms).
Rys. 5. Wysterowanie serwonap
ę
du do wirowania w lewo (czas trwania impulsu steruj
ą
cego dłu
ż
szy
od 1.5ms).
Nale
ż
y zauwa
ż
y
ć
,
ż
e w obu przypadkach przedstawionych na rys. 4 i 5 serwonap
ę
dy
b
ę
d
ą
wirowały w kierunkach przeciwnych, lecz z takimi samymi pr
ę
dko
ś
ciami.
Wynika to z tego,
ż
e czasy trwania impulsów steruj
ą
cych ró
ż
ni
ą
si
ę
w obu
przypadkach o 0.2ms wzgl
ę
dem 1.5ms. Sterownie ruchem robota polega zatem na
odpowiednim, jednoczesnym wysterowaniu obu serwonap
ę
dów. Przykładowo chc
ą
c
wprawi
ć
robota w ruch do przodu nale
ż
y serwonap
ę
d prawy wysterowa
ć
do
wirowania w prawo z okre
ś
lon
ą
pr
ę
dko
ś
ci
ą
, natomiast serwonap
ę
d lewy wysterowa
ć
do wirowania w lewo z dokładnie tak
ą
sam
ą
pr
ę
dko
ś
ci
ą
.
2.2.
Sterowanie robotem
Do sterowania robotem wykorzystuje si
ę
mikrokontrolery z rodziny Basic Stamp (BS2
lub BS2e), przedstawione na rys. 6.
Rys. 6. Mikrokontrolery BASIC Stamp 2 i 2e.
W tabeli 1 przedstawiono zestawienie podstawowych cech obu typów
mikrokontrolerów.
Politechnika Śląska
Wydział Elektryczny
KATEDRA MECHATRONIKI
44-100 Gliwice, ul. Akademicka 10
Roboty i manipulatory. Laboratorium
- 4 -
Tabela 1. Podstawowe parametry mikrokontrolerów BS2 i BS2e
BS2
BS2e
Szybkość procesora
20 MHz
20 MHz
Szybkość wykonywania programu
~4000 instrukcji na
sekundę
~4000 instrukcji na
sekundę
Rozmiar pamięci RAM
32 B (6 I/O i 26 na
zmienne)
32 B (6 I/O i 26 na
zmienne)
Rozmiar pamięci RAM notatnikowej
brak
64 Bajty
Rozmiar pamięci programu (EEPROM)
2 KB
8x2 KB
Liczba pinów wejść/wyjść
16 + 2 dedykowane
szeregowe
16 + 2 dedykowane
szeregowe
Liczba komend języka PBASIC
42
45
W niniejszej instrukcji zaprezentowano wykorzystanie wybranych komend j
ę
zyka
PBASIC do sterowania robotem. Wykaz wszystkich komend wraz z ich
szczegółowym opisem znajduje si
ę
w elektronicznej dokumentacji mikrokontrolerów
BASIC Stamp.
3.
Programowanie robota
Do programowania robota wykorzystuje si
ę
j
ę
zyk 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 si
ę
w dokumentacji
angloj
ę
zycznej doł
ą
czonej do
ś
rodowiska Basic Stamp Editor. Programowanie robota
odbywa si
ę
z poziomu
ś
rodowiska Basic Stamp Editor. Widok głównego okna tego
ś
rodowiska jest przedstawiony na rys. 7.
Rys. 7. Widok głównego okna
ś
rodowiska programistycznego mikrokontrolerów typu Basic Stamp -
Basic Stamp Editor.
Poni
ż
ej przedstawiono przykładowy, bardzo prosty program napisany w j
ę
zyku
PBASIC:
Politechnika Śląska
Wydział Elektryczny
KATEDRA MECHATRONIKI
44-100 Gliwice, ul. Akademicka 10
Roboty i manipulatory. Laboratorium
- 5 -
' Laboratorium Robotów I Manipulatorów – robot mobilny kołowy Boe-Bot
' Wysłanie komunikatu tekstowego z mikrokontrolera BS do komputera.
' {$STAMP BS2}
' {$PBASIC 2.5}
DEBUG "Hello, this is a message from your Boe-Bot."
END
Linie programu poprzedzone znakiem apostrofu stanowi
ą
komentarz. Wyj
ą
tkiem s
ą
tutaj linie trzecia i czwarta, które stanowi
ą
tak zwane dyrektywy. Pierwsza z nich
(
{$STAMP BS2}
) okre
ś
la rodzaj procesora, do którego b
ę
dzie ł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).
Na pocz
ą
tku ka
ż
dego programu pisanego w j
ę
zyku PBASIC powinny znajdowa
ć
si
ę
dyrektywy.
Dalsz
ą
cz
ęść
programu stanowi
ą
dwie linie zawieraj
ą
ce instrukcje
DEBUG
i
END
j
ę
zyka PBASIC. Instrukcja
DEBUG
powoduje wysłanie komunikatu z mikrokontrolera
BS do komputera PC. Komunikat ten jest wy
ś
wietlany w specjalnie w tym celu
otwieranym okienku, jak przedstawia to rys. 8.
Rys. 8. Okno komunikatu wysyłanego z robota za pomoc
ą
komendy DEBUG.
Ostatnia instrukcja, czyli
END
oznacza koniec programu i jej wykonanie powoduje
przej
ś
cie mikrokontrolera do stanu niskiego poboru energii i oczekiwanie
mikrokontrolera b
ą
d
ź
na zresetowanie b
ą
d
ź
na załadowanie nowego programu.
Je
ś
li chodzi o sterownie ruchem serwonap
ę
dów robota, to mo
ż
na do tego celu
wykorzysta
ć
instrukcj
ę
PULSOUT
, która powoduje wysłanie przez port mikrokontrolera
o numerze
Pin
impulsu prostok
ą
tnego o czasie trwania
Duration
. Składnia
instrukcji jest nast
ę
puj
ą
ca:
PULSOUT Pin,Duration
Warto
ść
parametru Duration jest wielokrotno
ś
ci
ą
2
µ
s. Zatem chc
ą
c wysła
ć
do
okre
ś
lonego serwonap
ę
du impuls steruj
ą
cy o długo
ś
ci np. 1.5ms w polu Duration
komendy
PULSOUT
nale
ż
y wpisa
ć
warto
ść
750 (750*2
µ
s=1500
µ
s=1.5ms).
Wprawienie robota w ruch do przodu wymaga jednoczesnego wysterowania obu
serwonap
ę
dów, z tym
ż
e do jednego serwonap
ę
du wysyłany jest impuls dłu
ż
szy
(o warto
ść
zale
ż
n
ą
od wymaganej pr
ę
dko
ś
ci ruchu) od impulsu bazowego (1.5ms),
Politechnika Śląska
Wydział Elektryczny
KATEDRA MECHATRONIKI
44-100 Gliwice, ul. Akademicka 10
Roboty i manipulatory. Laboratorium
- 6 -
a do drugiego krótszy (o warto
ść
tak
ą
sam
ą
jak w przypadku impulsu dłu
ż
szego).
Zakładaj
ą
c,
ż
e serwonap
ę
dy podł
ą
czone s
ą
do portów 14 i 15 odpowiedni fragment
programu mógłby wygl
ą
da
ć
nast
ę
puj
ą
co:
PULSOUT 14,800
PULSOUT 15,700
Zamiana miejscami warto
ś
ci parametru
Duration
spowodowałaby zmian
ę
kierunku
ruchu robota (jazda w tył). Ka
ż
dorazowe wywołanie obu powy
ż
szych linii spowoduje
wykonanie przez robota niewielkiego ruchu w przód. Chc
ą
c uzyska
ć
ruch ci
ą
gły
nale
ż
y instrukcje te wywoływa
ć
wielokrotnie (z odst
ę
pem czasu równym 20ms).
Poni
ż
ej przedstawiono program realizuj
ą
cy ci
ą
gł
ą
jazd
ę
robota w przód.
' Laboratorium Robotów I Manipulatorów – robot mobilny kołowy Boe-Bot
' Jazda robota w przod.
' {$STAMP BS2}
' {$PBASIC 2.5}
DO
PULSOUT 14,750
PULSOUT 15,750
PAUSE 20
LOOP
Instrukcja
DO-LOOP
tworzy niesko
ń
czon
ą
p
ę
tl
ę
, czyli wszystkie instrukcje zawarte
pomi
ę
dzy
DO
a
LOOP
s
ą
wykonywane niesko
ń
czon
ą
ilo
ść
razy, czyli uzyskujemy
efekt ci
ą
głej jazdy w przód. Instrukcja
PAUSE
wprowadza opó
ź
nienie 20ms
(jednostk
ą
parametru tej instrukcji jest 1ms) po ka
ż
dorazowym wysłaniu impulsów
steruj
ą
cych do serwonap
ę
dów. W podobny sposób, poprzez odpowiedni dobór
parametru
Duration
instrukcji
PULSOUT
, mo
ż
na uzyskiwa
ć
skr
ę
ty robota.
4.
Czujniki
Ogromn
ą
zalet
ą
robota Boe-Bot jest jego uniwersalno
ść
je
ś
li chodzi o mo
ż
liwo
ś
ci
stosowania
ró
ż
norakich
czujników.
Najprostsze
czujniki
mo
ż
na
budowa
ć
z podstawowych elementów elektronicznych (rezystory, diody, fotorezystory,
fotodiody, itp.) ł
ą
czonych z wykorzystaniem uniwersalnej płytki monta
ż
owej, w któr
ą
jest wyposa
ż
ony robot. Ponadto dost
ę
pnych jest szereg gotowych, bardziej
zaawansowanych czujników, które mo
ż
na ł
ą
czy
ć
wprost z mikrokontrolerem BASIC
Stamp i nast
ę
pnie nale
ż
y je oprogramowa
ć
z poziomu j
ę
zyka PBASIC. W dalszej
cz
ęś
ci niniejszego rozdziału przedstawiono podstawowe informacje o wybranych
czujnikach i zasadach ich wykorzystania w robocie Boe-Bot.
4.1. Czujnik elektromechaniczny
Jest to najprostszy rodzaj czujnika przeszkód, jaki mo
ż
na wykona
ć
z u
ż
yciem
metalowych w
ą
sów oraz czterech rezystorów. Widok czujnika oraz jego schemat
elektryczny przedstawia rys. 9.
Politechnika Śląska
Wydział Elektryczny
KATEDRA MECHATRONIKI
44-100 Gliwice, ul. Akademicka 10
Roboty i manipulatory. Laboratorium
- 7 -
Rys. 9. Układ poł
ą
cze
ń
czujnika elektromechanicznego.
Czujnik taki umo
ż
liwia wykrywanie przeszkód w bezpo
ś
rednim s
ą
siedztwie robota,
poprzez
programow
ą
kontrol
ę
stanów
logicznych
odpowiednich
portów
mikrokontrolera (np. porty nr 7 i 5 jak na rys. 8). Mo
ż
liwe do rozró
ż
nienia s
ą
cztery
zdarzenia: brak przeszkody (oba ł
ą
czniki otwarte), przeszkoda na wprost robota
(oba ł
ą
czniki zamkni
ę
te), przeszkoda z lewej strony robota (lewy ł
ą
cznik zamkni
ę
ty,
prawy otwarty) b
ą
d
ź
przeszkoda z prawej strony (lewy ł
ą
cznik otwarty, prawy
zamkni
ę
ty). Załó
ż
my,
ż
e po
żą
dany algorytm nawigacji polega na je
ź
dzie w przód,
gdy nie ma
ż
adnych przeszkód. Natomiast w przypadku wykrycia przeszkody robot
w pierwszej kolejno
ś
ci ma wycofa
ć
si
ę
o pewn
ą
odległo
ść
i nast
ę
pnie odwróci
ć
si
ę
o 180
o
(przeszkoda na wprost), wycofa
ć
si
ę
o pewn
ą
odległo
ść
i skr
ę
ci
ć
w prawo
(przeszkoda z lewej strony) lub te
ż
wycofa
ć
si
ę
o pewn
ą
odległo
ść
i skr
ę
ci
ć
w lewo
(przeszkoda z prawej strony). Realizacja programowa takiej nawigacji robotem mo
ż
e
wygl
ą
da
ć
nast
ę
puj
ą
co:
' Laboratorium Robotów I Manipulatorów – robot mobilny kołowy Boe-Bot
' Nawigacja robota z omijaniem przeszkód z wykorzystaniem w
ą
sów.
' {$STAMP BS2}
' {$PBASIC 2.5}
' Deklaracja zmiennych
pulseCount VAR Byte 'zmienna wykorzystywana w p
ę
tli FOR...NEXT.
' Główna p
ę
tla
DO
IF (IN5 = 0) AND (IN7 = 0) THEN ' Oba ł
ą
czniki zamkni
ę
te (przeszkoda na
' wprost)
GOSUB Back_Up ' Cofni
ę
cie do tyłu i dwukrotny skr
ę
t w lewo
GOSUB Turn_Left
GOSUB Turn_Left
ELSEIF (IN5 = 0) THEN ' Lewy ł
ą
cznik zamkni
ę
ty (przeszkoda z lewej)
GOSUB Back_Up ' Cofni
ę
cie do tyłu
GOSUB Turn_Right ' Skr
ę
t w prawo
ELSEIF (IN7 = 0) THEN ' Prawy ł
ą
cznik zamkni
ę
ty (przeszkoda z prawej)
Politechnika Śląska
Wydział Elektryczny
KATEDRA MECHATRONIKI
44-100 Gliwice, ul. Akademicka 10
Roboty i manipulatory. Laboratorium
- 8 -
GOSUB Back_Up ' Cofni
ę
cie do tyłu i skr
ę
t w lewo
GOSUB Turn_Left
ELSE ' Oba ł
ą
czniki otwarte (brak przeszkód)
GOSUB Forward_Pulse ' Jazda w przód
ENDIF ' ponowne sprawdzenie warunków
LOOP
' Podprogramy realizuj
ą
ce manewry robota
Forward_Pulse: ' Jazda w przód (pojedynczy impuls)
PULSOUT 13,850
PULSOUT 12,650
PAUSE 20
RETURN
Turn_Left: ' Skr
ę
t w lewo (o około 90 stopni)
FOR pulseCount = 0 TO 20
PULSOUT 13, 650
PULSOUT 12, 650
PAUSE 20
NEXT
RETURN
Turn_Right:
FOR pulseCount = 0 TO 20 ' Skr
ę
t w prawo (o około 90 stopni)
PULSOUT 13, 850
PULSOUT 12, 850
PAUSE 20
NEXT
RETURN
Back_Up: ' Jazda w tył (o okre
ś
lony odcinek)
FOR pulseCount = 0 TO 40
PULSOUT 13, 650
PULSOUT 12, 850
PAUSE 20
NEXT
RETURN
W
powy
ż
szym
programie
instrukcja
IF…ELSEIF…ELSE…ENDIF
słu
ż
y
do
sprawdzania, które z czterech mo
ż
liwych zdarze
ń
miało miejsce. Odczytywanie
stanu portów (P5 i P7) zostało wykonane za pomoc
ą
instrukcji
IN5
i
IN7
.
Odpowiednie ruchy robota (jazda w przód, jazda w tył, skr
ę
ty w lewo i prawo) zostały
zaimplementowane w postaci podprogramów, które wywoływane s
ą
(z poziomu
instrukcji
IF…ELSEIF…ELSE…ENDIF
) za pomoc
ą
instrukcji
GOSUB…RETURN
.
Wykonanie instrukcji GOSUB etykieta powoduje przej
ś
cie wykonywania programu do
miejsca programu oznaczonego etykieta:. Powrót do instrukcji nast
ę
pnej po
GOSUB
etykieta nast
ę
puje po wykonaniu instrukcji
RETURN
. P
ę
tla
FOR…TO…NEXT
powoduje
powtórzenie sekwencji instrukcji znajduj
ą
cych si
ę
pomi
ę
dzy
FOR
a
NEXT
z góry
zadan
ą
ilo
ść
razy (zmienna
pulseCount
). W przedstawionym powy
ż
ej programie
Politechnika Śląska
Wydział Elektryczny
KATEDRA MECHATRONIKI
44-100 Gliwice, ul. Akademicka 10
Roboty i manipulatory. Laboratorium
- 9 -
zmienna
pulseCount
decyduje o czasie (odległo
ś
ci) jazdy w tył (podprogram jazdy
w tył), czy te
ż
o k
ą
cie skr
ę
tu w lewo b
ą
d
ź
prawo (podprogramy skr
ę
tu w lewo b
ą
d
ź
prawo).
4.2. Czujnik optoelektroniczny
Innym prostym czujnikiem, który mo
ż
na wykorzysta
ć
do nawigacji robota jest układ
optoelektroniczny z wykorzystaniem dwóch fotorezystorów (rezystorów o rezystancji
zale
ż
nej od nat
ęż
enia
ś
wiatła). Układ taki (widok i schemat elektryczny)
przedstawiono na rys. 10.
Rys. 10. Układ poł
ą
cze
ń
czujnika elektromechanicznego
Fotorezystory wraz z rezystorami o warto
ś
ciach 2k
Ω
stanowi
ą
dzielniki napi
ę
cia,
o zmiennej (zale
ż
nej od zmiennej rezystancji fotorezystorów) przekładni napi
ę
ciowej.
Napi
ę
cia wyj
ś
ciowe dzielników podawane s
ą
na porty cyfrowe mikrokontrolera
(na rys. 10 porty P6 i P3). W przypadku, gdy nat
ęż
enie
ś
wiatła padaj
ą
cego na
fotorezystor jest małe, jego rezystancja jest du
ż
a, co w dalszej kolejno
ś
ci powoduje
pojawienie si
ę
na odpowiednim porcie mikrokontrolera stanu niskiego. W przypadku,
kiedy nat
ęż
enie promieniowania jest du
ż
e, rezystancja fotorezystora jest mała, stan
logiczny na porcie jest wysoki.
Czujnik taki umo
ż
liwia realizacj
ę
algorytmu nawigacji polegaj
ą
cego na pod
ąż
aniu
robota w kierunku
ź
ródła
ś
wiatła. Odpowiedni program do takiej nawigacji robota
b
ę
dzie podobny do programu w punkcie 4.1.
Politechnika Śląska
Wydział Elektryczny
KATEDRA MECHATRONIKI
44-100 Gliwice, ul. Akademicka 10
Roboty i manipulatory. Laboratorium
- 10 -
4.3. Czujnik podczerwieni
Kolejnym prostym układem czujnika, który mo
ż
na zbudowa
ć
z pojedynczych
elementów dyskretnych wprost na płytce uniwersalnej robota jest układ
wykorzystuj
ą
cy podczerwie
ń
. Na układ taki składaj
ą
si
ę
dwie pary dioda
podczerwieni-detektor podczerwieni. Schemat takiego układu przedstawiono na rys.
11.
Rys. 11. Schemat czujnik podczerwieni.
Układ taki mo
ż
na wykorzysta
ć
do detekcji przeszkód. Zasada działania takiego
czujnika polega na wysterowaniu diody emituj
ą
cej podczerwie
ń
(poprzez
wystawienie na odpowiedni port mikrokontrolera stanu wysokiego – na rys. 11 s
ą
to
porty P8 i P2) i sprawdzaniu stanów logicznych na wej
ś
ciach mikrokontrolera,
do których podł
ą
czone s
ą
detektory podczerwieni (na rys. 11 s
ą
to porty P0 i P9).
W przypadku obecno
ś
ci przeszkody wyemitowane promieniowanie podczerwone
odbija si
ę
od niej i dociera do detektora podczerwieni, powoduj
ą
c wyst
ą
pienie na
odpowiednim porcie mikrokontrolera stanu niskiego. Odpowiedni program do
nawigacji robota z wykorzystaniem czujnika podczerwieni mo
ż
na stworzy
ć
w oparciu
o program z punktu 4.1. Czujnik z rys. 11 mo
ż
na równie
ż
wykorzysta
ć
do okre
ś
lania
przybli
ż
onej odległo
ś
ci przeszkody od robota.
4.4. Czujnik
ś
ledzenia linii
Czujnik
ś
ledzenia linii jest czujnikiem optoelektronicznym, który umo
ż
liwia
ś
ledzenie
ciemnej (b
ą
d
ź
jasnej) linii narysowanej na jasnym (b
ą
d
ź
ciemnym) 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
Politechnika Śląska
Wydział Elektryczny
KATEDRA MECHATRONIKI
44-100 Gliwice, ul. Akademicka 10
Roboty i manipulatory. Laboratorium
- 11 -
czerwone diody LED, które sygnalizuj
ą
aktualny stan poszczególnych detektorów.
Schemat czujnika jest przedstawiony na rys. 12.
Rys. 12. Schemat optoelektronicznego detektora linii.
Je
ś
li dany detektor znajduje si
ę
nad obszarem ciemnym (czarnym) daje na wyj
ś
ciu
sygnał niski, je
ś
li nad obszarem jasnym (białym) daje na wyj
ś
ciu sygnał wysoki.
W sytuacji, kiedy skrajne detektory (lewy i prawy) daj
ą
jednakowy sygnał (oba stan
wysoki lub niski), a
ś
rodkowy detektor sygnał inny (niski lub wysoki) to robot znajduje
si
ę
dokładnie nad lini
ą
prowadz
ą
c
ą
. Wówczas nale
ż
y robotem sterowa
ć
w taki
sposób, aby utrzymywa
ć
taki stan detektorów. W przypadku ka
ż
dego innego stanu
detektorów nale
ż
y podj
ąć
odpowiednie działania koryguj
ą
ce tor jazdy robota. Jako,
ż
e na czujnik składaj
ą
si
ę
trzy detektory, w sumie jest osiem mo
ż
liwych przypadków
stanów detektorów i dla ka
ż
dego z nich nale
ż
y przewidzie
ć
odpowiednie ruchy
koryguj
ą
ce tor jazdy robota. Odpowiedni program nawigacji robota mo
ż
na stworzy
ć
w oparciu o program przedstawiony w punkcie 4.1 (w instrukcji warunkowej
IF…ELSEIF…ELSE…ENDIF
nale
ż
y jednocze
ś
nie sprawdza
ć
stany trzech wej
ść
cyfrowych mikrokontrolera).
4.5. Czujnik ultrad
ź
wi
ę
kowy
Czujnik ultrad
ź
wi
ę
kowy jest czujnikiem wykorzystuj
ą
cym ultrad
ź
wi
ę
ki do okre
ś
lania
odległo
ś
ci od przeszkody. W robocie Boe-Bot wykorzystany jest czujnik PING))).
Zakres pomiarowy tego czujnika wynosi od około 2cm do 3 m. Zasada działania
takiego czujnika opiera si
ę
na pomiarze czasu pomi
ę
dzy wysłaniem wi
ą
zki
ultrad
ź
wi
ę
ków, a odbiorem ultrad
ź
wi
ę
ków odbitych od przeszkody. Zasada działania
takiego czujnika jest przedstawiona na rys. 12.
Politechnika Śląska
Wydział Elektryczny
KATEDRA MECHATRONIKI
44-100 Gliwice, ul. Akademicka 10
Roboty i manipulatory. Laboratorium
- 12 -
Rys. 12. Zasada działania czujnika ultrad
ź
wi
ę
kowego typu PING))).
Aktywacja czujnika nast
ę
puje w momencie wysłania przez mikrokontroler BS2
sygnału aktywuj
ą
cego w postaci impulsu prostok
ą
tnego o czasie trwania co najmniej
2
µ
s (typowo 5
µ
s). Wówczas czujnik generuje wi
ą
zk
ę
ultrad
ź
wi
ę
ków (40kHz), które
poruszaj
ą
si
ę
w przestrzeni z pr
ę
dko
ś
ci
ą
około 340m/s, odbijaj
ą
si
ę
od przeszkód
i wracaj
ą
do czujnika. Nast
ę
pnie na wyj
ś
ciu czujnika pojawia si
ę
impuls, który trwa
tak długo, a
ż
czujnik zarejestruje odbit
ą
wi
ą
zk
ę
ultrad
ź
wi
ę
ków. Tak wi
ę
c długo
ść
tego impulsu jest proporcjonalna do odległo
ś
ci przeszkody od czujnika. Poni
ż
ej
przedstawiono testowy program wykorzystuj
ą
cy czujnik PING))) do okre
ś
lania
odległo
ś
ci przeszkody od czujnika.
' Laboratorium Robotów I Manipulatorów – robot mobilny kołowy Boe-Bot
' Pomiar odległo
ś
ci za pomoc
ą
czujnika ultrad
ź
wi
ę
kowego PING))).
' {$STAMP BS2}
' {$PBASIC 2.5}
' Deklaracja stałych.
CmConstant CON 2260
' Deklaracja zmiennych.
cmDistance VAR Word
time VAR Word
DO
PULSOUT 15, 5
PULSIN 15, 1, time
cmDistance = cmConstant ** time
Politechnika Śląska
Wydział Elektryczny
KATEDRA MECHATRONIKI
44-100 Gliwice, ul. Akademicka 10
Roboty i manipulatory. Laboratorium
- 13 -
DEBUG HOME, DEC3 cmDistance, " cm"
PAUSE 100
LOP
Do inicjacji czujnika wykorzystano komend
ę
PULSOUT
(czujnik poł
ą
czony do portu 15
mikrokontrolera). Nast
ę
pnie długo
ść
impulsu zwrotnego czujnika jest rejestrowana
w zmiennej time przy pomocy instrukcji
PULSIN
(składnia:
PULSIN pin, state,
variable
). Pr
ę
dko
ść
d
ź
wi
ę
ku w powietrzu jest uzale
ż
niona od temperatury, która to
zale
ż
no
ść
jest uwzgl
ę
dniona w zmiennej
CmConstant
.