Pohyb¶
Tvoj BBC micro:bit obsahuje akcelerometer, ktorý meria pohyb v troch smeroch:
- X - náklon zľava do prava.
- Y - náklon dopredu a dozadu.
- Z - pohyb hore a dole.
Pre každú os (smer) existuje metóda, ktorá vracia kladné alebo záporné číslo, predstavujúce počet mili-g. Ak je čítanie 0, zariadenie máš zarovnané pozdĺž konkrétnej osi.
Napríklad, takto si vyrobíš jednoduchú libelu, ktorá využíva get_x
na určenie, ako je naklonené zariadenie pozdĺž osi X:
from microbit import *
while True:
reading = accelerometer.get_x()
if reading > 20:
display.show("R")
elif reading < -20:
display.show("L")
else:
display.show("-")
Ak držíš zariadenie naplocho, alo by zobrazovať -
; no, ak ho potočíš doprava (right) alebo doľava (left), ukáže R alebo L.
Keďže chceme, aby zariadenie stále reagovalo na naše zmeny, použijeme nekonečný while
cyklus. Prvá vec, čo sa udeje vo vnútri tela cyklu, je meranie na osi X, ktorému tiež hovoríme čítanie
. Keďže akcelerometer je veľmi citlivý, upravil som program tak, aby rovina bola v rozsahu +/-20. Preto podmienky if
a elif
kontrolujú > 20
a < -20
. Výraz else
znamená, že ak je čítanie
medzi -20 a 20, potom ho poukladáme za vodorovné. Pre každú z týchto podmienok používame displej na zobrazenie vhodného písmena/znaku.
Okrem toho ešte existujú aj metódy get_y
pre os Y a get_z
pre os Z.
Ak si niekedy rozmýšľal(a), ako tvoj mobil vie, ako má otočiť obrázky na obrazovke, tak už vieš, že to robí akcelerometer rovnakým spôsobom, ako sme si práve ukázali. Rôzne herné konzoly tiež obsahujú akcelerometre, ktoré umožňujú ovládanie alebo pohyb v hrách.
Hudobné šialenstvo¶
Jedna z najlepších vlastností MicroPythonu na BBC micro:bite je, ako ľahko môžeš pospájať rôzne funkcie zariadenia dokopy. Premeňme ho, napríklad, na hudobný nástroj (alebo čosi také).
Pripoj reproduktor rovnako ako v hudobnom návode. Pomocou krokodíliek prepoj pin 0 a GND s kladným a záporným vstupom na reproduktore - nezáleží na tom, ktorý je napojený na ktorý.

Čo sa stane, ak prečítame hodnotu z akcelerometra a zahráme ju ako farbu tónu? Poďme to zistiť:
from microbit import *
import music
while True:
music.pitch(accelerometer.get_y(), 10)
Kľúčový riadok je na konci a je pozoruhodne jednoduchý. Vnorili sme čítanie z osi Y ako frekvenciu, ktorú použijeme v metóde music.pitch
. Zahráme ju len 10 milisekúnd, lebo chceme, aby sa tón rýchlo menil, keď sa micro:bit hýbe. Keďže zariadenie je v nekonečnom while
cykle, neustále reaguje na zmeny v meraniach na osi Y.
To je ono!
Pohýb zariadením dopredu a dozadu. Ak je čítanie na osi Y kladné, zmení sa farba tónu, ktorý hrá micro:bit.
Predstav si symfonický orchester takýchto zariadení. Dokážeš zahrať nejakú melódiu? Ako by si zlepšil(a) program, aby znel trochu ‚hudobnejšie‘?