Jak jsme již z minulých dílů zjistili, mBot rozhodně není němá tvář a umí se pěkně nahlas ozvat. A když jsme již u těch tváří, tak se dá říci, že mBot jich má velmi mnoho. Součástka, která se jmenuje LED Matrix totiž umožňuje mBotovi nejenom vrhat různé výrazy a ukazovat různé symboly, ale také se dá použít jako improvizovaný displej.
Nejnovější model mBota – série mBot explorer již obsahuje modul LED matrix, který umožňuje mBotovi vizualizovat jednoduchou monochromatickou grafiku. Ke starším modelům bylo nutno tento díl dokupovat zvlášť, mBot explorer vám tento díl dodá spolu s mBotem v typické modré krabici.
Samotný modul je nutné před použitím zkompletovat. Není to nic velkého, jen je nutné čtyřmi čepy přidělat akrylovou krytku přes modul s LED diodami a celou sestavu (pokud ji hodláme aktuálně použít) přidělat k šasi mBota. Pro připojení modul používá stejně jako každý jiný modul v prostředí mBota konektor RJ-25 modré barvy (v případě mBota připojitelný na kterýkoliv ze čtyř vstupů). Při kompletaci je vyžadována špetka síly v prstech a trocha šikovnosti, pročež by bylo dobré děti, které tento modul sestavují, po očku kontrolovat a když tak pomoci. V balíčku jsou k dispozici i náhradní čepy, pokud by se napoprvé nezadařilo.
Modul zvaný LED Matrix je pole 16×8 modrých LED diod (viz. následující obrázek). Na tomto poli může mBot podle svého programu rozsvěcet, nebo zhasínat kombinaci světel. Na práci s LED matrixem lze dětem snadno vysvětlit spoustu technik a postupů – rozsvícení kombinace LEDek na matrixu poskytuje okamžitou zpětnou vazbu.
MBot pro programové ovládání modulu LED matrix používá čtyři bloky. Pomocí příkladu se vám pokusím přiblížit práci s těmito bloky.
První program, který je i na obrázku je velmi jednoduchý a v příkladech za článkem jej najdete pod jednoduchým názvem „1234“. Tento program demonstruje činnost bloku umožňujícího zobrazování čísel.
V bloku „ukaž tvář“ pro čísla je možné nastavit dva parametry. Prvním je port na kterém je připojený modul LED Matrix k mBotovi a druhým je pole pro zadávání čísla. Bohužel je tento blok limitován zobrazovacími možnostmi modulu, který je schopný zobrazit pouze čtyři čísla. Jakékoliv vícemístné číslo, které bychom zobrazovali pomocí tohoto bloku by „utíkalo“ z displeje.
Problém většího textového, nebo číselného řetězce, který se nevejde na plochu LED matrixu můžeme vyřešit dalším blokem pro zadávání textu. Tento blok již, na rozdíl od předchozího, pracuje se souřadnicovým systémem (parametry x – vodorovná pozice a y – svislá pozice). Program, který je na obrázku a který si můžete stáhnout i v příkladech na konci článku umožňuje posun textu v horizontále právě použitím hodnoty v parametru „x“.
Popis programu: Celé tělo programu cykluje v nekonečné smyčce. Program vždy v začátku cyklu vynuluje proměnnou „posunTextu“ ve které je uložena aktuální hodnota souřadnice „x“ pro zobrazení textového řetězce. Smyčka ve které cykluje text blokem „délka“ (naleznete v úvodní podmínce cyklu) určí celkový počet znaků řetězce, který se bude zobrazovat na displeji a každý znásobí koeficientem 6 (šířka znaku) a výslednou hodnotu přičte k aktuální pozici textu. Podmínka cykluje dokud není řetězec celý zobrazen, tedy dokud není celková hodnota rovna nule.
Následuje příkaz pro zobrazení řetězce, přičemž pozice x je dána dynamicky průběhem smyčky. Další bloček od hodnoty „posunTextu“ odečte hodnotu 1 (díky tomuto příkazu se text pohybuje zprava doleva) a zobrazí výsledný stav na 100ms. Poté se cyklus opakuje s upravenou hodnotou „posunTextu“.
Tento program tedy zobrazuje na LED matrix mBota posunující se jakkoliv dlouhý text. Stačí jen text vypsat do bločků.
Program, který si můžete prohlédnout na předešlém obrázku je demonstrací jak použít pro zobrazení času bloček „ukaž čas“. Pozor tento blok sám o sobě čas neměří, pouze vám nabízí formát, jak zobrazit číselná data proměnných, ve kterých mohou být vloženy třeba časové informace (použít tento blok pochopitelně lze při troše kreativity i na leccos jiného).
Popis programu: Jak z doplňující grafiky vyplývá má program „stopky“ několik bloků, které obhospodařují dílčí funkce programu. Přepínání mezi těmito dílčími funkcemi programu je dané kombinací hodnoty proměnné akce (0 – stopky vynulované, 1 – stopky aktivně počítající) a stavem, který nastane je-li tlačítko stisknuté, či nikoliv. Podmínky, kdy je proměnná akce spojená se stiskem tlačítka jsou aktivační, umožňující uživateli zvnějšku přepínání mezi jednotlivými režimy.
Do proměnné „min“ a „sec“ se ukládá aktuální stav časového intervalu od aktivace. Přičítání času se děje v podmínce kdy akce=1 vždy po jedné sekundě cyklu. Po odpočtu 59 sekund se přičítá minuta a stav „sec“ se vynulovává.
Použití bloku pro zobrazení času pak naleznete na konci programu.
Poslední blok ovládající LED matrix, který si v tomto díle představíme, je blok „ukaž kresbu“. Pomocí tohoto příkazového bloku můžeme ovládat jednotlivé LED diody matice a jejich kombinací tak rozsvítit monochromatický obrázek. Původně byl tento blok určen pouze pro zobrazování emotikonů, ale co bychom to byli za kutily, bastlíře a hračičky, kdybychom tuto možnost nevyužili na více způsobů.
Blok „ukaž kresbu“ nám umožňuje ovlivnit pozici zobrazení obrázku (horizontálně i vertikálně) – což se velmi hodí při animování grafiky a hlavně nám umožňuje pohodlné zadávání grafiky.
Klikneme-li na okénko bločku za nápisem „draw“ rozbalí se nám menu (viz. obrázek) umožňující nám zadat parametry zobrazované grafiky. Popis horní linie tlačítek menu: tlačítko přepínající mezi režimem gumy a pera (nepotřebné), následuje tlačítko s textem „vymaž“ – vymaže komplet celou matici, potom tlačítko „všechny“ – to naopak celou matici vyplní. Další tlačítko se šipkou umožní grafiku na matici otočit o 180°. Následují tlačítka pro převrácení matice horizontálně a vertikálně a dvoupolohové tlačítko „přidat k oblíbeným/odstranění emoce“ – tím si můžete vytvořenou grafiku uložit do knihovny k oblíbeným, popřípadě jí z této knihovny odstranit.
Body na matici jsou dvoupolohové. Po kliknutí se rozsvítí modře – pak budou na LED matrixu svítit. Po dalším kliknutí se vrátí zpět do původního, nerozsvíceného stavu. Grafika je v bloku aktivní po závěřečném kliknutí na tlačítko „Dokončeno“.
Úkoly:
1, Vytvořte program, který posouvá obrázek na LED matrixu zleva doprava.
2, Vytvořte program který zobrazuje každou sekundu na displeji jiné písmeno.