
Ovládanie zariadení s Micro:bitom pomocou mobilnej aplikácie
Populárna mikropočítačová doska BBC Micro:bit má dva režimy bezdrôtovej komunikácie. Buď môžete takto prepojiť viac zariadení Micro:bit medzi sebou, alebo môžete komunikovať cez bluetooth so smartfónom, prípadne tabletom a pomocou mobilnej aplikácie ovládať zariadenie riadené Micro:bitom. Micro:bit využíva komunikačný štandard Bluetooth Low Energy (BLE), takže na ovládanie môžete použiť zariadenie s verziou bluetooth 4.0 a vyššou, ktorá BLE podporuje.
Ak chcete komunikovať cez bluetooth a niečo ovládať zo smartfónu alebo tabletu, potrebujete ešte vhodnú mobilnú aplikáciu. Máte dve možnosti: využiť niektorú z univerzálnych aplikácií na komunikáciu s Micro:bitom, prípadne si naprogramovať vlastnú aplikáciu pre smartfón s Androidom, ktorá bude mať používateľské rozhranie prispôsobené zariadeniu, ktoré bude ovládať. Pretože komunikácia medzi smartfónom a Micro:bitom je obojsmerná, môžete nielen ovládať zariadenia s Micro:bitom, ale aj opačne, pomocou tejto mikropočítačovej dosky môžete ovládať niektoré funkcie smartfónu, napríklad fotoaparát, hlasitosť a podobne. Na takéto ovládanie sa najčastejšie využíva aplikácia micro:bit, ktorá bola vyvinutá firmou Samsung a je zadarmo k dispozícii v aplikačnom obchode Google Play. Pri párovaní s touto mobilnou aplikáciou treba na Micro:bite pripojenom k napájaniu stlačiť a držať obidve tlačidlá A aj B a následne stlačiť na doske tlačidlo Reset. Na maticovom displeji dosky sa zobrazí obrazec, ktorý je potrebné zadať do androidovej aplikácie, čím potvrdíte párovanie aplikácie s konkrétnou doskou. Po úspešnom spárovaní tlačidlom Reset prepnete mikropočítačovú dosku z párovacieho do normálneho režimu. Následne môžete využiť aplikáciu na ovládanie Micro:bitu. Vyskúšajte niektorý z príkladov. Program pre mikropočítačovú dosku môžete zaviesť priamo z mobilnej aplikácie. Mimochodom, párovanie s Micro:bitom sa vám možno nepodarí na prvýkrát a budete to musieť zopakovať.
Povely pre bluetooth komunikáciu
Komunikáciu budete riešiť na dvoch vrstvách – fyzickej a logickej. Fyzická vrstva je vyriešená na úrovni knižníc, ktoré podporujú sériovú komunikáciu cez bezdrôtové rozhranie bluetooth, teda protokol RFCOMM (Radio Frequency Communication). Je to v podstate emulácia komunikácie cez sériové rozhranie RS-232.
Nás prioritne zaujíma ovládanie Micro:bitu z univerzálnej alebo vami vytvorenej aplikácie. Najskôr vysvetlíme princíp ovládania aplikovateľný na akékoľvek zariadenie, či už ide o robotickú konštrukciu, alebo komponent smart home a podobne, a v podstate aj na akúkoľvek mikrokontrolérovú dosku, ktorá podporuje komunikáciu cez bluetooth, napríklad ESP32, Arduino Nano 33 BLE, Arduino Nano RP2040 a podobne. Predpokladáme obojsmernú sériovú komunikáciu, pri ktorej budeme pre väčšiu prehľadnosť posielať znaky a textové reťazce. Samozrejme, mohli by ste posielať aj binárne dáta, ale textové povely oceníte pri ladení pomocou univerzálnej terminálovej aplikácie.
Povely pre UART komunikáciu cez bluetooth
Z mobilnej aplikácie sa budú do Micro:bitu posielať povely a naopak, Micro:bit bude aplikácii posielať údaje o svojom aktuálnom stave, napríklad o stlačení či uvoľnení tlačidla, prípadne sa budú posielať údaje zo zabudovaných alebo externých senzorov. Aby si mikropočítačová doska s aplikáciou rozumela, musíte vytvoriť vhodný komunikačný protokol. Najjednoduchší, veľmi často používaný systém využíva na strane aplikácie kombinácie jednoduchých povelov vo forme písmen abecedy a povelov s parametrom, kde komunikácia obsahuje abecedný znak, číselnú hodnotu a ukončovací znak, napríklad #. Riadiaca doska posiela aplikácii informácie v rovnakom tvare.
Párovanie s aplikáciou Microbit
Vysvetlíme to na jednoduchom príklade, v ktorom budeme na displeji zobrazovať alfanumerický znak a ovládať dve externe pripojené LED. Z Micro:bitu bude do aplikácie posielaná informácia o zatlačení niektorého z tlačidiel A a B a takisto nameraná teplota. K Micro:bitu máme pripojené dve LED. Na pin 0 červenú a na pin 1 zelenú. Červenú LED potrebujeme len rozsvietiť a zhasnúť a pri zelenej LED potrebujeme ovládať jej jas. V prvej fáze definujeme povely na vzájomnú komunikáciu:
Povely z aplikácie:
DX# zobrazenie znaku na displeji. D je povel, ktorý oznámi, že nasledujúci znak, v tomto prípade X, treba zobraziť na displeji; # je ukončovací znak. V tomto prípade, keďže chceme posielať a zobrazovať len jeden znak, by nebol potrebný, ale použijeme ho, čo keby sme v budúcnosti chceli zobraziť nie jeden, ale viac znakov. Micro:bit dokáže zobraziť textový reťazec posúvaním znakov.
R – prepnutie stavu červenej LED. Ak bola predtým vypnutá, rozsvieti sa a naopak. Prípadne ak to aplikačná logika vyžaduje, môžete definovať samostatné povely na zapnutie a vypnutie LED bez ohľadu na to, v akom stave bola predtým.
G128# – nastavenie úrovne jasu zelenej LED v rozsahu hodnôt 0 – 255. G v tomto príklade definuje port, na ktorom je pripojená zelená LED, 128 je hodnota jasu, ktorý treba nastaviť, a # je ukončovací znak. Reťazec číslic, ktoré reprezentujú číselnú hodnotu, totiž môže byť jednomiestny, dvojmiestny alebo viacmiestny.
Potvrdenie párovania pomocou obrazca
Povely z Micro:bitu do aplikácie
A – zatlačenie tlačidla A; ošetrenie zákmitov predpokladáme na úrovni aplikácie pre mikrokontrolér
B – zatlačenie tlačidla B
T20# – údaj nameranej teploty posielaný mobilnej aplikácii; T je typ parametra, 20 je hodnota a # je ukončovací znak
Teraz môžeme začať programovanie komunikácie, vytváranie povelov a ich interpretáciu. Najskôr odporúčame vytvoriť aplikáciu pre Micro:bit a odladiť komunikáciu pomocou vhodnej už hotovej aplikácie pre Android, napríklad Serial Bluetooth Terminal. Táto aplikácia funguje veľmi podobne ako monitor sériového portu. Zobrazuje prijaté údaje z mikrokontroléra a môžete pomocou nej zadávať príkazy. Na párovanie odporúčame využiť už spomínanú aplikáciu micro:bit od Samsungu, pomocou ktorej zistíte aj názov konkrétneho Micro:bitu. V aplikácii Serial Bluetooth Terminal je v ľavom hornom rohu obrazovky ikona tzv. hamburgerového menu (tri vodorovné čiarky). V menu vyberte položku Devices a tento názov by sa mal zobraziť v zozname spárovaných zariadení. Vyberte toto zariadenie a môžete začať komunikovať, teda posielať a prijímať správy.
Jednoduchá aplikácia na textovú komunikáciu
Po spárovaní s Micro:bitom budete v tejto terminálovej aplikácii vidieť povely odosielané z Micro:bitu a takisto môžete simulovať budúcu aplikáciu tým, že budete zadávať povely ručne. V editačnom riadku monitora sériového portu môžete zadávať povely, napríklad R na prepnutie stavu červenej LED a G128# na nastavenie jasu zelenej LED. Treba zadávať veľké písmená a zadanú hodnotu potvrdiť klávesom ENTER.
V pokračovaní ukážeme vývoj jednoduchej aplikácie na ovládanie zariadení. Zatiaľ môžete vyskúšať obojsmernú textovú komunikáciu cez bluetooth na jednoduchom príklade.
bluetooth.onBluetoothConnected(function () {
basic.showIcon(IconNames.SmallSquare)
})
bluetooth.onBluetoothDisconnected(function () {
basic.showIcon(IconNames.Square)
})
input.onButtonPressed(Button.A, function () {
bluetooth.uartWriteString("AHOJ")
})
bluetooth.onUartDataReceived(serial.delimiters(Delimiters.NewLine), function () {
basic.showIcon(IconNames.Heart)
})
bluetooth.startUartService()
basic.showString("NEXTECH")
basic.showIcon(IconNames.Square)
Po vytvorení projektu v online vývojovom prostredí makecode.microbit.org je potrebné v nastaveniach projektu vybrať režim párovania a pripojenia cez bluetooth. K dispozícii sú tri možnosti:
• No Pairing Required – môže sa pripojiť ktokoľvek; odporúčame na prvé pokusy
• JustWorks pairing – párovanie treba inicializovať; táto možnosť je nastavená implicitne
• Passkey pairing – pri párovaní treba zadať 6-ciferný číselný kód
Ako sa spomínalo v úvode, mikrokontrolér môže fungovať len v jednom z komunikačných režimov, takže pri inštalovaní rozširujúcich knižníc pre komunikáciu cez bluetooth sa zároveň odinštaluje knižnica Radio, ktorá podporuje vzájomnú komunikáciu viacerých zariadení Micro:bit. Po nainštalovaní knižnice pribudnú do vývojového prostredia dve záložky bluetooth na základné funkcie a pod ňou záložka označená „...viac“ na sériovú komunikáciu cez bezdrôtové rozhranie. V tejto záložke je aj funkcia umožňujúca nastaviť silu signálu.
Zobrazit Galériu