BoeBot v1 0 id 91312 Nieznany (2)

background image

Laboratorium Robotów i Manipulatorów





Robot mobilny kołowy Boe-Bot







Gliwice, 2008




Opracował: D. Krawczyk

background image

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,

ą

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.

background image

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.

background image

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.

background image

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:

background image

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),

background image

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

ą

ą

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

ż

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.

background image

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)

background image

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

background image

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.

background image

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

background image

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.

background image

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

background image

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

.


Wyszukiwarka

Podobne podstrony:
Final v1 id 171205 Nieznany
ANSYS AI Nastran v1 0 id 65570 Nieznany (2)
programowanie c pl v1 id 395919 Nieznany
D5 instrukcja v1 5 id 130749 Nieznany
makro opracowanie v1 1 id 27757 Nieznany
IO wyk2 procesIO v1 id 556045 Nieznany
p szczegolowe by lsz v1 2 id 34 Nieznany
projekt plakatu v1 id 399367 Nieznany
Arrays v1 0 id 69295 Nieznany (2)
Arrays and Clusters v1 0 id 692 Nieznany
ZP Projekt v1 id 416026 Nieznany
Instrukcja V1 x id 217247 Nieznany
handout4 v1 id 199017 Nieznany
Final v1 id 171205 Nieznany
panele v1 prezentacja id 348812 Nieznany
Abolicja podatkowa id 50334 Nieznany (2)
4 LIDER MENEDZER id 37733 Nieznany (2)
katechezy MB id 233498 Nieznany

więcej podobnych podstron