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

ą

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

ż

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 

powy

ż

szym 

programie 

instrukcja 

IF…ELSEIF…ELSE…ENDIF

 

słu

ż

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