2. BBC micro:bit


Vznik projektu

Presný názov tohto mikrokontrolera je BBC micro:bit. Názov vznikol podľa spoločnosti, ktorá projekt BBC micro:bit zastrešovala - Britskej vysielacej spoločnosti, ktorá tejto projekt začala. Pôvodne mal tento projekt poskytnúť jednoduchú platformu na výučbu programovania pre deti. Hlavnou myšlienkou bolo uvedomenie mladších ročníkov, že programovanie môže byť používané aj na kontrolovanie elektroniky a nielen zobrazovania určitých obrázkov na obrazovky. Ako súčasť tejto iniciatívy, bolo v roku 2016 rozdaných približne milión kusov BBC micro:bitu zdarma pre všetky 11 až 12 ročné deti vo Veľkej Británii. Od toho momentu bol projekt prevzatý Microbit vzdelávacou nadáciou MEF. Táto nezisková organizácia šíri používanie BBC micro:bitu vzdelávacím komunitám po celom svete a samozrejme ho učinili dostupným aj pre voľnočasových fanúšikov elektroniky. (Zdroj: Programming the BBC micro:bit, Getting Started with MicroPython, 2018)

BBC micro:bit je malá otvorená obvodová doska s displejom tvoreným 25 LED diódami, dvomi tlačidlami, senzormi. procesorom, 18 vstupno-výstupnými pinmi. Samozrejme jeho súčasťou je micro-USB port na pripojenie k počítaču, aby bolo možné nahrávať vlastný program jednoducho. Miesto počítača môžeme využiť batérie na fungovanie ak sa už program na BBC micro:bite nachádza.


Displej

Displej je tvorený 25 červenými LED diódami v mriežke 5x5. Každá z nich je programovateľná a má 9 úrovní jasu (0-vypnutá, 9-najvyšší jas). Zobrazujú sa na ňom napríklad vytvorené programy, ale hlavne aj chybové hlášky ak náš program nefunguje. 

Displej


Najjednoduchšou funkciou displeja v jazyku Micropython je display.show(), čo spôsobí zobrazenie nami určenej informácie do veľkosti 5x5 diód. Výhodnou funkciou displeja je aj scroll zavolaním funkcie display.scroll(). Vďaka tejto funkcii sa môžu zobrazovať informácie o výške do 5 diód a nami určenej šírke. Informácia sa postupne zobrazí s pohybom vpravo. Micropython obsahuje mnoho vstavaných obrázkov – napríklad Image.HAPPY. Samozrejme si môžeme vytvárať vlastné obrázky uložením zoznamu do premennej. Musí obsahovať 5 riadkov po 5 čísel od 0 do 9 podľa želaného jasu diód.

Tlačidlá

Na rozdiel od displeja, tlačidlá fungujú ako vstupné zariadenia. Nachádzajú sa tu dve hlavné, s označením A a B. Pomocou nich a existujúcich funkcií, je možné jednoducho ovládať rôzne činnosti BBC micro:bitu. Pre snímanie stlačenia tlačidiel používame funkcie button_a.is_pressed(), respektíve button_b.is_pressed(). Pri stlačení, sa vrátia do pôvodnej pozície. To znamená, že ak program vyžaduje podržanie tlačidla A, musíme ho držať. Po týchto dvoch tlačidlách nájdeme tretie – Reset. Po stlačení sa preruší aktuálne bežiaci program a spustí ho znova od začiatku. S tlačidlami používam aj ďalšie funkcie – get_pressed() was_pressed(). Rozdielom medzi nimi je, že v prípade is_pressed() je návratová hodnota True v prípade, že je tlačidlo stlačené v momente volania tejto metódy. was_pressed() je True ak bolo tlačidlo stlačené niekedy počas chodu programu. get_pressed() je počítadlo stlačení od každého zavolania tejto metódy. Všetky tieto funkcie majú návratovú hodnotu True alebo False.


Senzory

Akcelerometer

Akcelerometer


Akcelerometer sa nachádza na doske pod kompasom. Meria relatívnu akceleráciu v troch osách – X, Y a Z. Tento šikovný nástroj používaný v rôznych elektronických zariadeniach, nám okrem iného dáva informácie o sklone nášho zariadenia. Okrem vracania rôznych hodnôt, sa používa na určovanie pohybu – gest. Dokáže detekovať smerovanie microbitu nahor, nadol, vľavo a vpravo. Tieto pohyby sú najjednoduchšou interakciou s programom, pri ktorých nie je nutné stlačiť žiadne tlačidlo alebo pin. Akcelerometer dokáže dokonca detekovať pozíciu microbitu pomocou gravitácie ťahajúcej microbit k zemi. BBC micro:bit obsahuje 11 rôznych gest (up, down, left, right, face up, face down, freefall, 3g, 6g, 8g a shake), ktoré má uložené ako reťazce.

Funkcie používané v spojitosti s akcelerometrom sú accelerometer.get_x(), accelerometer.get_y() a accelerometer.get_z(). Tieto tri základné funkcie nám udávajú smerovanie microbitu v osách x, y, respektíve z. Je dôležité zobrazovať tieto hodnoty ako reťazce, keďže microbit dokáže pomocou funkcie display.show() zobraziť len reťazce. Hodnoty všetkých dokážeme zistiť pomocou funkcie accelerometer.get_values(). Hodnoty sú udávané v mGal. Ďalšou použiteľnou funkciou je accelerometer.current_gesture(), ktorá má za úlohu vypísať názov momentálneho gesta. Samozrejmosťou je detekcia konkrétneho gesta funkciami is_gesture(), was_gesture(), get_gestures(). Is_gesture() nám dáva vedieť, aké gesto je práve v tejto chvíli vykonávané. was_gesture() nám pre zmenu udáva, aké gesto bolo použité v minulosti počas chodu nášho programu.

Rádio

Rádio


Používa sa na komunikáciu s inými BBC micro:bitmi, prípadne inými zariadeniami. Dokáže prijímať aj odosielať rôzne informácie. Nutnosťou je v kóde importovať knižnicu radio, následne metódu rádia zavolať radio.on(). Správy sa posielajú pomocou radio.send(správa) a prijíma s radio.receive(). Správy môžu obsahovať až 250 znakov. Komunikáciu medzi dvomi nami zvolenými zariadeniami zabezpečíme pomocou určenia rovnakého kanálu komunikácie. Jednoduchou funkciou radio.config(channel=2). Číslo kanálu sa musí nachádzať v rozmedzí od 0 do 100. Odporúča sa nastaviť kanál v prípade, ak je v miestnosti viac zariadení. Ďalším nastavením rádia je sila dosahu. Tu sa škála pohybuje od 0 do 7. Ak máme dva BBC micro:bity vedľa seba, bude stačiť 0. Tieto nastavenia nie sú nutné ale je vhodné ich pre správne fungovanie a nadviazanie komunikácie, vhodné.

Teplomer

Teplomer


Súčasťou BBC micro:bitu je aj jednoduchý teplomer, ktorý nám zobrazuje teplotu okolo procesoru BBC micro:bitu v °C. Nachádza sa priamo na jednom z čipov, čo znamená, že pri používaní sa mierne zvýši teplota a preto nie je úplne presný. Jediná funkcia používaná v spojitosti s teplomerom je temperature().

Kompas

Kompas


Na microbite sa nachádza elektronický kompas, ktorý je ale nutné pred používaním kalibrovať, aby nám zobrazoval presné hodnoty. Toto vykonáme funkciou compass.calibrate(). Jednoduchou hrou zobrazovanou na displeji sa kompas správne nastaví a je pripravený na používanie. Správnu kalibráciu si môžeme overiť funkciou compass.is_calibrated(), prípadne ju úplne zmazať funkciou compass.clear_calibration(). Pravdepodobne najpoužívanejšou funkciou je compass.heading(), ktorá nám udáva smerovanie kompasu. Pri správnej kalibrácii, bude pri smerovaní hornej časti microbitu na sever zobrazovať hodnotu 0. Zobrazovanie smerovania používa hodnoty od 0 do 360. Pri používaní kompasu si musíme uvedomovať, že ako klasický kompas, aj tento je možné ovplyvniť zdrojom magnetickej sily – napríklad magnetom v blízkosti nášho microbitu. Trochu zložitejšími funkciami sú compass.get_x(), get_y() a get_z(). Tieto funkcie nám udávajú silu magnetického poľa v smeroch x, y a z. Súvisiacou funkciou je compass.get_field_strength(), ktorá nám vracia číslo rozsahu magnetického poľa okolo microbitu. Všetky štyri funkcie zobrazujú hodnoty v nT (nano tesla).

Piny

Piny na dotýkanie sú označené 0, 1 a 2. Je možné ich používať ako tlačidlá, reagujú ale na dotyk a nepotrebujú stlačenie. Samozrejme ako s ostatnými pinmi, je možné na ich pripojiť. 

Piny

Nachádzajú sa na spodnej časti dosky. Pri prvom pohľade na túto časť, si určite všimneme označenia 0, 1, 2, 3V a GND. Prvé tri piny sú hlavnými vstupno-výstupnými súčasťami, 3V a GND sú určené na napájanie, respektíve uzemnenie. K pinom pripájame rôzne kompatibilné rozšírenia, ako napríklad reproduktory. Zvyšné piny sa používajú rovnakým spôsobom ako hlavné. Čo sa týka dotykových pinov 0, 1 a 2, sú dodatkom k tlačidlám ak potrebujeme viac vstupných súčastí. (Zdroj: BBC micro:bit MicroPython documentation)