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ý.

../_images/pin0-gnd.png

Č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‘?