MENU 

Ukázka 1
Arduino zasílá zprávu Pandovi

První nejjednodušší příklad nám bude sloužit trochu jako Serial Monitor (sériový monitor). Modul Arduino bude v pravidelných intervalech (5 s) odesílat zprávu nazvanou jsemtu. Postavička Pandy, která bude zobrazena na panelu prostředí mBlock, pokud tuto zprávu zachytí, zobrazí hlášku „Někdo se nám ozval!“.

Z hlediska hardwarového zapojení zatím nemusíme nic „drátovat“. Modul Arduino bude pouze pomocí USB kabelu připojen k počítači, na kterém bude spuštěno prostředí mBlock. Protože potřebujeme synchronizovat dva programy, musíme vytvořit jak kód pro modul Arduino, tak pro postavičku Pandy v prostředí mBlock.

Začneme u modulu Arduino. Na levém panelu vybereme kartu „Zařízení“, kam případně přidáme modul Arduino (viz dříve). Na pracovní ploše vytvoříme následující program. (Pochopitelně pomocí rozšíření Upload Mode Broadcast – šedomodrý blok „poslat zprávu v režimu nahrávání“)

01-zakladni ukazka - Arduino

Dříve než tento program zkompilujeme a nahrajeme do modulu Arduino, přepneme na levém řídicím panelu na kartu „Postavičky“. Výchozí postavičkou by tam měl být Panda. Přepnutím na postavičku Pandy se nám vpravo objeví prázdný prostor pro nový blokový kód. Ten předchozí se nám neztratil! Ten patří modulu Arduino, proto se opět objeví, až přepneme zpět na kartu „Zařízení“.

Pro postavičku Pandy vytvoříme na jeho programové ploše následující kód:

01-zakladni ukazka - Panda

Celý program (tj. pro Arduino i Pandu) lze stáhnout z:
http://mBlock.fyzika.net/zdrojove-kody/interakce/01-zakladni-ukazka.mblock.

ikona vysvetleni Vysvětlení kódu

Kód pro modul Arduino je vcelku jasný. Po spuštění modulu se uvnitř nekonečné smyčky nejdříve vyčká 5 sekund, pak je odeslána zpráva nazvaná jsemtu. Pak se smyčka opakuje, tedy čeká se 5 s a opět se odešle zpráva. To je vše.

V případě kódu pro postavičku Panda jde trochu o jinou techniku programování – o tzv. zpracování události. Nejde o tradiční program, který běží v nějaké smyčce, ale jedná se o proceduru, která se spustí až v okamžiku, když nastane daná událost. V tomto případě v okamžiku je touto událostí přijetí zprávu jménem jsemtu. Pak se v komiksové bublině u hlavy Pandy zobrazí na dobu dvou sekund hláška „Někdo se nám ozval!“

Teoreticky by ještě mohla postavička Panda vykonávat zcela jiný úkol definovaný nějakou hlavní částí programu (pobíhat po scéně, reagovat na stisknutí kláves…), ale jakmile dojde k přijetí zprávy, jejíž příjem je takto asynchronně ošetřen, Panda vypíše zadanou hlášku. Kód hlavního programu (pokud by tu nějaký byl) poběží dále, tedy na zadané dvě vteřiny se nezastaví!

Upozornění:
Pro bezproblémový běh takto koncipovaného programu je potřeba ještě upozornit na jednu důležitou věc. Program po kompilaci a nahrání do modulu Arduino bude fungovat tak, jak předpokládáme, jen pokud budeme v prostředí mBlock přepnuto na kartě „Zařízení“.
Jakmile se na levém panelu přepneme na kartu „Postavičky“ nebo „Pozadí“, program v prostředí mBlock se zastaví a požadavky zaslané modulem Arduino nebudou zpracovávány.

Následující obrázek ukazuje situaci po spuštění kódu. Hlavní scéna s postavičkou Pandy je pro názornost zvětšena přepnutím do většího zobrazení. Celkové rozložení hlavního panelu v prostředí mBlock lze částečně měnit pomocí ikon pod oknem postavičky (tzv. scénou). Kromě ikony ikona fullscreen pro úplnou maximalizaci scény, tedy nastavené scény na celou obrazovku, jsou zde i dvě ikony pro různé rozložení pracovní plochy.

Jelikož jsme v předchozích kapitolách scénu vůbec nevyužívali, skoro by se dalo říci, že nám až překážela, asi ji budeme mít ve výchozí minimální podobě. Pro naše další pokusy, kdy budeme se scénou pracovat, bude tedy lepší rozložení pracovní plochy nastavit do podoby s větší scénou pomocí ikony ikona vetsi scena.

uvodni priklad