Aktuální vydání

celé číslo

08

2024

Automatizace v potravinářství a farmacii

Měření a regulace průtoku, čerpadla

celé číslo

Robot Acrob kompatibilný s Arduinom

Už pekných pár rokov používame k všeobecnej spokojnosti stavebnice mobilných robotov Boe-Bot od firmy Parallax (www.parallax. com/go/Boe-Bot; obr. 1), napr. v rámci cvičení pre študentov predmetov robotika alebo automobilové riadiace systémy. Hoci jeho riadiaci procesor Basic Stamp II je veľmi spoľahlivý a vhodný pre začiatočníkov, naši študenti boli (oprávnene) k Basicu ako programovaciemu jazyku veľmi kritickí. Pokročilému programátorovi skrátka chýba definícia

vlastných funkcií, prístup k prerušeniam a perifériám procesora. Naše skúsenosti s osembitovými procesormi RISC AVR od firmy Atmel a prudko rastúca popularita platformy Arduino nás priviedli na myšlienku úplne novej riadiacej jednotky pre tento robot. Hlavným cieľom bolo dosiahnuť maximálnu možnú kompatibilitu, aby sme mohli využívať pôvodné príslušenstvo.
 
Prečo Arduino? Arduino (www.arduino.cc) je otvorená platforma určená pre technikov, umelcov, dizajnérov i amatérov so záujmom o tvorbu interaktívnych objektov. Mikroprocesor sa programuje pomocou programovacieho jazyka Arduino (nadstavba C++) v prostredí, ktoré pochádza z jazyka Processing (www.processing.org). Keďže ide o otvorenú platformu, je možné pôvodný návrh prispôsobiť vlastným potrebám. To je aj náš prípad, takže sme navrhli úplne nový plošný spoj pri zachovaní kompatibility s pôvodnou platformou (obr. 2). Hlavné rozdiely oproti pôvodnej doske Board of Education sú dva: je použitý iný procesor a sériové rozhranie je len v úrovniach TTL bez prevodníkov. Na napájanie možno použiť štyri primárne alebo dobíjacie 1,5V články AA, popr. sieťový adaptér. Vypínač má tri polohy – okrem štandardných zapnuté a vypnuté sú v strednej polohe odpojené motory, takže robot počas ladenia nepobehuje po stole.
 
Napájacie napätie je stabilizované „low-drop“ 5V stabilizátorom. Ako procesor je použitý Atmel ATmega328P so zavádzacím programom (bootloader). Používateľ má k dispozícii 32 kB pamäti pre program, 2 kB RAM a 1 kB EEPROM. Najväčšiu časť dosky tvorí nespájkovacie kontaktné pole, ktoré umožňuje pripojiť ďalšie súčiastky. Na jeho ľavej strane je vyvedená väčšina vstupov a výstupov, z hornej strany napájanie. Vpravo hore sú konektory pre pripojenie servomotorov a senzorov. Dvojradový konektor X1 v strede umožňuje pripojiť štandardné rozširujúce moduly firmy Parallax (napr. kompas alebo terminál s LCD).
 
Programovacie a komunikačné schopnosti sme v porovnaní s pôvodným robotom Boe-Bot rozšírili. Keďže sme sa rozhodli v ľavej časti dosky ponechať sériové komunikačné rozhranie len v úrovniach TTL, môžeme používať rozličné prevodníky. Najčastejšie používame USB kábel FTDI Chips (www.ftdichip.com/Products/Cables/USBTTLSerial.htm) alebo modul SparkFun FTDI Basic (www.sparkfun.com/commerce/product_info.php?products_id=9115), s ktorých použitím sa robot programuje pomocou zavádzacieho programu bootloader. Navrhli sme aj prevodník RS-232 pre štandardné
sériové rozhranie.
 
Po skončení programovania je rozhranie k dispozícii pre užívateľskú sériovú komunikáciu. Takže môžeme pripojiť napr. modul SparkFun BlueMate pre komunikáciu cez Bluetooth s počítačom alebo medzi robotmi. Doska má aj konektor pre programátor ISP (In-System Programming), takže ani bootloader nie je nevyhnutný.
 
Dosku možno využívať aj samostatne, bez robota, pričom jediné prepojenie s počítačom bude káblom USB. V takom prípade
užívateľ môže zvoliť napájanie dosky priamo z rozhrania USB. Schéma zapojenia aj plošný spoj boli navrhnuté s využitím aplikácie open-source gEDA Suite (www.gpleda.org). Návrh nevyužíva komponenty SMD, aby si študenti mohli ľahko zostaviť a opraviť svoju vlastnú dosku.
 

Softvér

Na programovanie používame štandardné vývojové prostredie Arduino, ktoré je okrem Windowsu k dispozícii aj pre Linux a MacOS. Pri použití programátora ISP možno používať AVRstudio, v ktorom môžeme vyvíjať aplikácie v assembleri alebo C++. Z tohto prostredia je potom možné aj ladiť, krokovať a simulovať programy (s vhodným hardvérom dokonca aj priamo na doske).
 
Pre študentov sme pripravili súbor základných ukážkových programov, ktoré sú voľne prístupné na stránke projektu www.robotika.sk/acrob. Na prvé oboznámenie s vývojovým prostredím postačí notoricky známy program HelloWorld. Programovanie je veľmi priamočiare a na začiatku nie sú potrebné žiadne špecifické znalosti registrov procesora. Program je rozdelený do dvoch základných častí: setup, ktorá sa vykoná len raz, a loop, ktorá sa potom vykonáva nepretržite, resp. kým nie je procesor vypnutý alebo preprogramovaný. Po skompilovaní a prenesení programu do procesora môže užívateľ vidieť výsledok v okne terminálu, ktorý je súčasťou prostredia Arduino.
 
Príklady na stránke projektu začínajú tými najjednoduchšími – práca s digitálnymi vstupmi a výstupmi (LED a prepínač). Nasledujú príklady pre analógové veličiny – študenti najprv programujú základné pohyby robota a potom na robot pridajú analógový senzor. Ako prvý senzor používame triangulačné snímače vzdialenosti Sharp, ktoré možno k doske ľahko pripojiť. Ich nelineárna charakteristika predstavuje pre niektorých študentov skutočne oriešok. Používanie knižníc môže užívateľa dokonale odtieniť od vnútornej štruktúry procesora, takže takmer žiadne špeciálne znalosti nie sú potrebné. Príkladom
je knižnica pre servá v ukážke manévrovacích schopností robota na obr. 3.
 
Keďže Arduino je vlastne len nadstavba nad štandardným kompilátorom avr-gcc, môžeme využiť všetky jeho funkcie a v rámci programov ich kombinovať, napr. priamy prístup do všetkých registrov procesora pre zápis do registrov PWM:
 
TCCR0A |= _BV(WGM01) | _
BV(WGM00);
OCR0A = 127;
OCR0B = 255;
 
Okrem programov je k dispozícii aj schéma zapojenia a podklady pre výrobu plošného spoja. Taktiež sme začali tvoriť manuál s príkladmi programov a schém zapojenia.
 
Jednou z veľkých výhod otvorených systémov je veľká komunita používateľov, ktorí prispievajú svojimi skúsenosťami. Keďže naša doska je kompatibilná s Arduinom, môžeme ihneď využívať existujúce príklady, dokumentáciu atď. Povedzme, že budete chcieť na robot pripojiť ultrazvukový senzor SRF-08. Hravo nájdete nielen zopár príkladov, ale možno aj kompletnú schému pripojenia, a dokonca i celú knižnicu pre prácu s týmto snímačom (www.arduino.cc/playground/Main/SonarSrf08). Stačí, ak do webového vyhľadávača zadáte kľúčové slová ‚SRF08‘
a ‚Arduino‘.
 
Nová platforma s názvom Acrob (Arduino Compatible Robot) bola otestovaná aj vo výuke. Pripravili sme úvod do robotiky pre študentov odboru automobilová elektronika. Hlavným cieľom bolo poskytnúť im predstavu o tom, čo je to mobilný robot a ako sa programuje. Počas dvoch cvičení boli študenti schopní naprogramovať základné pohyby a reaktívne správanie robotov. Roboty sme využili aj v rámci spojeného rakúsko-slovenského workshopu pre študentov stredných škôl. Za jeden deň boli účastníci schopní programovať pohyb, vyhodnotiť snímače čiary a napokon skončili s jednoduchým robotom sledujúcim čiaru, ktorý sa vyhýbal prekážkam. Celková koncepcia bola vyskúšaná aj na súťaži RobotChallenge Wien 2010, kde robot úspešne (hoci veľmi pomaly) prešiel svoju dráhu (obr. 4).
 

Zhodnotenie

Takáto platforma je vhodná pre študentov vysokých i stredných škôl. Na rozdiel od pôvodného robota Boe-Bot umožňuje pohodlnejšie a efektívnejšie programovanie v assembleri aj C++. Je možné využívať obrovský sortiment doplnkov pre pôvodný robot Boe-Bot. Firma Parallax má v ponuke aj samotný robot bez riadiacej elektroniky, ku ktorému si prípadní záujemcovia môžu stiahnuť zo stránky projektu podklady pre vlastnú výrobu dosky Acrob.
 
Richard Balogh, Slovenská technická
univerzita v Bratislave
 
Obr. 1. Podvozok Boe-Bot s novou elektronikou
Obr. 2. Popis komponentov riadiacej dosky
Obr. 3. Programovanie základných manévrov robota
Obr 4. Prototyp robota so snímačom čiary a ultrazvukovým detektorom na súťaži RobotChallenge