Highlander

From RoboWiki
Jump to: navigation, search

Highlander

Robot Highlander bol skonštruovaný študentom prvého ročníka odboru fyzika na FMFI UK ako projekt na praktický seminár robotiky a súťaž Istrobot 2011 – kategória Stopár. Hlavným cieľom projektu popri úspešnom splnení úlohy – sledovania čiary bolo aj vytvorenie čo najjednoduchšieho amatérskeho robota len zo základných súčiastok bez použitia predpripravených kitov. Koncepcia robota je teda vhodná najmä pre začiatočníkov, ktorí majú len minimálne poznatky z robotiky, nechcú však kupovať už hotové modely, ale vytvoriť si vlastný. Takýto prístup umožnuje pochopiť architektúru robota od základov a získať skúsenosti s mechanickou, elektronickou aj softvérovou časťou zároveň.

Mechanická časť

Základom mechanickej časti robota je stavebnica Merkur. Na podstave sú upevnené dva upravené servomotory s veľkými kolesami, ktoré zabezpečujú pohyb robota a jeho otáčanie do strán. Nad servomotormi je vývod pre zdroj napätia. V strednej časti sa nachádza kontaktné pole s elektronikou. Vzadu je malé koliesko zabezpečujúce stabilitu. Dve infračervené LED-diódy a senzory sú upevnené v prednej časti.


Elektronika

Highlander-obvod

Riadiacim centrom robota je mikroprocesor PICAXE-20X2. I keď neposkytuje toľko možností ako niektoré iné typy, jeho výhodou je veľmi jednoduché používanie. PICAXE má vlastné vývojové prostredie postavené na Basic-u a predovšetkým nevyžaduje programátor – programy možno sťahovať priamo cez USB kábel. Navyše bola dlhodobým používaním zistená značná odolnosť voči vonkajšim vplyvom a nesprávnemu zaobchádzaniu. Je teda veľmi vhodný pre začiatočníkov.

Servomotory SM-S4303R sú už výrobcom upravené tak, aby umožnovali neobmedzené otáčanie hriadeľa, sú teda vhodné pre pohyb kolies robota. 60 otáčok za minútu pri záťaži nestavia robota medzi najrýchlejších, o to väčší je ale moment 48 N.cm, ktorý umožňuje robotovi vyliezť aj na svahy s väčším sklonom. V tomto smere pomáhajú aj poťahy na kolesách, tie sú vystrihnuté z gumeného balóna, vďaka čomu je koeficient statického trenia na naklonenej rovine väčší ako pri nepokrytom povrchu kolies.

Sledovanie čiary zabezpečujú dve infračervené LED-diódy L-53F3BT a dva prijímače TSOP31230. Diódy generujú signál modulovaný 36 kHz.

Spínač v prednej časti umožňuje reagovať na prekážky.


Princíp sledovania čiary a program

Robot sa pohybuje striedavým zapínaním motorov v krátkych časových intervaloch, pričom diódy generujú infračervené svetlo, ktoré je pohlcované čiernou podložkou a odráža sa od bielej. Diódy sú namierené na bielu oblasť vedľa čiernej čiary, jedna naľavo, druhá napravo a signál z nich sa odráža do prijímačov. Ak sa robot začne stáčať napríklad doprava, pravá dióda sa dostane nad čiaru a prijímač stratí signál. Program vtedy prejde do cyklu, v ktorom sa zapína len ľavý motor, pravý je vypnutý, čo trvá až dovtedy, kým pravý prijímač znova nezaregistruje signál od diódy. Robot vtedy začne vykonávať zasa prvú časť programu. Analogicky princíp platí pre stáčanie doľava.

V prípade, že sa pred robotom nachádza prekážka, narazí do nej spínačom, čim sa spustí časť programu, ktorá zabezpečí, že ju obíde. To znamená, že chvíľu tlačí do prekážky, potom zacúva, otočí sa doprava, prejde niekoľko desiatok centimetrov, otočí sa doľava atď. až sa dostane na miesto približne za prekážkou. Prametre v tejto časti programu treba nastaviť v závislosti od použitých motorov. Najlepšie je skúsiť ich postupne zadávať a meniť až kým sa neodsiahne najlepšie obchádzanie prekážky.


Zdrojový kód

pwmout c.5,50,118      		;generovanie signálu diódou na vstupný pin 5
let adcsetup = %0000000000001111 	;nastaví piny Out 0,1,2 a In 7 ako ADC, aby z nich  
;mohol načítať napätie
;
base:					;základná časť programu pre pohyb motorov           
readadc 3,b5				;načíta napätie z pinu adc 3 do premennej b5
if b5>200 then goto prekazka		;ak zaznamená napätie, prejde na "prekazka"
readadc 2,b6
if b6 > 200 then goto dolava		;ak zaznamená napätie, prejde na "dolava"
readadc 1,b7
if b7 > 200 then goto doprava		;ak zaznamená napätie, prejde na "doprava"
pulsout 6,200 pause 40			;pulzy pre ľavý a pravý motor
pulsout 7,400 pause 40
high 4
goto base				;späť na začiatok cyklu
;	
dolava:				;cyklus pre odbočenie doľava, opakovane ;zapína pravý motor
pulsout 7,400 pause 80
high 4
goto base				;späť na prvý cyklus
;	 
doprava:				;cyklus pre odbočenie doprava, opakovane zapína ;ľavý motor
pulsout 6,200 pause 80
high 4
goto base
;	 
prekazka:				;obchádzka prekážky
for b3=1 to 100			;rovno
pulsout 6,200 pause 10
pulsout 7,400 pause 10
high 4
next b3
;	
for b3=1 to 20				;zacúva dozadu
pulsout 6,400 pause 10
pulsout 7,200 pause 10
high 4
next b3
;
for b3=1 to 60				;doprava
pulsout 7,400 pause 10
high 4
next b3
;
for b3=1 to 30				;rovno
pulsout 6,200 pause 10
pulsout 7,400 pause 10
high 4
next b3	
;
for b3=1 to 90				;dolava
pulsout 6,200 pause 10
high 4
next b3
;
for b3=1 to 50				;rovno
pulsout 6,200 pause 10
pulsout 7,400 pause 10
high 4
next b3
;
for b3=1 to 90   			;dolava
pulsout 6,200 pause 10
high 4
next b3	
;	
for b3=1 to 50				;rovno
pulsout 6,200 pause 10
pulsout 7,400 pause 10
high 4
next b3
;
for b3=1 to 110			;doprava
pulsout 7,400 pause 10
high 4
next b3
;	
goto base

Galéria

H1.JPG
H2.JPG
H3.JPG
H4.JPG