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.
Úkol:
1, Vyrob si slalomovou dráhu a naprogramuj mBota, aby jí dokázal bez problémů projet
2, Vyrob si bludiště a naprogramuj mBota, aby ho dokázal sám projet.
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
mám to tu rád čau
Dobrý den, poprosil bych o praktickou řadu: Mám mbot2 a udělám program, který jede, před překážkou se otočí vlevo a opět jede.
Celé je to v nekonečné smyčce. Jak program v robotovi zastavit, abych do něj mohl nahrát kabelem něco dalšího? Existuje nějaká kombinace tlačítek? Já ho musím vždy vyhnout přepínačem On/Off
Děkuji za radu
Dobrý den
Zkuste použít místo nekonečné smyčky „opakuj stále“ smyčku s podmínkou na začátku. Do podmínky vložte stisk tlačítka. Pak stačí držet tlačítko dokud nedojde k opakování cyklu – při stisknutém tlačítku se opakování přeruší. Pokud je celá tato sestava bloků vložena do nekonečné smyčky můžete libovolně zastavovat a spouštět.
Díky za odpověď, něco takového udělám. Pro děti je to ale trochu těžší na pochopení – dělal jsem v Lego EV3 a tam je tlačítko, které program přeruší….