MBot – práce se světlem
Dnešní povídání bude o světle a co s ním mBot umí dělat. Ovládáním hřbetních světel zpravidla u nás v Domečku začínáme dětem ukazovat práci s robůtky. Důvodem je, kromě toho, že děti rády vidí bezprostřední výsledek činnosti svého programu i to, že na práci s LED světly se dá tak nějak mimochodem vysvětlit i pár základních programovacích struktur, bez kterých se později neobejdete.
MBot má k dispozici dvě LED světla na hřbetní části. Umí ovládat obě najednou i každé zvlášť. Každé světlo pracuje v RGB barevném modelu, což znamená, že umí míchat tři základní barvy – červenou, modrou a zelenou. Smícháním těchto primárních barev umí vytvořit jakoukoliv sekundární barvu. Programový blok „Nastav LED na desce“ vám toto umožňuje zadáním číselných parametrů pro všechny tři barevné kanály. V každém z nich můžete nastavit úroveň světla v barevném kanálu prostřednictvím hodnoty od 0 do 255.
Tip: Abyste nestříleli naslepo, zaexperimentujte si s různými druhy barevných světel v online barevném editoru ( Naleznete zde ). Získané hodnoty zkuste zadat do programu mBotovi.
Zkuste si v mblock3 poskládat a přenést do mBota následující program.
Program začíná v mblock3 hlavičkou. To je ten widget s půlkulatou stříškou nahoře, kterým náš program začíná. A mimochodem – to je velmi důležité zmínit – program se plní od příkazu/widgetu, který je umístěn v „nejvyšším patře“ programu směrem dolů. V našem případě je to příkaz, který vám nastaví LED na desce na „vše“ (tedy obě světla aktivně budou svítit podle hodnot zadaných v jednotlivých barevných kanálech). V našem případě jsme dali hodnotu 255 pouze do kanálu červené barvy, což znamená, že mBot bude svítit nejsilněji co umí červenou barvou.
Příkaz „čekej 1 sekund“ znamená, že mBot bude plnit přesně jednu sekundu činnost, kterou měl zadanou o příkaz předtím. Trošku kostrbatě tím chci říci, že bude svítit červenou barvou přesně jednu sekundu.
Tip: Příkaz čekej je v mBotím programování univerzální a neplatí pouze jen na světla. Můžete ho použít později třeba i na stanovení časových limitů pro pohyb atp. Hodnotu v kolečku můžete libovolně měnit přepsáním na různé časy (hodnota je vždy v sekundách). Hodnotu můžete přepsat i na číslo s desetinnou čárkou (pouze místo čárky pište desetinnou tečku :-))
Pokud program v plnění příkazů dojede na konec, donekonečna plní poslední příkaz. V našem případě rozsvítí obě LED světla s nastavenými kanály na hodnotu 0, čili by výsledkem měla být černá barva. MBot tento příkaz vyplní tak, že nebude svítit vůbec. Pokud nastavíte všechny barevné kanály na hodnotu 255 bude mBot svítit bíle.
Program Blik 1, který máte mimochodem i za článkem ke stažení, bude proveden následovně. MBot třikrát blikne, pokaždé jinou barvou (červenou, pak zelenou a nakonec modrou). Činnost mBota poté co blikne modrou barvou skončí, stejně jako program.
Zkuste použít program Blik 1 z předešlého povídání a přidejte příkaz „opakuj stále“ tak, aby výsledek vypadal tak jako na následujícím obrázku.
Příkazu, který reprezentován widgetem „opakuj stále“ se v programátorském jazyce říká smyčka. Jeho úkolem je opakovat to, co se nachází v jeho hranicích. V našem případě jsou to příkazy/widgety, které ohraničuje widget „opakuj stále“. V případě, že se program při plnění dostane do podobné smyčky cykluje donekonečna. Někdy se tato vlastnost hodí a lze ji využít pro jednoduché úkony, jako je třeba blikání pořád dokola třemi barvami.
Tip: Mblock3 umí i smyčky s přesně daným počtem cyklů. Widget této smyčky je stejný jako widget smyčky s nekonečným počtem opakování. Liší se pouze možností zadat číselně přesný počet cyklů. Po splnění přesného počtu cyklů pak program vyskakuje z této smyčky a pokračuje v plnění příkazů, které jsou za touto smyčkou.
Následující program Blik 3 vám má demonstrovat způsob, jak ovládat obě hřbetní světla mBota jednotlivě.
Všechny příkazy v tomto programu už byste měli znát. Nová je pouze vzájemná kombinace příkazů. Výsledkem činnosti tohoto programu je střídavé blikání bílého světla na levé i pravé LED. Tohoto výsledku jsme dosáhli tím, že dáváme za sebou příkazy k rozsvícení levého i pravého světla bez příkazu „čekej“ mezi nimi. MBot tak oba příkazy vyplní téměř současně, přičemž to téměř je tak těsné, že si toho lidské oko nemá šanci všimnout. Navenek se tedy zdá, že byly příkazy pro pravou i levou LED splněny zároveň.
Hrátky se světly jsou u dětí velmi oblíbené. Zkuste si třeba naprogramovat mBota jako policejní auto s modročerveným majákem. V příští lekci k němu můžete připojit i odpovídající zvuk. Nebo zkuste mBota naprogramovat aby vysílal nějaký text morseovkou. Možností je spousta…
Programy ke stažení
Program Blik1
Program Blik2
Program Blik3
Program pro zobrazení sekundárních barev
Odkazy na produkty HW Kitchen použité v článku:
- Výukový robot mBot2 – ultrasonic - 7.11.2023
- Výukový robot mBot2 – krása pohybu - 23.5.2023
- Výukový robot mBot2 – programujeme základní rutiny se CyberPi - 29.12.2022