Ozobot – malý, ale šikovný

Sledování čáry patří mezi nejčastěji zpracovávané robotické úlohy. Postavit sledovač čáry tak, aby „nějak“ fungoval, je poměrně jednoduché, ale překvapivě náročné, pokud má zvládnout libovolnou dráhu a pohybovat se pokud možno rychle. Ozobot je robotická hračka, která je v principu „jen“ sledovačem čáry, ale při docela zajímavé ceně kolem 50$ toho umí mnohem, mnohem víc.

Ozobot byl vyvinut malým mezinárodním týmem pěti lidí, z nichž jedním je Ondřej Staněk z Prahy, jeho úlohou bylo navrhnout zapojení a naprogramovat firmware robota. Robot na první pohled zaujme svými malými rozměry, má průměr i výšku jen 1´´ (25,4 mm), takže se dokonce dá vsunout i do plastového pouzdra z kinder vajíčka. Pohybuje se pomocí dvou poháněných gumových koleček posazených za těžištěm, třetím opěrným bodem vpředu je kluzný výstupek na plastovém podvozku.

IMGP0156b

Ozobot je opravdu malý i když má na sobě návlek.

Tělo robota tvoří průhledná, mírně kouřově zbarvená kulička, která částečně umožňuje pohled na řídící elektroniku a je přes ní vidět světlo barevných LED uprostřed. Na tělo Ozobota se může nasadit pružný návlek, který jednak rozptyluje světlo, takže se robot zdánlivě celý rozsvítí, kromě toho chrání plexi kryt před nárazem a také udává konečnou podobu. Kromě základního šedočerného návleku jsou v přípravě i verze pestrých veselých postaviček, tím bude možné roboty odlišit při skupinové činnosti. Dětem se postavičky líbí, Ozobot neskrývá, že původním záměrem bylo vyrobit hračku, ale jeho další vývoj směřuje podstatně výš.

IMGP0117b

V tomto krytu se Ozobot prodává.

Úloha sledování čáry se obecně soustředí zejména na zvládnutí tratě. Už dlouho se vyskytují pokusy přidat k tomu možnost předávat robotovi další povely značkami buď přímo na dráze, nebo spíše vedle ní, aby tyto povely nenarušovaly čtení dráhy. Značky mohou mít podobu jednoduchého černobílého čárového kódu, mohou být i barevné, to vše tu již bylo. Ozobot tuto myšlenku rozpracovává. Vpředu má pět optických čidel, prostřední snímá barvy. Dráha se nakreslí třeba fixkami na papír, šířka stopy by měla být 5 – 6 mm. Čára nemusí být jen černá, ale také modrá, červená nebo zelená. Podle toho, jakou barvu pod sebou robot detekuje, se rozsvítí i kryt.

IMGP0127b

Pohled zespodu na čidla a kola.

Když se na dráze barvy střídají v úsecích dlouhých asi 5 – 7 mm, jsou přečteny jako kód povelu, před a za kódem by měl být souvislý úsek černé dráhy beze změn v délce asi 15 mm. Barevné kódy ukazuje obrázek. Můžeme měnit na několik sekund nebo trvale (do dalšího povelu) rychlost pohybu (1,5 – 8,5 cm/s), přikázat na další křižovatce odbočit vlevo, vpravo, nebo jet rovně (bez povelu se cesta zvolí náhodně), dát povel k otočení nebo zastavení a krátkému čekání. Jiný povel nastaví časovač, který robota po půl minutě vypne, není-li pochopitelně do té doby časovač deaktivován. Jde vyvolat i předprogramované pohyby, zatočit se na místě, pár centimetrů „šněrovat“ dráhu nebo po dojezdu do cíle se zatočit a vypnout.

povely barevne

Přehled barevných řídících kódů

Ozobot se ale nemusí striktně držet dráhy. Na povel se otočí vpravo nebo vlevo a jede rovně hledat jinou čáru, případně opustí čáru v přímém směru. Dokáže dokonce počítat, má k tomu několik čítačů. Tak například může počítat křižovatky, které na dráze najde, a po přejetí určitého počtu se zastavit. Může počítat odbočení (jízda rovně na křižovatce se neeviduje) nebo změnu barvy dráhy (černá se za barvu napovažuje). Jiný čítač (OZOPILL) je aktivní vždy, nastaví se na číslo 5 a dalšími povely se jeho stav sníží nebo zvýší o jednu. Když dosáhne nuly, robot zastaví. Všechny tyto prostředky v podstatě tvoří jakýsi jednoduchý programovací jazyk zakreslený barevnými políčky na dráze a řídící pohyb.

Pro nakreslení dobře použitelné dráhy na papír úplně stačí formát A4, Ozobot je na prostor velmi nenáročný. Dráhy se dají svinout a uschovat nebo nakreslit příště znovu, mohou se i vytisknout na počítačové tiskárně, předlohy jsou dostupné na internetových stránkách projektu http://www.ozobot.com . Výhodou papíru je, že lze vytvořit dráhy libovolně složité a velké, ovšem úpravy jsou problematické, nezbývá než dráhu překreslit nebo místo přelepit. Při zadávání povelů je nutné věnovat pozornost tomu, jestli je kód symetrický (přečte se stejně bez ohledu na směr pohybu) nebo jestli symetrický není, pak může fungovat jen v jednom směru a v druhém být nečinný nebo také může znamenat něco jiného!

IMGP0198b

Dráha vytištěnána papíře a povely dokreslenými fixkami

Máme dobu počítačů a internetu, děti si možná už častěji kreslí na tabletech než na papír. Nevadí, i to Ozobot zvládne. Uživatel si stáhne na tablet program (je dostupná verze pro iOS i pro zařízení s Androidem od verze 2.3) a otevře se mu obrovský prostor dalších možností. Program formou krátkých videí názorně naučí, jak zkalibrovat optická čidla, jak nabíjet vnitřní akumulátor nebo jak čistit pohonná kolečka. V jiné části (Tune Up) se přes tablet nastaví časovač pro vypnutí, základní rychlost nebo provede automatické nastavení pohonů. Jednosměrná komunikace probíhá jednoduše postavením Ozobota na vyznačenou plochu a barevným blikáním této plochy.

IMGP0169b

Nastavování parametrů na tabletu.

Pro tvorbu drah na displeji je určen program OzoDraw. Do něj můžeme nahrát již existující připravené dráhy a upravovat je, jiné plní funkci testu či hlavolamu, nebo si nakreslit rukou trať úplně novou. Kromě barevných čar tratě se při dolním okraji displeje nabízejí povely, které můžeme uchopit a táhnout až na místo určení. Povely mají podobnou podobu jako při kreslení na papír, tedy statické sekvence barevných plošek, ale stačí na ně klepnout a změnit je v mnohem variabilnější povely dynamické, které vypadají jako blikající kroužek, v němž se rychle střídají barvy.

IMGP0187b

Ručně nakreslená dráha s jedním povelem pro otošení (kroužek na konci slepé větve).

Dynamické povely z principu fungují vždy stejně bez ohledu na směr jízdy robota. Sekvence barev může být také mnohem delší, takže lze vyjádřit více různých povelů a Ozobot je umí, jen zatím nejsou všechny zveřejněny a dostupné v aktuální verzi programu pro tablet. Mimo jiné je možné, aby robot vykonával sekvence složitějších pohybů připomínajících tanec. K tomu slouží paměť až na 500 příkazů programovatelných přes barevné kódy, jedním z nich se potom sekvence uložená v paměti spustí. Takto se dají předat najednou (případně podle polohy odděleně) povely celé skupině robotů na displeji a potom je nechat pohybovat synchronně i bez nakreslené tratě. Tato možnost nebyla ještě v době, kdy jsem Otobota zkoušel, veřejně dostupná, nicméně robot vše potřebné už uměl.

IMGP0173b

Připravená dráha z knihovny doplněná o tři dynamické povely.

Základní výhodou práce s tabletem je pochopitelně to, že dráha se může měnit a upravovat, že povely se dají přesunovat i nahrazovat a že jsou menší, takže je plocha využita lépe. Ozobot při jízdě displej nepoškrábe. Jde zkombinovat i trať nakreslenou na tabletu s tratí na papíře, jen je třeba dodržet podobné odstíny barev.

Ozobot se dodává v efektní průhledné krabičce, jako příslušenství je přiložen základní pružný návlek, redukce z konektoru USB typu A na mikro USB (slouží k nabíjení) a průhledný kouřový tuhý kryt, který brání poškození i znečištění, můžeme v něm nosit robota třeba i v kapse. Nechybí ani malá vytištěná skládací dráha, kalibrační karta a stručné instrukce. Držák, v němž je robot v krabičce uchycen, je určen pro jednorázové použití, ne pro pravidelné uklízení robota, vyjímání jde hodně ztuha.

IMGP0119b

Vlevo Ozobot, vpravo přepravní kryt, konektorová redukce a návlek.

Nabíjení po úplném vybití trvalo čtvrt hodiny, v průběhu nabíjení LED cyklicky mění barvu od červené po zelenou, po nabití bliká zeleně. Nabitý robot zvládl nepřetržitě jezdit po dráze 72 minut, podle výrobce má fungovat přes hodinu. Zdroje jsou vybity, když začne LED blikat červeně, asi o minutu později se robot vypne.

IMGP0140b

Nabíjení Ozobota bez návleku.

Kreslení tratě na papír jde bez problémů, je však třeba najít vhodné fixy, které dělají podobné barvy, jako jsou na ukázce. Černá barva nedělá potíže a dá se zkalibrovat, červená se rozpoznává také výborně, horší je to s modrou a zelenou. Například Centropen 8566 má příliš tmavý odstín a je vyhodnocována jako černá, jde použít třeba číslo 8559 (na stíratelné tabule) nebo Centropen 8516. Optimální zelená je „trávová zeleň“ nebo opět ze sady 8559. Některé zelené odstíny mají v sobě hodně modré složky a čidlo si je plete. Je také třeba si zvyknout na to, že povely musí být složeny z krátkých čar dlouhých jen asi tak, jako je šířka čáry, a že plošky musejí na sebe navazovat. Hodí se stáhnout si z internetových stránek a vytisknout list s přehledem barevných povelů, pak už je příprava dráhy snadná. Je škoda, že nějaká malá karta se seznamem barevných kódů není v příslušenství.

IMGP0203b

Fixy používané při zkouškách

Spolupráci s tabletem jsem zkoušel na Samsungu Galaxy Note 10.1. Není příliš velký, ale stačí. Je znát, že výrobek je velmi čerstvý, ostatně i na https://play.google.com/store , odkud se stahuje program pro Android, byl záznam jen o řádově desítkách stažení. Ozobot byl zatím zkušebně prodáván především na akcích v USA, volný prodej se teprve rozbíhá (říjen 2014). V programu nebyly ještě všechny sekce (například s hrami) funkční, nyní by už mělo být možností více. Pro spolehlivé čtení povelů je lepší na tabletu nastavit jas displeje blízko maxima a vypnout automatické řízení jasu.

Přímo se nabízí i možnosti, které výrobce neuvažoval, třeba vytvořit dráhu pro Ozobota nejen na papíře nebo virtuální na tabletu, ale také na stíratelné tabuli, která je větší a dovoluje úpravy. Je tu i možnost jezdit na desce, do níž se zapustí tříbarevné LED a blikající povely podle potřeby ovládat (měnit) z počítače. Protokol barevných povelů se dá odečíst nebo bude (doufejme) brzy zveřejněn výrobcem. Tato rozšíření možností nevyžadují žádné změny robota.

Na to, jak je robot malý, je překvapivě odolný, pády maximálně poškrábou kryt. Už samotný tvar kuličky mu dává tuhost a když se dítě o něj opře, gumová kolečka se prohnou a robot dosedne na masivní podvozek. Samozřejmě, nevydrží takové zacházení trvale, ale rozhodně se hned tak nerozbije. K čištění pohonů zanesených prachem ulpívajícím na displeji opravdu stačí s vypnutým robotem chvíli jezdit dopředu a dozadu po čistém papíře, mechanizmus ale není odolný vůči vlhku, vodě, neměl by jezdit po látkách s dlouhými vlákny, po prachu nebo písku.

IMGP0192b

Ozobot na vzorové skládací plastové dráze.

IMGP0189b

Jedna z her. Podstatou je to, že Ozobot položený do středu měnící se dráhy dojezdem do některého z cílů náhodně vybere jednu ze dvou až osmi možností.

Ozobot byl vyvíjen jako hračka pro děti, která především propojuje virtuální svět se světem reálným, vede k logickému myšlení a kreativnímu přístupu. Mantinely původního záměru Ozobot překročil už nyní, vede k zábavné formě jednoduchého programování a s postupným zpřístupněním dalších možností (zadávání sekvencí) se možnosti v tomto směru ještě rozšíří. Záměrem dalšího vývoje následující generace Ozobota je umožnit přeprogramování mikrokontroléru v robotovi, čímž by se z Ozobota stala pomůcka pro výuku programování a robotiky.

Závěrem se podívejme na vnitřní uspořádání Ozobota a vtipné uspořádání jednoduchých převodovek (plast – guma), které se do jisté míry přizpůsobí i postupnému opotřebení koleček.

IMGP0207b

Elektronika po sejmutí horní části krytu

IMGP0217b

Pohonné motory a samostatná deska optických čidel

IMGP0227b

Detail „gumové“ převodovky, převodové kolo je k hřídeli motoru a současně pohonnému kolu přitahováno pružinou