- UPOZORNĚNÍ:
- Na základě článku vznikly webové stránky Programování modulu Arduino v prostředí mBlock, kde najdete aktuální a rozšířené informace. Zájemcům doporučujeme navštívit!
O použití prostředí mBlock k blokovému programování modulu Arduino jsme na stránkách Fyzikální kabinet FyzKAB již několik příspěvků uvedli. Asi nejrozsáhlejší ukázkou byl článek „Programování v mBlock & LASKKIT Arduino MAXI Starter kit“, ve kterém jsme v prostředí mBlock vyřešili všech třicet jedna úkolů z návodů výukové sady LASKKIT Arduino MAXI Starter Kit. Dnes se k této sadě vrátíme ještě jednou. Ve výše uvedeném článku jsme narazili na několik komplikací v podobě potřeby využití rozšíření, která ne vždy odpovídala našim potřebám. Objevily se tu kupříkladu problémy s pevně přednastavenými rolemi pinů modulu Arduino, ale třeba i problémy s jinou jazykovou lokalizací zmíněných rozšíření (angličtina, turečtina, čínština…)
Abychom se vyhnuli naznačeným problémům, vytvořili jsme pro prostředí mBlock vlastní jednotné rozšíření nazvané „MAXI Starter Kit“, které pro přidání do Vašeho projektu umožní vytvoření všech úkolů experimentální sady, pro které bylo třeba využívat jednotlivých rozšíření třetích stran. Pro zájemce o možnost vytvoření vlastního rozšíření pro prostředí mBlock, doporučujeme články: „Ukázka tvorby vlastního rozšíření v Extension Builder pro mBlock“ a „Dokončení tvorby vlastního rozšíření v Extension Builder pro mBlock“.
Naše rozšíření lze nejen použít pro „splnění“ jednotlivých lekcí experimentální sady LASKKIT Arduino MAXI Starter kit, ale především použít i pro tvorbu svých vlastní projektů.
- UPOZORNĚNÍ:
- Pro použití rozšíření „MAXI Starter Kit“ platí jedno omezující pravidlo – rozšíření nelze v jednom projektu kombinovat s rozšířeními, která obsluhují stejné periférie, pro které je naše rozšíření určeno. Naříklad: Nelze do projektu přidat/použít jiné rozšíření pro LCD displej s řadičem I2C, servo, čidlo DHT… od jiného vývojáře. Hrozí zde při kompilaci konflikt stejných knihoven!
- Toto může nastat i v případě, kdy jsou tyto rozšíření jen společně přidána na liště rozšíření a přitom v programu jsou použity bloky jen jednoho z nich.
Tento problém se objevuje i při „míchání“ jiný rozšíření a plyne z obecného principu kompilace programu v prostředí mBlock.
Představujeme rozšíření MAXI Starter Kit (ver. 1.0.0)
Celé rozšíření je rozděleno do třinácti tematických celků, které se zobrazují na svislé liště rozšíření:
- Nastavení pinů – nastavení pinů do režimu PULLUP a nastavení pinů A do režimu digitálního výstupu,
- I2C skener – rozšíření I2C skeneru, který zjistí adresu připojených I2C periférií (např. I2C displeje apod.),
- LCD I2C displej – řízení LCD displeje s I2C řadičem,
- Textové proměnné – rozšíření pro deklaraci textových proměnných,
- Pole proměnných – práce s poli proměnných (číselnými i textovými),
- Posuvný registr – práce s posuvným registrem,
- Čas/Datum – tato část umožňuje práci s časem modulu Arduino, též ovládání RTC modulu,
- DHT čidlo – ovládání měřicího modul teploty a vlhkosti,
- Krokový motor – ovládání různých krokových motorů,
- Servo – ovládání serva pomocí pulzně modulovaného signálu,
- IR přijímač – bloky pro načítání dat z IR přijímače, vytvoření dálkového ovládání,
- RFID čtečka – řízení RFID modulu, načítání přístupových čipů a karet,
- Klávesnice – práce s tlačítkovými maticemi 3×3, 3×4 a 4×4.
Řešení úkolů z manuálu LASKKIT Arduino MAXI Starter kit s pomocí MAXI Starter Kit
Protože některé úkoly z manuálu experimentální sady LASKKIT Arduino MAXI Starter kit lze vytvořit pomocí standardního prostředí mBlock pro Arduino, jsou dále uvedeny jen úkoly, které vyžadovaly speciální rozšíření třetích stran. Nyní jsou však řešeny pomocí našeho rozšíření MAXI Starter Kit, které lze pod tímto názvem stáhnout v manažeru rozšíření přímo v prostředí mBlock nebo na stránce podpory našich rozšíření pro mBlock ⎘ (anglicky).
Následující text tedy obsahuje jen ukázku nově řešených kódů s pomocí naší knihovny. Funkční popis důležitých částí kódů, včetně principu celého kódu je popsán v článku „Programování v mBlock & LASKKIT Arduino MAXI Starter kit“, proto zde nebude znova uváděn.
Lekce 01 - Řízení LED tlačítkem


Naše rozšíření nyní dovoluje nastavit vstupní piny modulu Arduino do módu PULUP, což nám dovolí využít interního pullup-rezistoru v modulu Arduino. Díky tomu můžeme v zapojení vynechat externí rezistor 10 Ω a realizovat ho následjícím způsobem:

Kód (změna ve výrazu podmínky) i celé zapojení (oproti návodu sady LASKKIT Arduino MAXI Starter kit vynechán rezistor) pak bude vypadat následovně:


Lekce 05 - Používání skeneru sběrnicí I2C

Lekce 06 - I2C LCD displej


Lekce 08 - Otřesové čidlo


Lekce 10 - Sériový monitor

Lekce 14 – Voltmetr


Lekce 16 - Senzor hladiny vody


Lekce 17 - Teplotní čidlo LM-35


Lekce 20 - 8×8 LED matice



Lekce 22 - Řízení sedmisegmentového displeje s 74HC595


Lekce 23 - Hodiny reálného času


Lekce 24 - Senzor teploty a vlhkosti vzduchu DH11


Lekce 26 - Krokový motor


Lekce 27 - Servo


Lekce 29 - Infračervený přijímač


Lekce 30 - RFID vstupní ochranný systém-getID

Lekce 30 - RFID vstupní ochranný systém-rfID


Lekce 31 - Vstupní ochranný systém s heslem
Přestože bylo v úvodu zmíněno, že zde budou uvedeny jen zdrojové kódy bez popisu a případných komentářů, neboť ty byly již uvedeny v předešlém článku (odkaz viz nahoře), zde je třeba jednu věc zmínit. Jde o rozložení kláves na použité klávesnici. Dnes dostupné klávesnice 4×4, které lze považovat za standard, mají jinak rozložené klávesy, než je stanoveno v návodu experimentální sady LASKKIT Arduino MAXI Starter Kit. Srovnání obou rozložení kláves na klávesnici uvádí následující tabulka.
Rozložení kláves dle |
Standardní rozložení
| |||||||
---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 1 | 2 | 3 | A | |
5 | 6 | 7 | 8 | vs. | 4 | 5 | 6 | B |
9 | A | B | C | 7 | 8 | 9 | C | |
D | * | 0 | # | * | 0 | # | D |
Tab. č 1 – Srovnání rozložení kláves na 4×4 klávesnici
Jelikož na klávesnici v této sadě nejsou žádné popisky, je vlastně definice daných kláves plně v režii programátora. Z tohoto důvodu jsme se rozhodli nastavit výchozí rozložení dle standardu dnešních klávesnic (situace v pravé části tabulky). Pokud chceme dodržet rozložení podle návodu experimentální sady, umožňuje naše rozšíření jednotlivé klávesy předefinovat. Toto předefinování vidíme v kódu mezi blokem nastavení pinů klávesnice a samotnou inicializací klávesnice (červeně orámovaná část kódu). Pokud byste chtěli použít standardní rozložení jednotlivých kláves (viz pravá část tabulky), můžete tuto část kódu vynechat, neboť standardní rozložení je součástí inicializace klávesnice. Jen ještě zdůrazňuji, že se jedná o „předefinování“ kláves, které se odlišují od standardu, nikoliv o definici celého nového rozložení!


Autor článku, kódů a fotografií: RNDr. Miroslav Panoš, Ph.D.