V tomto aplikačním příkladu se naučíme zhasínat a rozsvěcet diody tak, že docílíme efektu blikání a měnit jas diody.
Jako v každé předchozí lekci, než začneme tvořit program si řekneme něco z teorie. Na destičce Micro:bit najdeme matici LED diod a to v rozměru 5×5. Vodorovná osa má označení “x”, svislá osa pak “y”. Číslování v obou osách začíná nulou a končí čtyřkou. Abychom mohli nastavovat každou diodu samostatně, musíme znát její adresu. Ta se skládá z čísla v ose “x” a z čísla v ose “y”, budeme psát (x,y). Příklad: LED dioda v levém horním rohu má adresu (0,0), LED dioda v dolním levém rohu pak adresu (0,4).
Každou LED diodu můžeme rozsvítit nebo zhasnou. Také stupeň jasu LED diody můžeme předem nastavit a to 256 způsoby. Hodnota 0 znamená nejmenší jas (vlastně nesvítí vůbec), hodnota 255 je maximální jas (svítí naplno – víc už nejde).
V dnešní lekci začneme programem, který bude opakovaně rozsvěcovat a zhasínat LED diodu, která je uprostřed matice diod, má tedy adresu (2,2). Jas této diody nastavíme na maximum, tady na hodnotu 255. Rychlost blikání si nastavíme na 1 vteřinu, takže půl vteřiny bude LED dioda svítit, půl vteřiny bude zhasnutá. Jedno bliknutí LED diody je pro nás činnost, kterou stačí stále dokola opakovat.
Popíšeme si slovně, jaké příkazy má náš mikropočítač vykonat :
- všechny diody na displeji zhasneme a nastavíme jas svícení na maximální hodnotu 255
- opakujeme stále dokola následující povely (bloky):
- rozsvítíme LED diodu s adresou (2,2)
- čekáme 500ms (LED dioda svítí půl vteřiny)
- zhasneme LED diodu s adresou (2,2)
- čekáme 500ms (LED dioda je půl vteřiny zhasnutá)
Tak a jdeme na to : V nabídce Basic vybereme blok “clear screen” a klikneme na něj a přetáhneme myší do kleští bloku „on start“. Další blok k nastavení jasu svícení LED diod se jmenuje “set brightness” a najdeme ho v nabídce Led. Klikneme na tuto nabídku a pod ní se nám otevře pokračující nabídka „ … more“. Na tu opět klikneme myší se nám otevře nabídka, ve které už blok pro nastavení jasu najdeme. Má už přednastavenou hodnotu 255. Pokud bychom chtěli jas LED diody snížit například na polovinu, klikneme na tuto hodnotu 255 a změníme ji na 127. Nyní jas měnit nebudeme. Blok připojíme za blok “clear screen”. Tím máme hotový popis v bodu a) .
V textovém popisu bodu b) máme opakovat bloky. K opakování už víme slouží blok „forever“. Do jeho kleští pak budeme postupně připojovat bloky, které se mají opakovat. První blok bude na to, abychom rozsvítili LED diodu s adresou (2,2). Je to blok “plot x y”, který “zapne” LED diodu a najdeme ho v nabídce Led. Hodnoty uvedené za “x” a “y” jsou adresou LED diody. Pokud nejsou hodnoty “x” a “y” nastaveny na (2,2), změníme hodnoty na (2,2). Dalším blokem který připojíme do kleští je “pause 500”, najdeme ho v nabídce Basic.
Když skončí činnost bloku “pause”, je třeba LED diodu zhasnout. Tentokrát na to použijeme blok “unplot x y”. Blok zhasíná LED diodu s adresou (x,y). Blok najdeme opět v nabídce Led. Nastavená adresa musí být stejná (2,2) jako u bloku “plot x y”. A poslední je opět blok “pause 500” který vykoná to, že LED dioda bude zhasnutá 500ms. Mikropočítač se pak vrátí na začátek a bude bloky v klaštích „forever“ opakovat.
Na obrázku vpravo je ukázka celého programu .
Program si vyzkoušíme tím, že klikneme na ikonu run a na levé straně okna bychom na obrázku Micro:bit měli sledovat blikání středové diody. Program si také můžete nahrát do vašeho Micro:bit připojeného k PC a to pomocí ikony Download. Úplný návod viz lekce A1.
Program blikání diody lze vytvořit více způsoby. V druhé části si ukážeme jiný způsob. Existuje blok “show leds”, který nám umožní ovládat celou matici LED diod tak, že si zatrhneme ty LED diody, které chceme, aby nám svítily. Je to zvláště výhodné tehdy, pokud je počet LED diod, které chceme ovládat více a nemusíme tak používat více bloků “plot x y” k zapínání.
Takže ve stávajícím programu vytáhneme z kleští bloku “forever” všechny bloky ven. Rozpojíme je tak, že vždy chytíme za dolní blok a tahem dolů rozpojíme. Bloky “plot x y” a “unplot x y” odstraníme přesunutím do koše (táhneme směrem doleva až nad nabídky a upustíme do koše) nebo pravým tlačítkem myši klikneme na požadovaný blok a vybereme Delete Block. (Někdy tam najdete další číslo, ale to je jen upozornění na celkový počet rušených bloků.) Do prázdných kleští vložíme blok “show leds”, který najdeme v nabídce Basic. V tomto bloku jsou zobrazeny LED diody, my si zatrhneme jen tu středovou. Toto zatržení říká, že LED diodu s adresou (2,2) rozsvítíme. Za tento blok zapojíme blok “pause 500”, který nám zbyl na ploše. Připojíme další blok “show leds”, u kterého nebude zatržena žádná LED dioda (ta středová zhasne) a opět zapojíme poslední blok “pause 500” z plochy. Program je hotov, viz přiložený obrázek vlevo.
Z programu je patrné, že druhý blok “show leds”, u kterého není zatržena žádná LED dioda vlastně zhasíná všechny diody. Tak tento blok můžeme vyměnit za blok “clear screen”, funkce programu zůstane stejná.
Jistě byste vymysleli další způsob blikání. Může to být například použití nastavování jasu 0 a 255 místo zapínání a vypínání LED diody.
V poslední části lekce si ukážeme, že si můžeme s programem používajícím bloky “show leds” pohrát. Nastavíme si obrázek smajlíků, např. dle posledního obrázku vpravo.
Samozřejmě si můžete vymyslet jiné obrázky smajlíků, vyzkoušejte.
Úkoly pro lekci A3 :
- zkuste změnit čas u bloků “pause” – doporučeně mezi 100 až 1500. Při kratších časech zkoušejte jen na destičce.
- zkuste na úplném začátku rozsvítit LED diodu (2,2) a pak místo “plot” a “unplot” měnit jas na 255 a na 0. (pozor – u HW Micro:bit dejte 255 a 1)
- zkuste přidat další blok “show leds” včetně “pause” pro animaci smajlíka