App Inventor
1. App Inventor
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.
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()
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.
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()
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.
Vytváranie vlastnej melódie.
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)
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.
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.
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.
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:
import radio
while True:
radio.on()
radio.config(power=7, group=1)
radio.send("14")
radio.send("Ahoj, tu zariadenie A")
Druhé zariadenie:
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.
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