App Inventor a BBC micro:bit

Site: Virtuálna Univerzita Mateja Bela
Course: BBC micro:bit (bloky)
Book: App Inventor a BBC micro:bit
Printed by: Guest user
Date: Monday, 20 May 2024, 9:50 AM

1. Prepojenie App Inventoru s BBC micro:bit



Na prepojenie BBC micro:bit s MIT AppInventor je nutné pridať rozšírenia na prácu s komponentmi zariadenia. Nachádzajú sa na http://iot.appinventor.mit.edu/#/microbit/microbitintro. Rozšírenia stiahneme a pridáme do editora. 

Pridanie rozšírení pre BBC micro:bit

Pridali sme možnosť pracovať s akcelerometrom, displejom, tlačidlami, magnetometrom a teplomerom. 

Súčasťou každej vytváranej aplikácie by malo byť pripojenie k zariadeniu pomocou bluetooth. Nutné je vloženie rozšírenia pre prácu s bluetooth, ktoré sa nachádza na http://iot.appinventor.mit.edu/#/bluetoothle/bluetoothleintro. V príkladoch sme využívali vytvorené možnosti skenovania/pripojenia a odpojenia zariadení. 


Zdroj: http://iot.appinventor.mit.edu/


Posledným krokom je vytvorenie a presunutie .hex súboru na BBC micro:bit, ktorý bude umožňovať pripojenie. 

Stiahnuť .hex súbor

2. Micro:bit LED

3. Micro:bit tlačidlá



ReadButtonAState/ReadButtonBState – číta momentálny stav tlačidla A/B


Stlačením tlačidiel pre zvolené tlačidlo A/B prijmeme informáciu o stave tlačidiel.


RequestButtonAStateUpdates/RequestButtonBStateUpdates – požiadavka na aktualizácie stavu tlačidla A/B

StopButtonAStateUpdates/StopButtonBStateUpdates – požiadavka na skončenie aktualizácií stavu tlačidla A/B


Tlačidlo "Štart aktualizácií stavu tlačidiel" spustí skenovanie ich stavu bez prerušenia. Po začatí sa stav aktualizovania informácií zobrazí. Pri stlačení tlačidla "Stop aktualizácií" sa zastavia. 


ButtonAStateReceived/ButtonBstateReceived – stav tlačidla môže byť 0 ak je nedotknuté, 1 ak je stlačené a 2 ak ho držíme


Pri prijatí informácie o stave tlačidiel sa spustia tieto metódy. Ak bolo stlačené tlačidlo, porovnáme prijatú hodnotu s číslom 0, 1 alebo 2. Pri stave 0 sa tlačidla nedotýkame, čiže sa nič nestane. Pri stave 1 bolo tlačidlo len stlačené a tento stav sa vypíše. Pri stave 2 je tlačidlo stlačené dlhšie a stav sa vypíše.



Zdrojový kód príkladu na Micro:bit Tlačidlá





4. Micro:bit accelerometer




RequestAccelerometerDataUpdates – požiadavka na upozornenia zmien akcelerometra

StopAccelerometerDataUpdates – zastavenie požiadaviek upozornení


Stlačením tlačidiel "Zapnúť/Vypnúť aktualizácie" zavoláme metódy .RequestAccelerometerDataUpdates, respektíve .StopAccelerometerDataUpdates. Tie spôsobia prijímanie aktualizácií dát z akcelerometra.


ReadAcelerometerPeriod – číta rýchlosť hlásení

AccelerometerPeriodReceived – (when) moment kedy sa získa interval hlásení


Kliknutím na tlačidlo spôsobíme zavolanie metódy .ReadAccelerometerPeriod a pri úspešnom prijatí dát o aktualizovaní sa zobrazia v poli.


ReadAccelerometerData – číta dáta z akcelerometra (súradnice X, Y, Z)

AccelerometerDataReceived – spúšťa akciu po získaní dát z akcelerometra (súradnice X, Y a Z)


Odoslanie požiadavky na čítanie dát z akcelerometra. Po ich úspešnom prijatí ich zobrazíme v zozname. Hodnoty pre súradnice X, Y a Z sú v jednotkách milliG (gravitačné preťaženie - v pokoji má zariadenie 1G, čo odpovedá 1000 milliG).


WriteAccelerometerPeriod – nastavenie rýchlosti hlásení akcelerometra v milisekundách

WroteAccelerometerPeriod – písanie intervalu hlásení akcelerometra


Metódou .WriteAccelerometerPeriod máme možnosť nastaviť periódu aktualizácií dát z akcelerometra zariadenia. Tu sú dostupné hodnoty 1, 2, 5, 10, 20, 80, 160 a 640 milisekúnd.



Zdrojový kód k príkladu Micro:bit Akcelerometer



5. Micro:bit magnetometer



RequestMagnetometerBearingUpdates žiadosť o hlásenia o zmenách smeru

StopMagnetometerBearingUpdates zastavenie hlásení o smerovaní 


Tlačidlami spustíme alebo vypneme aktualizovanie smerovania zariadenia.


RequestMagnetometerDataUpdates žiadosť o hlásenia o zmenách magnetometra

StopMagnetometerDataUpdateszastavenie hlásení o zmenách magnetometra 


Tlačidlami spustíme alebo vypneme aktualizácie dát z magnetometra zariadenia.


ReadMagnetometerBearing - číta smerovanie zariadenia

MagnetometerBearingReceived udalosť, ktorá sa spúšťa v prípade prijatia dát z BBC micro:bit


Stlačením tlačidla "Smerovanie" sa spustí metóda .ReadMagnetometerBearing, ktorá číta smerovanie zariadenia. Po úspešnom získaní dát ich vypíšeme do textového poľa. 


ReadMagnetometerData - číta len jednu hodnotu (smer)

MagnetometerDataReceived udalosť, ktorá sa spúšťa v prípade prijatia parametrov (X, Y, Z) z BBC micro:bit


Stlačením tlačidla "Získať dáta" sa spustí metóda .ReadMagnetometerData a následne po úspešnom získaní dát metóda .MagnetometerDataReceived, ktorou zapíšeme do polí príslušné hodnoty.


ReadMagnetometerPeriod - zobrazuje interval hlásení

MagnetometerPeriodReceived udalosť, ktorá sa spúšťa ak zariadenie odoslalo periódu magnetometra


Metódou .ReadMagnetometerPeriod získame informácie o perióde aktualizácií dát z magnetometra v milisekundách.


WriteMagnetometerPeriod - zmena frekvencie posielaní dát magnetometra 

WroteMagnetometerPeriod - udalosť, ktorá je spustená ak sme vyžiadali periódu magnetometra


Metódou .WriteMagnetometerPeriod nastavíme hodnotu periódy aktualizácií. Hodnoty môžu byť 1, 2, 5, 10, 20, 80, 160 a 640 milisekúnd.




Zdrojový kód k príkladu Micro:bit Magnetometer


6. Micro:bit teplomer



ReadTemperature - číta aktuálnu teplotu 

TemperatureReceived - udalosť, ktorá sa spúšťa pri prijatí hodnoty z teplomera


Stlačením tlačidla "Zobraz teplotu" sa nám zavolá metóda .ReadTemperature. Ak prijmeme s get temperature_value, aktuálnu teplotu, nastaví sa pole na túto hodnotu.


ReadTemperaturePeriod - číta intervaly hlásení zo senzora

TemperaturePeriodReceived - udalosť, ktorá sa spúšťa pri prijatí dát z teplomera (interval hlásení zo senzora)


Kliknutím na tlačidlo "Zobraziť periódu aktualizácií" sa zavolá metóda .ReadTemperaturePeriod a po prijatí dát sa nastaví pole pomocou get temperature_period_value na prijatú hodnotu.


WriteTemperaturePeriod - zmena frekvencie odosielaní teploty z BBC micro:bit

WroteTemperaturePeriod - zmena intervalu hlásení


Tlačidlom "Nastaviť periódu aktualizácií" sa zavolá metóda .WriteTemperaturePeriod a následne sa nastaví perióda aktualizácií teploty na nami určenú hodnotu.


RequestTemperatureUpdates - žiadosť o hlásení zmien teplomera

StopTemperatureUpdates - zastavenie hlásení zmien teplomera


Požiadavku na spustenie aktualizácií teploty spustíme pomocou metódy .RequestTemperatureUpdates a zastavíme ju cez .StopTemperatureUpdates. V tomto prípade sme zvolili jednoduchý prepínač, ktorý bude indikovať zapnutie/vypnutie skenovania.



Zdrojový kód k príkladu Micro:bit Teplomer


7. Micro:bit IO piny



ReadPinADConfiguration - číta stav konfigurácie pinov (analóg alebo digitál)

PinADConfigurationReceived - zoznam stavov analógových a digitálnych pinov


Po spustení metódy .ReadPinADConfiguration a úspešnom prijatí dát, zobrazíme zoznam analógových a digitálnych pinov.


ReadPinData - číta stav pinov

PinDataReceived - vypíše stav vstupných pinov


Metódou .ReadPinData získame dáta z pinov, ktoré sa zobrazujú ako zoznam.


ReadPinIOConfiguration - číta aktuálnu konfiguráciu vstupno-výstupných pinov

PinIOConfigurationReceived - udalosť, ktorá sa spustí po prečítaní konfigurácie I/O pinov 


Získanie konfigurácie pinov na základe požiadavky metódou .ReadPinIOConfiguration. Dáta sa nachádzajú v zozname, pre každý pin s označením 0 pre výstup, 1 pre vstup.


RequestPinDataUpdates - žiadosť o aktualizácie pinov, ktoré sú nakonfigurované ako vstupné

StopPinDataUpdates - zastavenie hlásení o aktualizácii stavu pinov


Odoslanie požiadaviek na spustenie a zastavenie prijímania aktualizácií dát pinov.


WritePWMControl - zapísanie riadiaceho poľa PWM

WrotePWMControl - kontrolné informácie na BBC micro:bit


Zapísanie kontrolných dát vo formáte zoznamu.


WritePinADConfiguration - zapíše konfiguráciu pinov

WrotePinADConfiguration - udalosť po úspešnom zápise konfigurácie 


Zapísanie konfigurácie pre všetkých 19 pinov metódou .WritePinADConfiguration a ich následné zobrazenie v zozname.


WritePinData - nastaví výstupné hodnoty pinov ak sú nastavené ako výstupné, zoznam 19 hodnôt

WrotePinData - udalosť, ktorá sa spustí po zapísaní výstupných pinov


Zapísanie hodnôt v zozname a ich zobrazenie.


WritePinIOConfiguration - konfigurácia pinov na vstupné a výstupné, 1 pre vstup, 0 pre výstup

WrotePinIOConfiguration - udalosť, ktorá sa spustí po aktualizácii konfigurácie I/O pinov


Zapísanie konfigurácie pinov na vstupné a výstupné v zozname a ich zobrazenie.