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

  1. CEL:

Celem naszego ćwiczenia było zapoznanie się z możliwościami ruchowymi mobilnego robota kołowego poprzez zaprogramowanie jego procesora.

  1. 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

  1. 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

  1. 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.