Ne nezačínám fantazírovat a s mBotem se rozhodně nemůžete věnovat magii a temným čárám (alespoň pokud vím :-)). Zato umí mBot velmi dobře jezdit po nakreslených čárách, popřípadě, jako dobře vychovaný robůtek umí čáru respektovat a nepřekračovat hranici. V minulém díle jsme se učili pracovat s LED Matrix a dnes se podíváme, jak robota zkrotit na čáře a používat snímač čáry.
MBot umí jezdit po čárách. Toto kouzlo mu umožňuje modul snímače čáry (Line Followeru), který je umístěný zpravidla v přední části robota (využít lze samozřejmě i jinde). Modul obsahuje dva senzory schopné snímat odražené IR záření (modul obsahuje dvě dvojkombinace LED vyzařující IR záření s fototranzistory které jsou schopné číst a přijímat IR záření odražené od blízké plochy). Podle intenzity přijímaného záření modul oznamuje mBotovi jestli vidí černou barvu (méně odraženého záření), nebo bílou barvu (více odraženého záření).
Snímač čáry – Line Follower
Jednoduchý snímač čáry, o kterém je v tomto článku řeč, snímá dvěma senzory dva stavy (černá/bílá) svého okolí. Při vzájemné kombinaci různých stavů, které mohou při snímání okolí nastat, je možné vyhodnotit jejich čtyři různé kombinace. MBot pak může být naprogramován na reakce na tyto čtyři stavy. Výsledkem může být i poměrně sofistikované chování robota.
Snímač čáry a jeho stavy
Z předchozí grafiky, kde jsou popsané čtyři stavy snímače čar, které mohou nastat vyplývají i reakce, které by mBot na danou situaci měl mít naprogramované. Proto si prohlédneme screen prvního programu, který umožňuje pohyb po čáře.
Čára ovšem nemusí sloužit pouze jako dráha, po které by robot mohl chodit, ale třeba také jako hranice, kterou mBot nemůže překročit. Na několika předváděcích akcích jsme v Domečku této schopnosti mBota s úspěchem použili při demonstraci, kdy se robot samostatně pohyboval po stole. Byl schopen volně jezdit po bílé desce stolu, jakmile se ovšem senzorem dostal za hranu desky vyhodnotil si výsledek tak, že vidí černou barvu (a tudíž hranici), couvl, otočil se a pokračoval v projíždění.
Hranice může být zároveň i obrysem bludiště, které musí mBot samostatně projet. Není tedy třeba v klubovně stavět bludiště s opravdovými stěnami. V pohodě si vystačíte s černou páskou a bílou deskou stolu a můžete si dětmi vyrobit improvizovanou únikovou hru – ale o tom asi v jiném díle mého seriálu :-).
Popis programu: Po stisknutí tlačítka se spustí program v nekonečné smyčce. Pak mohou pro robota nastat tři různé stavy, na které má naprogramované reakce. Jednak je to stav, kdy nevidí žádnou hranici – prostě jede dopředu rychlostí 100 a svítí zelenou barvou. A pak jsou dva velmi podobné stavy, kdy „vidí“ hranici buď levým senzorem, nebo pravým. V tomto případě přeruší jízdu dopředu, rozsvítí červené světlo a půl sekundy couvá. Poté v závislosti pokud mBot viděl hranici levým, nebo pravým senzorem se náhodně zatočí buď doleva, nebo dobrava (s příslušnou světelnou signalizaci) a pokračuje v jízdě dopředu.
Tip: Při hraní si s čarami je možné si to trošku začít komplikovat. Zkuste si třeba naprogramovat na situaci, kdy budou na dráze překážky, nebo bude dráha přerušena.
Popis programu: mBot, který pracuje s tímto programem má vpodstatě dva základní režimy, podle kterých se chová. Jednak je to běžný režim sledování čáry, který je odvozený od programu umožňujícího chůzi po čáře a další režim je spuštěný pokud ultrazvukový senzor zaregistruje před robotem překážku bližší než 5 cm. V tomto případě se otočí doleva a opisuje obloukovou dráhu dokud nenarazí na čáru. Pokud narazí na čáru pokračuje dál v běžném provozu jízdou po čáře.
Tip: Program s detekci překážky, který jsem vám předložil, nefunguje vždy. Je stavěný na určitou velikost překážky. Pokud by byla překážka větší než je předpokládáno, mBot by si s touto situací neporadil a vrazil do ní. Zkuste tento problém vyřešit :-).
Popis programu: Pro chod programu je deklarována proměnná testCary do které je ukládán stav počtu testů pokud mBot hledá čáru (nabývá hodnot 0, nebo 1). V případě, že robot jede po čáře je testCary stabilně na hodnotě 0. Pokud se mBot dostane do režimu sledování čáry 3, čili když nevidí přerušenou čáru, jede 1s rychlostí 100 dopředu a pak se otáčí o 90° doleva a hledá čáru a poté o 180° doprava a opět hledá čáru. V případě, že v režimu hledání čáry čáru nalezne, přestane ji hledat a okamžitě normálně vyrazí vpřed. Pokud čáru nenalezne přepne se do klidového režimu, kdy čeká na operátora a signalizuje ukončení jízdy.
Doufám, že se vám toto prvotní seznámení se světem čar líbilo. Příští článek se do tohoto tématu vrhneme ještě o něco podrobněji a představíme si sofistikovanější modul pro sledování čáry, který může mBot používat.