V předešlých článcích jsme se naučili programovat na našem mBotovi světlo a zvuk. Je proto na čase naučit se naprogramovat i pohyb, aby náš robůtek mohl vyrazit šířit radost do celého světa (nebo alespoň po celé domácnosti, nebo klubovně).
Řeklo by se, co je na tom pohybu? MBot buď jede rovně, nebo zatáčí a je to..
Přesto lekce, kdy se moji svěřenci učí programovat pohyb mBota patří k jedněm z nejoblíbenějších. Tak tedy pojďme na to!
MBot má podobný systém pohybu, jako tank. Ten se také řídí prostřednictvím chodu motoru (respektive tím, jaký pás se jakou rychlostí a směrem otáčí). U mBota je to to samé. Lze programovat zvlášť chod každého motorku a u každého navíc můžete naprogramovat jinou rychlost otáčení. Oproti tanku má mBot navíc pouze třetí balanční kolečko, které ovšem na řízení robůtka nemá vliv (pokud se nám tedy nezasekne, což se nám ještě nikdy nestalo :-)).
Tip: Nemějte přílišná očekávání co se přesnosti pohybu mBota týče. Konstrukce pojezdu není z geometrického pohledu příliš přesná, díly převodovky a převodové skříňky jsou z měkkého plastu a na přesnost má vliv (vzhledem k síle motorků) i povrch na kterém se mBot nachází. Právě tyto nepřesnosti mohou být ovšem pro malé robotiky klíčem k pochopení procesů a inspirací pro práci se sofistikovanějšími roboty.
Programovat pohyb můžeme dvěma různými metodami. Buď použijeme přímo příkazy, které makeblock editor nabízí pro zatáčení a jízdu vpřed, nebo vzad, nebo budeme sami řídit chod jednotlivých motorků.
V prvém případě řídíme zvlášť chod levého i pravého motorku. V tomto widgetu můžeme ovlivnit prvý parametr (v případě mBota varianty M1 a M2).
Touto volbou si můžeme zvolit, který motorek má být daným programovým blokem ovládán (pokud po nastavení bloku mBot spouští místo levého motorku pravý a naopak, došlo k prohození konektorů motorků při zapojení do hlavní desky. Pro nápravu stačí konektory prohodit a vše bude fungovat, jak má). Druhým parametrem pak ovládáme rychlost otáček (škála od 0 do 255).
Ve druhém případě prostě zadáváme přímo požadovanou činnost, kterou mBot plní. Klíčový je následující blok s časovým intervalem (widget „čekej“), který vkládáme po příkazu k provedení činnosti. Doba po kterou vykonáváme například jízdu vpřed, nebo otáčení je určující pro ujetou vzdálenost, či úhel o který se mBot otočí.
Demonstrace obou způsobů ovládání je na následujících obrázcích. Oba programy jsou ke stažení na konci článku.
Tento program nám demonstruje první metodu řízení pohybu mBota prostřednictví příkazů pro každý motor (M1 a M2) zvlášť. Směr otáčení motorku určujeme rychlostí motoru. Rychlost vyšší než 0 znamená pohyb dopředu, rychlost nižší než nule se záporným znaménkem pohyb dozadu. Program demonstruje pohyb mBota je-li aktivní pouze jeden motor i jsou -li aktivní oba motorky, každý s jiným směrem otáčení.
Výhodou tohoto způsobu řízení pohybu je možnost plynulého zatáčení (do obloučku).
Následující program nám demonstruje použití widgetu, který neovládá jednotlivé motorky, ale používá knihovnu, kde jsou typy pohybů přímo definované čtyřmi variantami prvního parametru – běž dopředu (oba motorky se stejnou rychlostí otáčí ve směru dopředné jízdy mBota), běž dozadu (stejná rychlost motorků směrem dozadu), otáčení doprava, nebo otáčení doleva (každé kolo se točí jiným směrem ve směru požadovaného pohybu). Dalším parametrem, kterým můžeme i v tomto případě ovlivnit pohyb mBota je rychlost. Opět je možné zadávat hodnoty v rozsahu -255 – 255.
Tip: Zkuste dětem zamotat hlavu a například u příkazu „běž dopředu“ zadejte jako druhý parametr rychlost se záporným znaménkem. MBot provede přesně opačnou činnost – tedy bude couvat.
Postřeh na závěr: mBot mívá problémy se vůbec rozjet při zadávání nižších rychlostí v programu. Závisí to hodně na stavu nabití baterií. Jistotou bývá rychlost nad 100.
mBot programy ke stažení
Program – demonstrace jízdních vlastností mBota
Program – demonstrace otáčení mBota
Program – demonstrace postupného zvyšování rychlosti mBota
Program – jízda po kruhové dráze