Skip to content

Aktywność

Poziom duchowy

Średnio zaawansowany | MakeCode, Python | Akcelerometr, Dźwięk, Wyświetlacz LED | Czujniki, Logika boolowska, Operatory relacji, Wybór

Krok 1: Wykonaj to

Co to jest?

Stwórz narzędzie do upewnienia się, że zdjęcia, półki lub powierzchnie robocze są poziome. Wbudowany głośnik micro:bit ułatwia poprawienie poziomu duszka dzięki reakcji dźwięku.

Wprowadzenie

Przewodnik po kodowaniu

Czego się nauczysz

  • Jak używać czujnika przyspieszeniomierza do pomiaru kątów
  • Czym są „wysokość” i „przechylenie”
  • Jak połączyć odczyty czujnika w dwóch wymiarach, w celu znalezienia powierzchni poziomej

Jak to działa

Schemat pokazujący nachylenie i przechylenie na micro:bit
  • Akcelerometr micro:bit może mierzyć kąty przechylenia w dwóch kierunkach: w górę i w dół (skok) oraz z boku na bok (rolka). Ten projekt wykorzystuje to, aby pokazać na wyświetlaczu LED, kiedy micro:bit jest wypoziomowany i wydając dźwięk, co może być przydatne podczas wieszania obrazka lub tworzenia powierzchni roboczej.
  • Pętla sprawia, że program stale mierzy kąt micro:bit
  • Jeśli akcelerometr mierzy kąt nachylenia między +5 a -5 stopni zarówno góra-dół jak i z boku na bok, micro:bit musi być odpowiednio wypoziomowany. Potem pokazuje zaznaczenie na wyjściu wyświetlacza LED i odtwarza dźwięk muzyczny.
  • Aby usłyszeć dźwięk, podłącz słuchawki lub głośnik do pinu 0 i GND, lub jeśli masz nowy micro:bit, to usłyszysz go na wbudowanym głośniku.
  • Jeśli nachylenie góra-dół lub z boku na bok jest poza zakresem od +5 do -5 stopni, to wyświetla krzyżyk na wyświetlaczu LED i wyłącza dźwięk.

Czego potrzebujesz

  • micro:bit
  • MakeCode lub edytor Pythona
  • pakiet baterii (opcjonalnie)

Krok 2: Zakoduj to

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

Krok 3: Ulepsz to

  • Czy możesz spowodować zmianę tonacji muzycznej w zależności od kąta?
  • Czy mógłbyś zakodować „bańkę” na LED, która porusza się po ekranie jak prawdziwy duch?