BBC micro:bit

Сайт: Virtuálna Univerzita Mateja Bela
Курс: BBC micro:bit (Python)
Книга: BBC micro:bit
Напечатано:: Guest user
Дата: пятница, 17 мая 2024, 14:22

1. Vývojové prostredia (IDE)


Mu editor

Editor hlavne pre začiatočníkov, veľmi vhodný na vytváranie programov pre BBC micro:bit. Práca v ňom je jednoduchá a intuitívna. Stiahnuť ho je možné na https://codewith.mu/

Mu editor horný panel

Všetko potrebné na prácu s týmto editorom nájdeme v hornom paneli. Mode nám ponúka na výber programovania pre určitý typ mikrokontroléra alebo čisto výber programovacieho jazyka. Tlačidlom New vytvoríme nový súbor s príponou .py. Load a Save je klasicky načítanie už existujúceho súboru, resp. jeho uloženie. Flash používame na spustenie nášho programu na doske BBC micro:bit. Files nám zobrazí súbory na doske. REPL je zaujímavá funkcia, ktorá nám dovoľuje písaním do konzoly priamo ovplyvňovať program. Plotter pracuje spolu s funkciou REPL. Zoom-in a Zoom-out približujú/odďaľujú editor. Stlačením Theme máme na výber medzi tromi farebnými prevedeniami editora - nočný, denný a mód s vysokým kontrastom. Veľmi užitočné tlačidlo je Check, ktoré skontroluje funkčnosť programu a zobrazí prípadné chyby alebo zbytočné medzery. Help - nápoveda. Tlačidlom Quit vypneme editor. 

Mode

Mu editor Módy

Prvým krokom je výber módu, v ktorom chceme pracovať. Pri zvolení Python 3, sa nám v hornom paneli objaví miesto "Flash" a "Files" - "Run" a "Debug".

Check

Mu editor check

Stlačenie Check a zobrazenie zbytočnosti v kóde - dva voľné riadky.

REPL

Mu editor REPL

V tomto prípade sme si dali zobraziť obrázok "Šťastnej tváre" na BBC micro:bit. V móde Python 3 funguje REPL rovnako. Počas používania REPL sa vypne funkcia Flash.


MakeCode

Online editor, ktorý je možné nájsť na https://makecode.microbit.org/#

Tento editor má možnosť programovať aj bez pripojenej dosky. Vytvorený program si môžeme jednoducho otestovať na virtuálnej doske, kde fungujú takmer všetky funkcie. Samozrejme pre plnohodnotné používanie je nutné využiť fyzický BBC micro:bit. Tento editor je najlepším na vytváranie projektov pomocou blokov. Obsahuje mnohé funkcie a možnosti spolu s prídavkami rôznych doplnkov – napríklad reproduktorov. Oproti písaniu kódu je táto možnosť samozrejme mierne obmedzená, keďže je nutné sa riadiť už vytvorenými blokmi kódu. Ak si používateľ obľúbi tento editor, môže bez problémov využívať aj možnosť vytvárania programu v jazykoch Javascript alebo Python. Je možné využiť aj možnosť prevedenia blokov na kód v týchto jazykoch.

Nový projekt

Vytvorenie nového projektu v MakeCode. Pomenujeme si ho podľa seba a stlačíme "Create". 

Beginning

Po vytvorení nového projektu sa nám zobrazí prostredie, v ktorom budeme pracovať. V ľavej časti obrazovky sa nachádza náš virtuálny BBC micro:bit. Tlačidlá pod ním nám slúžia na jeho spustenie, debug, prípadne zobrazenia na celú obrazovku. Doska je plne interaktívna - môžeme stláčať tlačidlá a piny. Ak v kóde použijeme napríklad obidve tlačidlá, zobrazí sa špeciálne A+B, aby bolo možné ho stlačiť. Tak isto to funguje s "potrasením" zariadenia alebo teplomerom (zobrazí sa virtuálny teplomer, ktorému môžeme nastavovať teplotu). 

Vpravo od zariadenia sa nachádza zoznam blokov, ktoré môžeme používať. V základných sa nachádza napríklad zobrazovanie textu, obrázkov ale aj vymazanie obrazovky. Vstup disponuje funkciami senzorov alebo tlačidiel. Ostatné hovoria sami za seba, v premenných si môžeme vytvárať vlastné premenné a máme možnosť im nastaviť hodnoty. V hornej časti obrazovky máme na výber medzi prácou s blokmi alebo programovanie v jazykoch JavaScript alebo Python. Program sa prevedie do týchto jazykov podľa svojich vlastných pravidiel. 

Block

Program vytvárame spájaním blokov, ktoré sú k dispozícii. Stačí ich jednoducho potiahnuť na plochu a ich tvar napovedá, kde môžu patriť. 

mBlock

Veľmi podobný editor ako MakeCode, tiež ponúka programovanie pomocou blokov a pokrýva široké spektrum iných zariadení okrem BBC micro:bit. Funguje ako online editor ale je možné si ho stiahnuť a nainštalovať. Nájdete ho na https://www.mblock.cc/en-us/download.

Mblock new file

Nový projekt si vytvoríme cez File-New a pomenujeme si ho podľa seba. 

micro

mblock microbit

V prvom kroku si musíme zvoliť zariadenie, s ktorým budeme pracovať - v našom prípade BBC micro:bit. 

programovanie

Rozhranie editora má rovnaké rozloženie ako v prípade MakeCode od Microsoftu. V ľavej časti máme na výber z blokov a tak isto do seba zapadajú tvarom. V pravej časti obrazovky máme možnosť prezerať si bloky v jazyku Python - táto časť je len na prezeranie, nie je možné do nej písať.

python

 Ak sa rozhodneme písať program v jazyku Python, je nutné prepnúť si editor pomocou tlačidla "Python" v pravej hornej časti obrazovky. Tu je plnohodnotný Python editor. 



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)





3. Dátové typy



Boolean

True a False
Premenným môžeme priradiť hodnoty True alebo False. V ukážke sme nastavili hodnotu premennej na True a zobrazili príslušný obrázok. 

while True:
    hodnota = True
    if hodnota:
        display.show(Image.HAPPY)  # splnená podmienka ak je hodnota True
    else:
        display.show(Image.SAD)
Ukážka: https://makecode.microbit.org/_fgHf3gbDV77a

Čísla
Prácu s číslami určite poznáme, v ukážke sme priradili premennej celé číslo (aktuálnu teplotu) a druhej premennej desatinné číslo (24/15). BBC micro:bit ich zobrazuje cez scroll

while True:
    celeCislo, desatinneCislo = 0
    celeCislo = temperature()
    display.scroll(celeCislo)
    desatinneCislo = 24 / 5
    display.scroll(desatinneCislo)
  Ukážka: https://makecode.microbit.org/_iJY10r5keDTV

Reťazce
Do reťazcov môžeme vkladať rôzne texty, mená, názvy. V ukážke sme do premennej vložili text a následne sme vyhľadali kľúčové slovo v tejto premennej. 


while True:
    retazec = "Sem mozeme vlozit aj prilis dlhy retazec"
    if "retazec" in retazec:
        display.scroll("Našla sa zhoda")
Ukážka: https://makecode.microbit.org/_hXKC92cdKc9K

4. Premenné



Do premenných ukladáme rôzne hodnoty, podľa našich potrieb. Môžu to byť reťazce, čísla, zoznamy. V ukážke sme vytvorili tri premenné - v prvej je uložený vlastný obrázok, čo je v podstate zoznam. Druhá premenná obsahuje reťazec a tretia je nastavená na hodnotu True. Viac hodnôt sme do premenných vkladali v ostatných kapitolách.

while True:
    premenna1 = ("90000:09909:00000:90090:90909")
    display.show(premenna1)
    sleep(1000)
    display.clear()
    
    premenna2 = "Text"
    display.scroll(premenna2)
    sleep(1000)
    display.clear()
    
    premenna3 = True
    if premenna3:
        display.show("Hello!")

Ukážka: https://makecode.microbit.org/_JLChqr764dDi



5. Operácie


Podmienky - If, elif a else

V ukážke sme vytvorili jednoduché použitie podmienok if, elif a else

from microbit import *
import music
while True:
    cislo = 0
    if button_a.is_pressed():
        cislo = 14
        display.show(cislo)
    elif button_b.is_pressed():
        music.play(music.DADADADUM)
    elif accelerometer.current_gesture() == "shake":
        display.show(Image.STICKFIGURE)
    else:
        display.scroll(" " + str((temperature())))
Ukážka: https://makecode.microbit.org/_KLrEVKYLrJbK


Porovnanie

Porovnávať môžeme rôzne hodnoty ale navzájom musia byť rovnakého typu. To znamená, že nie je možné porovnať číslo s reťazcom. V ukážke je porovnávaná dĺžka dvoch zoznamov. Rovnakým spôsobom je možné porovnávať čísla alebo iné premenné. 

from microbit import *
zoznam1 = ["Procesor", "Grafická karta", "Základná doska"]
zoznam2 = ["Procesor", "Grafická karta", "Základná doska", "RAM", "Pevný disk"]

if len(zoznam1) > len(zoznam2):
display.scroll("Prvy zoznam je dlhsi")
elif len(zoznam1) < len(zoznam2):
display.scroll("Druhy zoznam je dlhsi")
elif len(zoznam1) == len(zoznam2):
display.scroll("Zoznamy su rovnako dlhe")


Ukážka: https://makecode.microbit.org/_CY1AuFJzhMcM


And, or

Logická operácia AND sa používa ak chceme aby boli dve alebo viac podmienok splnených súčasne. OR (alebo) ako už z názvu vyplýva, dáva väčšiu slobodu a splnená podmienka môže byť napríklad len jedna. 


from microbit import *
while True:
    gesto = accelerometer.current_gesture()
    if button_a.was_pressed() and gesto == "left":
        display.scroll("  A")
    elif button_b.was_pressed() or gesto == "shake":
        display.scroll("  B")

Ukážka: https://makecode.microbit.org/_ibrMt5bpAc1r


6. Cykly


Pre cykly/iterácie, prechádzanie cez rôzne dátové štruktúry (zoznam, string, čísla) využívame for. V priloženom projekte je for použité v úvode programu, kedy sa 2x zobrazí obrázok a text "A B". Tento cyklus sa bude opakovať 2x, po ktorom bude nasledovať obrázok na konci funkcie. While použijeme ak chcem nastaviť určitú funkciu pri držaní tlačidla. V tomto prípade pri držaní tlačidla A, sa nám zobrazí "krava". Tu sme použili continue, čo nám zabezpečí trvanie obrázka pri držaní tlačidla. V druhom prípade, pri stlačení tlačidla B, sa nám zobrazí štvorec, ale aj napriek dlhšiemu stlačeniu, zmizne kvôli break


from microbit import *
while True:
    for index in range(2):
        display.show(Image.ASLEEP)
        display.scroll(" A B")
        sleep(200)
        while button_a.is_pressed():
            display.show(Image.COW)
            continue
        while button_b.is_pressed():
            display.show(Image.SQUARE)
            break
    for index2 in range(4):
        display.show(Image.NO)

Ukážka: https://makecode.microbit.org/_beh420Cidboo


7. Polia



V jazyku Python sa polia nenachádzajú, používame miesto nich zoznamy. Sú to premenné, ktoré môžu obsahovať hneď niekoľko hodnôt. 

Syntax: zoznam = ["Jablko", "Kiwi", "Mango",  "Olivy", "Mlieko", "Mrkva", "Zeler"]

Poľami môžeme jednoducho prechádzať a pristupovať ku ktorejkoľvek hodnote. Napríklad ak chceme vypísať položku "Mango", bude sa nachádzať na pozícii zoznam[2].

V priloženom projekte sme vytvorili jednoduchú ukážku práce s poliami. V prvom kroku bol vytvorený nákupný zoznam so 7 položkami, pri stlačení tlačidla A sa nám zobrazí tento počet položiek. Stlačením tlačidla B sa nám zobrazí posledná položka tohoto zoznamu. Dotykom pinu P0 sa tento zoznam otočí a zobrazí sa prvá položka. Pri pine P1 odstránime poslednú položku zoznamu a zobrazíme aktuálne poslednú. 


from microbit import *
while True:
    zoznam = ["Jablko", "Kiwi", "Mango", "Olivy", "Mlieko", "Mrkva", "Zeler"]
    if button_a.is_pressed():
        display.scroll(" " + str((len(zoznam))))
    elif button_b.is_pressed():
        display.scroll(" " + zoznam.pop())
    elif pin0.is_touched():
        zoznam.reversed()
        display.scroll(" " + zoznam.pop(0))
    elif pin1.is_touched():
        zoznam.pop()
        display.scroll(" " + zoznam.pop())
    else:
        display.clear()

Ukážka: https://makecode.microbit.org/_dJr8R4FTvXpq

8. Funkcie



Funkciami si môžeme rozdeliť svoj kód na menšie bloky, ktoré sa budú vykonávať keď ich zavoláme. Uľahčujú nám prácu pri vytváraní programu, keďže pri opakujúcich sa činnostiach, stačí funkciu vytvoriť raz a použiť ju napríklad s inými premennými.

Syntax: 

def funkcia(a, b, c):
    c = a ** 2 + b ** 2
    print(c)
funkcia(8, 7, 0) # Volanie funkcie s parametrami a = 8, b = 7, c = 0

 V ukážke sme použili jednoduchú funkciu delenia premenných. P0 je zvyšovanie premennej o 1P1 zvyšuje premennú b o 1 a P2 vyberá náhodné číslo od 0 do 99 pre tieto premenné. Tlačidlami A a B si zobrazíme hodnoty týchto premenných a stlačením A+B zavoláme našu funkciu, ktorá premenné vydelí a zobrazí výsledok. 


from microbit import *
import random
while True:
    a, b, c = 0
    
    def delenie():
        c == a / b
    
    if button_a.was_pressed():
        display.show(a)
    elif button_b.was_pressed():
        display.show(b)
    elif button_a.was_pressed() and button_b.was_pressed():
        delenie()
        display.show(c)
    elif pin0.is_touched():
        a += 1
    elif pin1.is_touched():
        b += 1
    elif pin2.is_touched():
        a == random.randint(99)
        b == random.randint(99)

Ukážka: https://makecode.microbit.org/_20FCRafuqL5j


9. Využitie súčastí BBC micro:bit



Displej

V ukážke editora MakeCode sme vytvorili niekoľko možností zobrazovania obrázkov, textu a čísel. Za každým z príkladov je nastavené pozastavenie 1000ms (1 sekunda). Obyčajne sa v jazyku MicroPython využije funkcia display.show() ak je zobrazovaný text do 5x5 pixelov. Ak je dlhší, využije sa display.scroll(). V editore MakeCode je možné si vybrať spomedzi niekoľkých vstavaných obrázkov, čo urýchľuje prácu s programom. Užitočnou funkciou je vymazanie obrazovky, čo sa hodí ak už nechceme zobrazovať určitú informáciu. 


from microbit import *
while True:
    display.show("48")
    sleep(1000)
    display.show("00005:05050:00555:00500:55555")
    sleep(1000)
    display.show(Image.MEH)
    sleep(1000)
    display.scroll("Dlhy retazec")
    sleep(1000)
    display.clear()
  Ukážka: https://makecode.microbit.org/_MM3gK5HeWgAb


Tlačidlá

Tlačidlá sú vstupné zariadenia s niekoľkými funkciami. Môžeme ich stlačiť alebo držať stlačené. V ukážke sme použili časť predošlého príkladu. Využili sme tlačidlá A a B na zobrazenie čísla a nami vytvoreného obrázka.

from microbit import *
while True:
    if button_a.was_pressed():
        display.show("48")
        sleep(1000)
        display.clear()
    elif button_b.was_pressed():
        display.show("00066:00060:66666:00600:66666")
        sleep(1000)
        display.clear()
Ukážka: https://makecode.microbit.org/_X8whhA7i1DPq 


Hudba

K počúvaniu hudby je nutné disponovať reproduktormi, ktoré sa pripoja na Pin0 a GND. V editore MakeCode toto nutné nie je. Máme možnosť vytvárať si vlastné melódie, púšťať rôzne tóniny alebo použiť už vopred vytvorené skladby. V ukážke sme stlačením tlačidla A spustili vstavanú melódiu. Stlačením tlačidla B bol spustený jeden tón a následne nami vytvorená krátka melódia.

Melody

Vytváranie vlastnej melódie.

from microbit import *
import music
while True:
    melodia = ["C5", "F", "A", "C5", "F", "B", "C", "C"]
    if button_a.was_pressed():
        music.play(music.ODE)
    elif button_b.was_pressed():
        music.play(["G4:1"])
        music.play(melodia)
  Ukážka: https://makecode.microbit.org/_K8EXs4d1e2ph


Matematické operácie 

V práci s BBC micro:bit môžeme použiť ktorékoľvek matematické úkony pomocou importovania knižnice math. V ukážke sa nachádzajú niektoré matematické úkony - sčítanie (takýmto spôsobom fungujú aj ostatné - odčítanie, delenie, násobenie). Samozrejmosťou je zaokrúhľovanie čísel aj pri delení, odmocniny, výber náhodného čísla z určitého rozmedzia. 

from microbit import *
import random
while True:
    stranaA = 81
    stranaB = 4
    stranaC = 0
    if button_a.was_pressed():
        stranaC == stranaA / stranaB
    elif button_b.was_pressed():
        stranaC == stranaA * stranaB
    elif accelerometer.current_gesture() == "shake":
        stranaC == random.randint(stranaA, stranaB)
    display.show(round(stranaC))

Ukážka: https://makecode.microbit.org/_iM7X54PwAdMd


Senzory

Kompas

Kompas je nutné v praktickej práci s BBC micro:bit kalibrovať pomocou funkcie compass.calibrate(). Smerovanie kompasu udávajú čísla od 0 do 359, kde 0 je sever. V ukážke sme vytvorili jednoduchý kompas ukazujúci svetové strany podľa smerovania dosky. Prvým krokom bola síce kalibrácia ale v tomto prípade to nutné nebolo. Dôležité bolo vytvorenie premenných (východ, západ, sever, juh) a nastavenie ich rozmedzia. V ďalšom kroku stačilo vytvoriť podmienky a zobraziť šípku svetovej strany. 

from microbit import *
compass.calibrate()
while True:
    if compass.heading() >= 350 and compass.heading() <= 10:
        display.show(Image.ARROW_N)
        sleep(1000)
        display.clear()
    elif compass.heading() >= 80 and compass.heading() <= 100:
        display.show(Image.ARROW_E)
        sleep(1000)
        display.clear()
    elif compass.heading() >= 170 and compass.heading() <= 190:
        display.show(Image.ARROW_S)
        sleep(1000)
        display.clear()
    elif compass.heading() >= 260 and compass.heading() <= 280:
        display.show(Image.ARROW_W)
        sleep(1000)
        display.clear()

Ukážka: https://makecode.microbit.org/_KMLco0EToJ7w

Teplomer

Teplomerom meriame aktuálnu teplotu okolo BBC micro:bitu. Existuje len jedna funkcia v jazyku MicroPython - temperature(). V ukážke sme zobrazili aktuálnu teplotu. 

from microbit import *
while True:
    display.show(temperature(), loop=True)

Ukážka: https://makecode.microbit.org/_Ve7Jhhgxj0HC

Rádio

Rádio umožňuje komunikáciu medzi zariadeniami. V ukážke sme vytvorili odoslanie čísla a reťazca zo zariadenia na druhé. Po prijatí čísla aj správy, sa zobrazí fajka, respektíve text "Správa bola prijatá".

Prvé zaradenie:

from microbit import *
import radio
while True:
    radio.on()
    radio.config(power=7, group=1)
    radio.send("14")
    radio.send("Ahoj, tu zariadenie A")

Druhé zariadenie: 

from microbit import *
import radio
while True:
    radio.on()
    radio.config(power=7, group=1)
    sprava = radio.receive()
    if sprava.isdigit():
        display.show(Image.YES)
    elif isinstance(sprava, str):
        display.show("Sprava prijata:" + sprava)

Ukážka: https://makecode.microbit.org/_2KqViCgFRhDH

Akcelerometer 

Akcelerometrom môžeme merať rôzne hodnoty - sklon dosky, smerovanie, rýchlosť pádu alebo aj silu gravitácie. Môžeme ho používať aj ako vstupné zariadenie, ktoré bude detekovať napríklad potrasenie zariadenia. V ukážke sme vytvorili zobrazovanie rôznych obrázkov podľa pohybu zariadenia - potrasenie, sklon.

from microbit import *
while True:
    gesto = accelerometer.current_gesture()
    if gesto == "shake":
        display.show(Image.ANGRY)
        display.clear()
    elif gesto == "down":
        display.show(Image.NO)
        display.clear()
    elif gesto == "left":
        display.show(Image.GHOST)
        display.clear()
    elif gesto == "right":
        display.show(Image.SWORD)
        display.clear()

Ukážka: https://makecode.microbit.org/_a41gm6UJFKw9