Skip to content

Aktivnost

Libela

Srednji | MakeCode, Python | LED zaslon, Mjerač ubrzanja, Zvuk | Booleova logika, Odabir, Relacijski operatori, Senzori

1. korak: Napravi

Što je to?

Izradite alat kako biste osigurali slike, police ili radne površine. Novi micro:bit ima ugrađen zvučnik, a to znači da svojoj libeli možete dodati zvuk.

Uvod

Vodič za kodiranje

Što ćeš naučiti

  • Kako koristiti senzor brzinomjera za mjerenje kutova
  • Što su to 'nagib' i 'zaokret'
  • Kako kombinirati očitanja senzora iz dviju dimenzija za utvrđivanje vodoravnog položaja

Kako to radi

slika micro:bita u nagibu i zaokretu
  • Micro:bitov brzinomjer može izmjeriti kutove naginjanja u dva smjera: prema gore i prema dolje (nagib) te s jedne strane na drugu (zaokret). To se u ovom projektu koristi tako da micro:bit, kada dođe u vodoravni položaj, to pokaže na zaslonu zajedno sa zvučnim signalom, a sve to može biti korisno pri vješanju slike na zid ili postavljanju radne površine.
  • Program u petlji stalno mjeri kutove naginjanja micro:bita.
  • Ako brzinomjer izmjeri kut naginjanja između +5 i -5 stupnjeva i za nagib i za zaokret, tada se može reći da je micro:bit u vodoravnom položaju. U tom slučaju na zaslonu se pokaže znak kvačice i reproducira se neki ton.
  • Ton se može čuti pomoću slušalica ili zvučnika spojenim na izvode 0 i GND, a ako imaš novi micro:bit čut ćeš ga kroz ugrađeni zvučnik.
  • Ako je ili nagib ili zaokret izvan raspona od +5 do -5 stupnjeva, tada se na LED zaslonu pokaže križić, a zvuka nema.

Što ti treba

  • micro:bit
  • Uređivač MakeCode ili Python
  • baterije (prema potrebi)

2. korak: Kodiraj

1from microbit import *
2import music
3
4# Uses accelerometer readings in the x and y axis 
5# and also allows the micro:bit to be slightly off-level
6# to make it work better in practice
7while True:
8    if accelerometer.get_x() > -10 and accelerometer.get_x() < 10 and accelerometer.get_y() > -10 and accelerometer.get_y() < 10:
9        display.show(Image.YES)
10        music.play('C5:1')
11        sleep(200)
12    else:
13        display.show(Image.NO)
14

3. korak: Unaprijedi

  • Možeš li napraviti da se visina tona mijenja ovisno o kutu?
  • Možeš li programirati 'mjehurić' koji će se pomicati po LED zaslonu kao na pravoj libeli?