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.
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
StopMagnetometerDataUpdates - zastavenie 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.