Fyzikální kabinet FyzKAB

Články Prostředí mBlock + modul Arduino Rozšíření pro mBlock a LASKKIT Arduino MAXI Starter kit

„Jen jedno“ rozšíření pro mBlock & LASKKIT Arduino MAXI Starter kit

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í:

  1. Nastavení pinů – nastavení pinů do režimu PULLUP a nastavení pinů A do režimu digitálního výstupu,
    piny

  2. I2C skener – rozšíření I2C skeneru, který zjistí adresu připojených I2C periférií (např. I2C displeje apod.),
    I2C skener

  3. LCD I2C displej – řízení LCD displeje s I2C řadičem,
    LCD

  4. Textové proměnné – rozšíření pro deklaraci textových proměnných,
    texty

  5. Pole proměnných – práce s poli proměnných (číselnými i textovými),
    pole

  6. Posuvný registr – práce s posuvným registrem,
    posuvny registr

  7. Čas/Datum – tato část umožňuje práci s časem modulu Arduino, též ovládání RTC modulu,
    cas, RTC

  8. DHT čidlo – ovládání měřicího modul teploty a vlhkosti,
    DHT

  9. Krokový motor – ovládání různých krokových motorů,
    krokovy motor

  10. Servo – ovládání serva pomocí pulzně modulovaného signálu,
    servo

  11. IR přijímač – bloky pro načítání dat z IR přijímače, vytvoření dálkového ovládání,
    IR cidlo

  12. RFID čtečka – řízení RFID modulu, načítání přístupových čipů a karet,
    RFID

  13. Klávesnice – práce s tlačítkovými maticemi 3×3, 3×4 a 4×4.
    klavesy

 

Ř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

Řízení LED tlačítkem - KOD
Řízení LED tlačítkem - FOTO

 

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:

Řízení LED tlačítkem - SCHEMA

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ě:

Řízení LED tlačítkem - KOD2
Řízení LED tlačítkem - FOTO2


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

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


Lekce 06 - I2C LCD displej

I2C LCD displej - KOD
I2C LCD displej - FOTO


Lekce 08 - Otřesové čidlo

 Otřesové čidlo - KOD
 Otřesové čidlo - FOTO


Lekce 14 – Voltmetr

Voltmetr - KOD
Voltmetr - FOTO


Lekce 16 - Senzor hladiny vody

Senzor hladiny vody - KOD
Senzor hladiny vody - FOTO


Lekce 17 - Teplotní čidlo LM-35

Teplotní čidlo LM-35 - KOD
Teplotní čidlo LM-35 - FOTO


Lekce 20 - 8×8 LED matice

8×8 LED matice - KOD 1
8×8 LED matice - KOD 1
8×8 LED matice - KOD 2


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

Řízení sedmisegmentového displeje s 74HC595 - KOD
Řízení sedmisegmentového displeje s 74HC595 - FOTO


Lekce 23 - Hodiny reálného času

Hodiny reálného času - KOD
Hodiny reálného času - FOTO


Lekce 24 - Senzor teploty a vlhkosti vzduchu DH11

Senzor teploty a vlhkosti - KOD
Senzor teploty a vlhkosti - FOTO


Lekce 26 - Krokový motor

Krokovy motor - KOD
Krokovy motor - FOTO


Lekce 27 - Servo

Servo - KOD
Servo - FOTO


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

Infracerveny-prijimac - KOD
Infracerveny-prijimac - KOD


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

RFID-vstupni-ochranny-system-getID - KOD

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

RFID-vstupni-ochranny-system-rfID - KOD
RFID-vstupni-ochranny-system-rfID - FOTO


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
návodu exp. sady
 
Standardní rozložení
kláves
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í!

Vstupni-ochranny-system-s-heslem - KOD
Vstupni-ochranny-system-s-heslem - FOTO

Autor článku, kódů a fotografií: RNDr. Miroslav Panoš, Ph.D.
UPOZORNĚNÍ:
Nesouhlasíme s vyřazením Newtonových zákonů, Ohmova zákona a zákona zachování energie z učiva fyziky základních škol v České republice!