Robot je realizovaný ako trojkolka s dvoma pohonnými a jedným vodiacim kolieskom. Základom konštrukcie sú prvky stavebnice MERKUR. Robota sme postavili tak, aby čím lepšie uspel v súťaži, čo znamená malé rozmery, ľahká pohybovateľnosť a adaptabilita. Kostra robota je pomerne jednoduchá a praktická, zatiaľ bez vonkajších dizajnérskych úprav. Vonkajší vzhľad plánujeme v blízkej budúcnosti vylepšiť.
Robot je poháňaný dvoma krokovými motormi z vyradeních 5,25" disketových mechaník. Z piatich vývodov motorov sú štyri riadiace. Zvyšný je nastálo pripojený na kladný pól zdroja. Jedná sa o unipolárne krokové motory (v cievkach tečie prúd iba jedným smerom). Riadiace vývody sa pomocou spínacích obvodov postupne spínajú na zem. Každé takéto zopnutie (nazýva sa krok) spôsobí malé pootočenie motora. Pre naše motory platí jedna celá obrátka = 200 krokov. To znamená, že každé koleso môžeme otáčať o násobky 1,8 stupňa. Rýchlosť motorov sa riadi rýchlosťou vysielania riadiacich impulzov. Naše motory majú hraničnú rýchlosť približne 1 otáčku za sekundu. Ak je rýchlosť väčšia motor nestíha vykonávať riadiace impulzy a "preskakuje" ich.
Kolesá s priemerom 4,2 cm sú priamo prichytené na rotory motorov. Moment motorov je dostačujúci na optimálny pohyb robota a pri terajšom nastavení sa pohybuje rýchlosťou približne 13 cm/sek.
Ako spínací obvod sme použili integrovaný obvod ULN2803A, ktorý obsahuje osem darlingtonových tranzistorov, ktorých vstupy ovládame priamo mikroprocesorom. Podarilo sa nám vytvoriť zapojenie, ktoré zaťažuje na ovládanie motorov iba štyri výspupy mikroprocesora (namiesto ôsmich). To spôsobuje, že motory majú vždy naraz zopnuté dve fázy, čo napomáha veľkosti momentu.
Robot obsahuje 3 infracitlivé snímače (vpredu, vľavo, vpravo). Snímač pozostáva z vysielača a prijímača, ktoré sa nachádzajú na samostatných doskách. Vysielač je obvod s časovačom 555, ktorý funguje ako klopný obvod. Na jeho výstupe sú zapojené infra LED diódy. Tieto potom blikajú s frekvenciou asi 36 kHz. Prijímač pozostáva zo špeciálnych integrovaných obvodov SFH. Priamo reagujú na intenzitu odrazeného svetla z LED diódy. Ich výstupy sú pripojené na mikroprocesor. Ak sa pred snímačom nachádza plocha dobre odrážajúca svetlo LED diódy prijímač ho zachytí a oznámi to mikroprocesoru, ktorý túto informáciu spracuje podľa algoritmu. Pre každú diódu je možné nastaviť jej svietivosť (lepšie povedané napätie) trimrom umiestnenom na doske plošného spoja. To nám umožní ľahko nakonfigurovať v akej vzdialenosti je už stena považovaná za viditeľnú.
Základom vysielača je klopný obvod s časovačom 555. Umožňuje potenciometrom nastaviť frekvenciu, s ktorou bude zopínať infra diódy. Kedže súčiastky použité v prijímači (integrované snímače SFH) reagujú výhradne na frekveciu 36 kHz, je stabilne nastavená táto. Výstup časovača (vývod 3) je pripojený na bázu tranzistora T1. Aby nedochádzalo k nežiadaným odrazom máme priamo mikroprocesorom zabezpečené, že v každom momente je rozsvietená práve jedna dióda.
Prijímač obsahuje 3 integrované obvody SFH. Ich funkciou je zachytiť odrazené svetlo. Vtedy na svoj výstup, ktorý je pripojený na procesor, vyšle signál. Tak zitíme prítomnosť prekážky. Vysielač tým, že zopína infradiódy vytvára chvenie napätia na batérii. Preto sa tu nachádza kondenzátor, ktorý napätie stabilizuje. Na signalizáciu máme na výstupoch prijímacích obvodov červené LED diódy.
Robot je riadený jednopčipovým mikropočítačom AT89C2051. AT89C2051 je 8 bitový mikrokontrolér obsahujúci 2 Kb programovateľnej FLASH pamäte a 128 Bitov RAM pamäte. Inštrukčná sada je kompatibilná so štandardom MCS-51. Je umiestnený v 20 pinovom DIP púzdre. Ztýchto je 15 pinov programoveteľných - vstupno-výstupné vývody. Mikropočítač obsahuje dvojicu 16 bitových čítačov-časovačov, UART a analógový komparátor. Vstupno-výstupné vývody môžu priamo ovládať LED diódy. Do 2048 bajtov FLASH (programovateľná a vymazateľná ROM) pamäte sa ukladá riadiaci program, ktorý môže využívať až 128 bajtov RAM.
Program sme napísali v jazyku C a preložili do strojového kódu mikroprocesora pomocou freewareového prekladača RIDE. Do procesora sme ho zapísali ("napálili") pomocou zhotoveného programátora.
Na presné načasovanie jednotlivých akcií využíva program časovo nastaviteľné prerušenie procesora. V každom prerušení sa skontroluje a uloží stav zapnutého senzora, senzor sa vypne a zapne sa ďalší senzor. Tak je vylúčené vzájomné rušenie jednotlivých senzorov. Ďalej sa prerušenie využíva aj ako generátor impulzov pre krokové motory. Riadi sa pritom vlajkami (globálnymi premennými) smeru ľavého a pravého motora. Vlajky sú nastavované podľa algoritmu v hlavnom programe, kde sa už netreba zaoberať časovaním. (Stačí nastaviť vlajky a v pri nasledujúcom kroku motorov sa vyšlú správne impulzy.)
V hlavnom programe sa nachádza samotný algoritmus pre pohyb robota. Na základe uložených vstupov zo senzorov algoritmus rozhodne o smere pohybu (nastaví vlajky), prípadne aj o presnom počte krokov. Tak sa robot môže otočiť o presný uhol.
Rozhodovacia časť - hlavný program beží v nekonečnej slučke. Vždy v určenom časovom intervale je vyvolané prerušenie - výkonná časť.
Ján Žižka, Michal Malý a Vladimír Repiský
© 2002 Richard Balogh
Posledná zmena: 19. septembra 2001.