Chcete se teď hned naučit programovat čipy? Nechcete nic instalovat a číst zdlouhavé manuály? Dnes si vyzkoušíme blokové programování na Micro:bitu, který nám zahraje Tichou noc.

Chcete se teď hned naučit programovat čipy? Nechcete nic instalovat a číst zdlouhavé manuály? Dnes si vyzkoušíme blokové programování na Micro:bitu, který nám zahraje Tichou noc.

Micro:bit V2 je nová generace populární prototypovací destičky, která naučí programovat i vaši babičku. Čelní straně vévodí dvě uživatelská tlačítka a maticový displej z 5×5 červených LED.

Micro:bit V2 je nová generace populární prototypovací destičky, která naučí programovat i vaši babičku. Čelní straně vévodí dvě uživatelská tlačítka a maticový displej z 5×5 červených LED.

Zadní strana Micro:bitu slouží všem čipům, 2,4GHz anténě, USB konektoru a konektoru 3V baterie (např. 2× AA/AAA)

Zadní strana Micro:bitu slouží všem čipům, 2,4GHz anténě, USB konektoru a konektoru 3V baterie (např. 2× AA/AAA)

S Micro:bitem můžeme komunikovat z PC pomocí microUSB a z mobilu pomocí Bluetooth a stejnojmenné aplikace

S Micro:bitem můžeme komunikovat z PC pomocí microUSB a z mobilu pomocí Bluetooth a stejnojmenné aplikace

Na počítači není třeba ručně cokoliv instalovat. Micro:bit se po připojení skrze USB ohlásí jako externí disk, do kterého stačí přetáhnout hotový firmware, anebo firmware nahrajete přímo z webového editoru pomocí technologie WebUSB.

Na počítači není třeba ručně cokoliv instalovat. Micro:bit se po připojení skrze USB ohlásí jako externí disk, do kterého stačí přetáhnout hotový firmware, anebo firmware nahrajete přímo z webového editoru pomocí technologie WebUSB.

Micro:bit umožňuje i běh na 3V baterii pomocí JST konektoru (JST X2B-PH-SM4-TB)

Micro:bit umožňuje i běh na 3V baterii pomocí JST konektoru (JST X2B-PH-SM4-TB)

Poslouží třeba dvojice sériově zapojených 1,5V AA/AAA baterií

Poslouží třeba dvojice sériově zapojených 1,5V AA/AAA baterií

Destičku pohání norský SoC Nordic nRF52833 s 64MHz procesorem ARM Cortex-M4, 128 kB RAM, 512 kB flash a Bluetooth 5.2. Na destičce je poměrně nenápadný a najdete jej poblíž tištěné antény.

Destičku pohání norský SoC Nordic nRF52833 s 64MHz procesorem ARM Cortex-M4, 128 kB RAM, 512 kB flash a Bluetooth 5.2. Na destičce je poměrně nenápadný a najdete jej poblíž tištěné antény.

Na opačné straně se nachází ještě jeden armový procesor MKL27Z256VFM4 od NXP, který se stará o komunikaci skrze USB a velmi snadné nahrávání nového firmwaru. Ten stačí jednoduše přetáhnout z počítače ve správci souborů, anebo zkopírovat přímo z webového editoru pomocí WebUSB.

Na opačné straně se nachází ještě jeden armový procesor MKL27Z256VFM4 od NXP, který se stará o komunikaci skrze USB a velmi snadné nahrávání nového firmwaru. Ten stačí jednoduše přetáhnout z počítače ve správci souborů, anebo zkopírovat přímo z webového editoru pomocí WebUSB.

Na spodní hraně najdete tzv. Edge konektor s trojicí velkých I/O plošek pro připojení periferií pomocí krokodýlků a menších plošek s 19 I/O konektory včetně ADC, PWM, I2C, SPI a UART pro připojení komplikovanějších periferií.

Na spodní hraně najdete tzv. Edge konektor s trojicí velkých I/O plošek pro připojení periferií pomocí krokodýlků a menších plošek s 19 I/O konektory včetně ADC, PWM, I2C, SPI a UART pro připojení komplikovanějších periferií.

Signály z Edge konektoru přivedeme třeba na populární nepájivé prototypovací pole pomocí jednoduchého adaptéru

Signály z Edge konektoru přivedeme třeba na populární nepájivé prototypovací pole pomocí jednoduchého adaptéru

Tento podporuje 12 I/O signálů včetně SPI, I2C a UART a 3V napájení

Tento podporuje 12 I/O signálů včetně SPI, I2C a UART a 3V napájení

Do adaptéru Micro:bit zacvakneme jako kartu

Do adaptéru Micro:bit zacvakneme jako kartu

Pak už jen stačí adaptér zapojit do nepájivého pole do kterého zapícháme vodiče a jednotlivé komponenty s piny s roztečí 2,54 mm

Pak už jen stačí adaptér zapojit do nepájivého pole do kterého zapícháme vodiče a jednotlivé komponenty s piny s roztečí 2,54 mm

V tomto případě jsme chtěli k Micro:bitu připojit čip teploměru skrze sběrnici I2C, použijeme tedy její piny SDA (data) a SCL (takt)

V tomto případě jsme chtěli k Micro:bitu připojit čip teploměru skrze sběrnici I2C, použijeme tedy její piny SDA (data) a SCL (takt)

Micro:bit může skrze sběrnici I2C číst třeba údaje o teplotě a vlhkosti vzduch z čipu SHT31

Micro:bit může skrze sběrnici I2C číst třeba údaje o teplotě a vlhkosti vzduch z čipu SHT31

Základní deska Micro:bit a její zadní strana s čipy v celé své kráse

Základní deska Micro:bit a její zadní strana s čipy v celé své kráse

Micro:bit lze programovat nejrůznějšími způsoby, tím oficiálním je ale webový editor MakeCode od Microsoftu. Program skládáte z funkčních bloků a kdykoliv se můžete přepnout do jeho podoby v Javascriptu a Pythonu. Hotový program si můžete přehrát na simulátoru v levé části okna.

Micro:bit lze programovat nejrůznějšími způsoby, tím oficiálním je ale webový editor MakeCode od Microsoftu. Program skládáte z funkčních bloků a kdykoliv se můžete přepnout do jeho podoby v Javascriptu a Pythonu. Hotový program si můžete přehrát na simulátoru v levé části okna.

Jednotlivé komponenty desky Micro:bit na čelní straně

Jednotlivé komponenty desky Micro:bit na čelní straně

Jednotlivé komponenty desky Micro:bit na zadní straně

Jednotlivé komponenty desky Micro:bit na zadní straně

Jedním ze základních bloků editoru je „při startu.“ Aktivuje se ihned po připojení zdroje napětí.

Jedním ze základních bloků editoru je „při startu.“ Aktivuje se ihned po připojení zdroje napětí.

Do základního bloku jsme zacvakli blok přehrávače melodie

Do základního bloku jsme zacvakli blok přehrávače melodie

Melodii o osmi tónech si můžeme vytvořit na matici

Melodii o osmi tónech si můžeme vytvořit na matici

K dispozici je i několik hotových melodií

K dispozici je i několik hotových melodií

Jakmile klepneme na tlačítko Stáhnout, program se přeloží do strojového jazyka architektury ARM a do počítače se stáhne binární soubor s příponou HEX

Jakmile klepneme na tlačítko Stáhnout, program se přeloží do strojového jazyka architektury ARM a do počítače se stáhne binární soubor s příponou HEX

Soubor HEX zkopírujeme ve správci souborů do Micro:bitu. Čip se poté automaticky restartuje a načte náš nový firmware.

Soubor HEX zkopírujeme ve správci souborů do Micro:bitu. Čip se poté automaticky restartuje a načte náš nový firmware.

Druhou možností flashování je přímé nahrání našeho programu z webového prohlížeče pomocí technologie WebUSB. Nejprve musíme Micro:bit spárovat.

Druhou možností flashování je přímé nahrání našeho programu z webového prohlížeče pomocí technologie WebUSB. Nejprve musíme Micro:bit spárovat.

Pokud webový prohlížeč nalezne připojený Micro:bit, zobrazí se v seznamu

Pokud webový prohlížeč nalezne připojený Micro:bit, zobrazí se v seznamu

Micro:bit je připojený skrze WebUSB a u tlačítka Stáhnout se zobrazil symbol sběrnice USB. Když nyní klepneme na tlačítko firmware se nestáhne do počítače, ale rovnou na Micro:bit.

Micro:bit je připojený skrze WebUSB a u tlačítka Stáhnout se zobrazil symbol sběrnice USB. Když nyní klepneme na tlačítko firmware se nestáhne do počítače, ale rovnou na Micro:bit.

Při propojování bloků se můžeme vždy přepnout do Javascriptu a tak se jej i naučit

Při propojování bloků se můžeme vždy přepnout do Javascriptu a tak se jej i naučit

Při propojování bloků se můžeme vždy přepnout do Pythonu a tak se jej i naučit

Při propojování bloků se můžeme vždy přepnout do Pythonu a tak se jej i naučit

Tento základní blok bude svůj obsah opakovat stále dokola

Tento základní blok bude svůj obsah opakovat stále dokola

Melodie se nyní přehrává v nekonečné smyčce se sekundovými pomlkami

Melodie se nyní přehrává v nekonečné smyčce se sekundovými pomlkami

Tento základní blok zpracuje svůj obsah při události na akcelerometru. Může to být například některé z těchto pohybových gest.

Tento základní blok zpracuje svůj obsah při události na akcelerometru. Může to být například některé z těchto pohybových gest.

Když s Micro:bitem zatřeseme, přehraje se melodie

Když s Micro:bitem zatřeseme, přehraje se melodie

Do programu jsme přidali další blok, který tentokrát vykreslí na maticový LED displej jednu z ikon v nabídce

Do programu jsme přidali další blok, který tentokrát vykreslí na maticový LED displej jednu z ikon v nabídce

Složitější sekvence bloků můžeme zapouzdřit do vlastní funkce/bloku a tu pak volat v hlavním programovém proudu

Složitější sekvence bloků můžeme zapouzdřit do vlastní funkce/bloku a tu pak volat v hlavním programovém proudu

Blok „hraj tón“ přehraje tón o určité frekvenci a době. Frekvenci buď zapíšeme přesnou hodnotu, anebo si vybereme některý z klasických tónů na virtuálním klavírku.

Blok „hraj tón“ přehraje tón o určité frekvenci a době. Frekvenci buď zapíšeme přesnou hodnotu, anebo si vybereme některý z klasických tónů na virtuálním klavírku.

Celý program, který se skládá z hlavního proudu vlevo a vlastní funkce vpravo

Celý program, který se skládá z hlavního proudu vlevo a vlastní funkce vpravo

Micro:bit V2 je nová generace populární prototypovací destičky, která naučí programovat i vaši babičku. Čelní straně vévodí dvě uživatelská tlačítka a maticový displej z 5×5 červených LED.
Zadní strana Micro:bitu slouží všem čipům, 2,4GHz anténě, USB konektoru a konektoru 3V baterie (např. 2× AA/AAA)
S Micro:bitem můžeme komunikovat z PC pomocí microUSB a z mobilu pomocí Bluetooth a stejnojmenné aplikace
Na počítači není třeba ručně cokoliv instalovat. Micro:bit se po připojení skrze USB ohlásí jako externí disk, do kterého stačí přetáhnout hotový firmware, anebo firmware nahrajete přímo z webového editoru pomocí technologie WebUSB.
39
Fotogalerie

Micro:bit V2: Tuto destičku plnou čipů dokáže naprogramovat i vaše babička

  • Chcete se teď hned naučit programovat čipy?
  • Nechcete nic instalovat a číst zdlouhavé manuály?
  • Naprogramujeme si Micro:bit, který zahraje Tichou noc

I když pro Živě.cz a Computer připravuji seriál Pojďme programovat elektroniku už déle než čtyři roky a dnes jeho malá knihovna čítá bezmála 200 projektů, stále dokola dostávám tu stejnou otázku: Jak se mám naučit programovat?

Letos v říjnu představili britští inženýři novou verzi populární prototypovací destičky Micro:bit V2, kterou později naskladnily i české e-shopy.

Byť se Micro:bit zrodil jako pomůcka pro děti, školáky a lektory všemožných kroužků malých elektrotechniků a konstruktérů robotů, mohu všechny čtenáře ubezpečit, že je to perfektní volba i pro šedesátníka, který si chce na stará kolena naprogramovat svůj první čip.

ac4f29dc-07bd-4749-86b6-fc62029e9d4b
Zadní strana Micro:bitu se všemi klíčovými čipy. Další fotografie najdete v galerii.

Jednoduchost Micro:bitu totiž nespočívá v tom, že by to snad byla hračka, která zabaví jen malé caparty a nic lepšího neumí. Právě naopak! Kouzlo drobné destičky tkví v hromadě integrovaných čidel a jejich ovládnutí přímo z webového editoru bez potřeby instalování a konfigurace jakéhokoliv komplikovaného vývojového prostředí.

Micro:bit se programuje z webového prohlížeče

Začátečník, ať už to budete vy, vaše dítě nebo třeba neteř (i holky chtějí kódovat!), který se v životě nesetkal s jedinou řádkou programového kódu, může zažít tvořit pomocí tzv. blokového programování.

29f66d11-cb19-479d-8ffd-985701f38fb2
Webový editor MakeCode v režimu blokového programování

Micro:bit pro tyto účely nabízí webové prostředí MakeCode od Microsoftu, ve kterém pomocí funkčních a do češtiny přeložených bloků, jež budete přetahovat z nabídky, sestavíte celé tělo programu.

Bloky jsou rozdělené do několika kategorií, a než si z nich zkusíme postavit první program, ještě se podíváme, co s nimi vlastně můžeme ovládat.

Armový čip s Bluetooth, reproduktorem, displejem i akcelerometrem

Destičku Micro:bit V2 pohání SoC čip Nordic nRF52833, v jehož nitru se skrývá:

  • 64MHz procesor ARM Cortex-M4
  • 128 kB RAM
  • 512 kB flashové paměti
  • Bluetooth 5.2
  • Teploměr (jen pomocný a nepříliš přesný)

Samotný SoC pak na plošném spoji doplňuje několik čidel a výstupních zařízení, aby nemusel kutil-zelenáč připojovat k desce alespoň zpočátku cokoliv dalšího.

Takže pěkně popořadě. Na čelní straně nechybí:

  • Červený maticový 5×5 LED displej s nastavením jasu (PWM)
  • Indikátor spuštěného mikrofonu
  • Dvě tlačítka
  • Dotyková ploška ve tvaru loga projektu Micro:bit
  • 3 velké plošky s I/O piny a 3V zdrojem napětí (max 190 mA)
  • 19 malých plošek s I/O piny, sběrnicemi I²C, SPI, PWM a sériovou linkou
988ef927-3cb7-4d86-b8dc-314448bb57fc
Přední strana desky Micro:bit V2

Na zadní straně desky pak vedle SoC čipu od trondheimského Nordicu najdete ještě:

  • Všesměrový MEMS mikrofon SPU0410LR5H-QB-7
  • Reproduktor/bzučák MLT-8530
  • Kombinovaný trojosý akcelerometr/magnetometr LSM303AGR
  • Tištěná 2,4GHz anténa
  • Tlačítko reset
  • Konektor microUSB a čip pro USB komunikaci MKL27Z256VFM4
  • Konektor 3V baterie JST X2B-PH-SM4-TB
cadb6bcc-2cde-4c77-8022-5c7bd8db2455
Zadní strana desky Micro:bit V2

Základní představení je za námi, a tak si pojďme konečně vytvořit první program. Po spuštění se z reproduktoru ozve stupnice tónů. Jak na to, si ukážeme v následující kapitole.

Pokračování 2 / 7

První program: po startu přehraj melodii

Jelikož je na destičce reproduktor/bzučák, pojďme si z bloků poskládat první a opravdu primitivní program, který jen po startu zahraje stupnici základních tónů jako na dětském pianu a skončí.

f0d40e38-cfd7-4fe1-870f-7df8aec1b422
Tento základní blok spustí všechny vnořené bloky ihned po startu

Jednotlivé bloky představují posloupnost základních příkazů, začneme proto blokem při startu, který myší přetáhneme do hlavního okna. Dále do okna přetáhneme ze sekce Hudba blok přehraj melodii a podobně jako puzzle oba bloky zapojíme do sebe.

aba9534d-8d15-49d8-8021-fbaeae23b18d
Do úvodního bloku jsem zacvakl blok přehrávající melodii, který má dva parametry

Blok přehraj melodii nabízí dva parametry. Prvním je krátká melodie. Buď vybereme některou z připravených, anebo si ji poskládáme v matici, která přehraje osm tónů. Druhým parametrem bloku je pak tempo, tedy rychlost přehrávání jednotlivých tónů za minutu.

ff17eb03-c3d1-4150-b520-591f477e720d8ff558cd-968b-4de2-8832-de2b7f203bac
Ruční vytvoření melodie na matici a galerie od tvůrců Micro:bitu

To je celé! Jelikož editor MakeCode obsahuje i simulátor našeho Micro:bitu, v levém panelu si můžeme program vyzkoušet, načež se přehraje hudební stupnice z reproduktoru velkého počítače.

Podívejte se na videoukázku našeho prvního programu:

V následující kapitole si ukážeme, jak vlastně dostat program do Micro:bitu. Můžeme použít běžný správce souborů anebo rovnou prohlížeč.

Pokračování 3 / 7

Program do Micro:bitu přetáhnete...

Když klepneme na tlačítko Stáhnout v levém dolním okraji, webový editor přeloží náš kód do strojového jazyka čipu Nordic nRF52833 a stáhne se jeho binární podoba s příponou HEX.

410e4964-bf03-44a2-b8c3-59b8efd5da462465a4fa-d1dc-45bc-a9fa-d4ffc54a486a
Stažení přeloženého programu jako souboru s příponou HEX a jeho zkopírování na diskovou jednotku Micro:bitu. Po dokončení kopírování se Micro:bit restartuje a spustí program.

Pokud připojíme Micro:bit skrze USB k počítači, měl by se ohlásit jako běžný externí disk, do kterého stačí soubor HEX zkopírovat, načež jej zavaděč čipu nainstaluje jako hlavní program, Micro:bit se automaticky restartuje, spustí se náš firmware a bzučák zapípá melodii.

Anebo nahrajete z prohlížeče pomocí WebUSB

Druhou možností je už zmíněná technologie WebUSB, tedy přístup k USB periferiím přímo z webového prohlížeče. Webové stránce nejprve udělíte právo, aby mohla komunikovat s USB zařízením na vašem počítači, a pokud propojení dopadne dobře, v tlačítku Stáhnout se zobrazí ikona USB.

65df3c8f-da26-4d68-a702-21f5d0f00fd96ea2751b-fdf9-43a8-a900-e0769a2499ee425cc46c-84b7-4cf1-9d89-5043981eb202
Připojení Micro:bitu do webové aplikace skrze WebUSB. Po spárování se u tlačítka Stáhnout zobrazí symbol USB a po klepnutí se program nahraje rovnou do čipu.

Když tlačítko stisknete tentokrát, nestáhne se binární soubor s naším firmwarem do počítače, ale rovnou do paměti Micro:bitu. Jeho čip se poté opět automaticky restartuje a spustí se náš program. Jednodušší už to být nemůže.

Hromada začátečníků si vyláme zuby už jen na tom, že nedokáže nainstalovat a nastavit některé z obludných integrovaných vývojových prostředí a prototypovací destičku zahodí ještě dříve, než napíše byť jedinou řádku kódu.

Právě proto je Micro:bit ideálním vstupním bodem, protože se touto složitou režií okolo nemusíte vůbec zabývat. Můžete začít ihned experimentovat, i kdybyste si na to vyhradili třeba jen půlhodinku času.

Ve webovém prostředí nemusíte programy skládat pouze z bloků, ale kdykoliv se můžete přepnout na Javascript a Python. Ukážeme si to v další kapitole.

Pokračování 4 / 7

Kdykoliv můžete přepnout na JS a Python

Blokové programování má přiblížit způsob a pravidla programování naprostým začátečníkům, kteří neznají žádný klasický programovací jazyk. Ten se přitom můžete naučit i v editoru MakeCode. V horní liště stačí kdykoliv přepnout z blokového prostředí na populární Javascript a Python, načež se zobrazí zápis našich bloků pomocí jejich objektů a funkcí.

9e591879-1ea5-4000-b665-b4d96edce59ec07dc091-6066-45b7-9600-3deb18cb8eee
Tentýž program v Javascriptu a Pythonu

Mimochodem, MicroPython na Micro:bitu je poměrně mocný, nabízí podporu pro všechny vestavěné senzory a jeho dokumentaci najdete zde. Primitivní krokoměr (s využitím vstavěného akcelerometru) v něm napíšete rychleji než v Arduinu.

Už víme, jak to všechno funguje, a tak si pojďme v další kapitole ukázat druhý program. Tentokrát budeme stupnici tónů přehrávat stále dokola.

Pokračování 5 / 7

Druhý program: přehrávej melodii stále dokola

Náš první program je opravdu velmi hloupý. Přehraje melodii jen jednou po startu. Je to vlastně analogie systémové funkce setup() ze světa Arduino, jejíž obsah se také zpracuje jen jednou po startu čipu.

V Arduinu se po dokončení funkce setup() automaticky spustí funkce loop(), jejíž obsah se opakuje stále dokola. V případě blokového programování v MakeCode nekonečnou smyčku vytvoříme jednoduše tak, že základní blok při startu nahradíme blokem opakuj stále.

eed74857-0e5d-42ad-97f3-75ea09280049
Tento základní blok opakuje vnořené bloky stále dokola

Když si nyní program spustíme v simulátoru, anebo jej rovnou nahrajeme do Micro:bitu, z reproduktoru se bude stále dokola až do zblbnutí ozývat stupnice tónů. Aby na nás nezačali bušit sousedé, pod blok přehraj melodii vložíme další klíčový základní blok čekej a nastavíme jeho parametr na 1000 ms.

2ea30db5-3778-4c5b-9089-3c2a10e23699
V nekonečné smyčce přehrajeme naši melodii a počkáme jednu sekundu

Když nyní program spustíme, přehraje se melodie, poté čip počká 1 sekundu a celá smyčka se zopakuje. Blok čekej je tedy analogií funkce delay(1000) ze světa Arduino, anebo time.sleep(1) ze světa Pythonu.

Jak vidno, postupným objevováním dalších a dalších bloků a logiky jejich vzájemného propojování se vlastně učíme univerzální podstatu programování a studium skutečných programovacích jazyků pak bude o to snazší a hlavně intuitivnější.

Podívejte se na videoukázku našeho druhého programu:

V další kapitole si vyzkoušíme třetí program, který do hry zapojí akcelerometr. Micro:bit přehraje stupnici tónů, pokud s ním zatřepeme.

Pokračování 6 / 7

Třetí program: při zatřepání zahraj melodii

Jak už jsme si řekli výše, na desce Micro:bitu je připájený kombinovaný trojosý akcelerometr a kompas od STMicroelectronics. MakeCode na něj samozřejmě pamatuje, takže nechybí podpora jak v blokovém prostředí, tak v Javascriptu a Pythonu.

Tentokrát se naše melodie nebude přehrávat po startu a nebude se přehrávat ani v nekonečné smyčce, ale spustí se, pokud Micro:bitem zatřepeme! To je už mnohem zajímavější, viďte?

0608cc54-ff60-4f82-9c6c-4c937fdac3d9
Tento základní blok se aktivuje v případě detekce pohybového gesta na akcelerometru

Nově tedy jako základ vybereme blok při zatřesení z kategorie Vstup. Blok má jako parametr výběr pohybového gesta ze surových dat akcelerometru, který měří pohybové zrychlení. Na výběr je výchozí zatřesení, ale také náhlý pohyb nahoru, dolů, náklon, pád a také míra aktuálního zrychlení.

Ještě podstatnější je to, že si vyzkoušíme další typ programování a to takové, které neprovádí nějaký kód stále dokola, ale zpracuje jej pouze v případě, že dojde k nějaké události – je tedy událostně-řízené.

98135449-f563-4d26-ba19-7af14ab73482
Když zatřepu Micro:bitem, přehraje se melodie

U pokročilejšího programování drobných čipů se k tomu často používají asynchronní přerušení. Jedná se o speciální logický obvod, který v případě aktivace řekne procesoru, ať okamžitě všeho nechá, zpracuje náš kód, no a hned poté se vrátí k předchozí práci, kterou si uložil do paměti.

Takovým přerušením – v anglické hantýrce interruptem – může být třeba náhlá změna hodnoty čidla (třeba detektoru pohybu), stisk klávesy na klávesnici, které musí počítač zpracovat s nejvyšší prioritou, událost hardwarového časovače, který potřebuje každých pár sekund něco provést aj.

Podívejte se na videoukázku našeho třetího programu:

V poslední kapitole si ukážeme, co je to v blokovém programování funkce. Použijeme ji k přehrání úvodní pasáže koledy Tichá noc. A také do hry zapojíme maticový displej!

Pokračování 7 / 7

Čtvrtý program: při zatřepání zahraj Tichou noc

MakeCode samozřejmě nabízí hromadu dalších bloků včetně tvorby proměnných, do kterých můžeme ukládat nejrůznější hodnoty, porovnávat je a podle toho provádět další kód. S rostoucím počtem bloků nicméně začne být program docela nepřehledný, a pak nastoupí vlastní funkce, další stavební prvek většiny programovacích jazyků.

Funkce může sloužit jako chlívek, do kterého umístíme bloky, a když je budeme chtít spustit, zavoláme rovnou tuto funkci.

a2fcc95d-be89-4d89-888e-dd2cc059cac8
Blok ukaž ikonu zobrazí na maticovém bloku jeden z předpřipravených obrázků

V posledním příkladu po zatřepání destičkou nepřehrajeme hloupoučkou stupnici, ale nejprve na maticovém displeji 25 rudých LED pomocí bloku ukaž ikonu zobrazíme symbol srdíčka a hned poté spustíme naši vlastní funkci hrajKoledu.

84c7625a-f83d-4bdb-9741-42f87af8bcf6
Vytvořili jsme si vlastní funkci, která obsahuje posloupnost 12 bloků hraj tón s úryvkem první sloky slavné koledy Tichá noc

Funkce hrajKoledu bude obsahovat posloupnost 12 vestavěných bloků hraj tón, které mají dva parametry. Tím prvním je konkrétní tón, který vybereme na maličkém virtuálním klavírku, anebo rovnou zapíšeme jeho číselnou frekvenci. Druhým parametrem bude doba ve formě hudebního taktu 1/16 až 4.

fd3c9ccf-7f84-4bda-89cd-adbf4bf64bb1
Blok hraj tón má dva parametry: název/frekvenci tónu a jeho dobu

Těchto 12 tónů, které se přehrají jeden po druhém, představuje úvodní melodii vánoční skladby Tichá noc. Odpusťte mi prosím případné nepřesnosti, ale jsem hudební analfabet, který hrál naposledy před třiceti lety jako špunt na tahací harmoniku a posledních pět let se bez valného úspěchu pokouší zabrnkat na svoji elektrickou kytaru Pink Floydy.

570f43a2-1020-4304-b30b-9103c3000d78
Celý blokový program s vlastní funkcí

Díky tomu, že jsme si schovali celou sekvenci tónů do bloku vlastní funkce, můžeme ji opět jako blok umístit kamkoliv do hlavního proudu programu pomocí bloku vykonej.

Jakmile řídící čip dohraje koledu, blokem zhasni displej smažeme symbol srdíčka a program bude opět čekat, dokud akcelerometr nezachytí otřes. Mimochodem, detekci otřesu bychom mohli použít i k počítání kroků. Nebude to sice úplně přesné ale nad Micro:bitem si snadno vytvoříte prototyp vlastního pedometru!

Podívejte se na videoukázku našeho čtvrtého programu:

Pokud se nenaučíte programovat díky Micro:bitu, tak už nijak

A to je celé. Dnes jsme si ukázali, jak začít s programováním na zelené louce, bez předchozí znalosti jakéhokoliv programovacího jazyka a bez potřeby instalace a konfigurace jakéhokoliv složitého integrovaného vývojového prostředí. Pokud nedokážete nainstalovat ani Arduino IDE, začněte právě s Micro:bitem.

Když postavíte svůj první blokový diagram, který bude fungovat a provádět přesně to, co chcete, můžete se zároveň v horním panelu podívat, jak by tentýž program vypadal v Javascriptu a Pythonu, ve kterých můžete klidně pokračovat dál, jakmile narazíte na jazykový strop bloků a budete chtít vytvořit něco mnohem složitějšího.

Zdrojový kód posledního programu v Javascriptu pro Micro:bit

function hrajKoledu () {
    music.playTone(784, music.beat(BeatFraction.Whole))
    music.playTone(880, music.beat(BeatFraction.Double))
    music.playTone(784, music.beat(BeatFraction.Whole))
    music.playTone(659, music.beat(BeatFraction.Double))
    music.playTone(784, music.beat(BeatFraction.Whole))
    music.playTone(880, music.beat(BeatFraction.Double))
    music.playTone(784, music.beat(BeatFraction.Whole))
    music.playTone(659, music.beat(BeatFraction.Double))
    music.playTone(587, music.beat(BeatFraction.Double))
    music.playTone(494, music.beat(BeatFraction.Double))
    music.playTone(523, music.beat(BeatFraction.Double))
    music.playTone(392, music.beat(BeatFraction.Double))
}

input.onGesture(Gesture.Shake, function () {
    basic.showIcon(IconNames.Heart)
    hrajKoledu()
    basic.clearScreen()
})

Zdrojový kód posledního programu v Pythonu pro Micro:bit

def hrajKoledu():
    music.play_tone(784, music.beat(BeatFraction.WHOLE))
    music.play_tone(880, music.beat(BeatFraction.DOUBLE))
    music.play_tone(784, music.beat(BeatFraction.WHOLE))
    music.play_tone(659, music.beat(BeatFraction.DOUBLE))
    music.play_tone(784, music.beat(BeatFraction.WHOLE))
    music.play_tone(880, music.beat(BeatFraction.DOUBLE))
    music.play_tone(784, music.beat(BeatFraction.WHOLE))
    music.play_tone(659, music.beat(BeatFraction.DOUBLE))
    music.play_tone(587, music.beat(BeatFraction.DOUBLE))
    music.play_tone(494, music.beat(BeatFraction.DOUBLE))
    music.play_tone(523, music.beat(BeatFraction.DOUBLE))
    music.play_tone(392, music.beat(BeatFraction.DOUBLE))

def on_gesture_shake():
    basic.show_icon(IconNames.HEART)
    hrajKoledu()
    basic.clear_screen()

input.on_gesture(Gesture.SHAKE, on_gesture_shake)

Blokové programování tedy rozhodně není jen pro děti. Ostatně, většina rodičů vám stejně řekne, že byť se dětem líbí pípající Micro:bit a srdíčka na jeho displeji, nakonec to stejně všechno naprogramovali jejich tatínkové a maminky.

Čtyři stovky leckoho odradí, ale vyplatí se to

Za nový Micro:bit dnes zaplatíte zhruba 400 korun. Není to málo a jistě mi už mnozí chcete namítnout, že nejlevnější čínské klony desek Arduino seženete na Aliexpressu doslova za pár desetikorun.

V případě Micro:bitu ale platíte vedle velmi dobrého továrního zpracování právě za to, že to celé prostě hned po připojení k PC funguje a můžete to dokonce skrze Bluetooth spárovat a programovat z mobilního telefonu.

Právě tato drobnost nakonec u zelenáčů rozhoduje o tom, jestli skutečně začnou, anebo to vzdají a deska za pár dolarů z AliExpressu skončí kdesi v krabici.

Téma: Programování pro děti

programovaniprodeti.jpgAlgoritmické myšlení, logické uvažování, dovednost analyzovat problém a najít jeho řešení… to se hodí už dnes a do budoucna budou tyto schopnosti čím dál důležitější. Zábavnou formou se k nim vyplatí vést i děti. Sledujeme pro vás dostupné nástroje, stavebnice, služby a postupy.

Doporučujeme speciál Computeru Programování pro děti. Za 99 Kč si ho můžete objednat online a během několika dnů vám dorazí do poštovní schránky.

Určitě si přečtěte

Články odjinud