Skip to content

Aktywność

Miernik oklasków

Średnio zaawansowany | MakeCode, Python | Mikrofon, Wyświetlacz LED | Czujniki, Operatory arytmetyczne, Pomiary, Wybór, Zmienne

Krok 1: Wykonaj to

Co to jest?

Zmierz, jak długo oklaski - lub jakikolwiek głośny dźwięk - trwają, używając czasomierza, który używa mikrofonu na nowym micro:bit.

Wprowadzenie

Przewodnik po kodowaniu

Czego się nauczysz

  • Jak wyzwalać zdarzenia, gdy głośne i ciche pomiary dźwięku są wykonywane przez mikrofon
  • Jak korzystać z wbudowanego czasomierza micro:bit
  • Jak ustawić próg dla głośnych i cichych zdarzeń

Jak to działa

  • Na początku programu ustawiany jest próg, aby wywołać głośne zdarzenie dźwiękowe. Użyj większych liczb dla głośniejszych dźwięków, mniejszych liczb dla bardziej cichych dźwięków. Możesz wybrać dowolną liczbę od 0 do 255.
  • Zmienna o nazwie start jest ustawiona na 0. To jest używane do śledzenia rozpoczęcia głośnego dźwięku.
  • Kiedy mikrofon wykrywa głośny dźwięk, zmienna start jest ustawiona na aktualny czas działania micro:bit, a na wyświetlaczu LED pojawia się ikona, by pokazać iż zegar został uruchomiony.
  • Czas pracy jest miarą długości pracy programu Twojego micro:bit w milisekundach (tysięcznych sekundy).
  • Kiedy głośny dźwięk ustanie, wyzwalane jest ciche zdarzenie dźwiękowe.
  • Jeśli było już głośne wydarzenie, i czasomierz został uruchomiony, wtedy zmienna start będzie miała wartość większą niż (>) 0. W tej sytuacji, zmienna o nazwie czas jest ustawiana na nowy aktualny czas pracy minus czas rozpoczęcia. Pokazuje to nam, jak długo trwał głośny dźwięk.
  • Ponieważ czas jest mierzony w milisekundach, program mnoży go przez 1000 w celu zamiany na sekundy i wyświetla go na wyświetlaczu LED.

Czego potrzebujesz

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

Krok 2: Zakoduj to

1from microbit import *
2microphone.set_threshold(SoundEvent.LOUD, 150)
3start = 0
4
5while True:
6    if microphone.was_event(SoundEvent.LOUD):
7        start = running_time()
8        display.show(Image.TARGET)
9
10    if microphone.was_event(SoundEvent.QUIET):
11        if start > 0:
12            time = running_time() - start
13            start = 0
14            display.clear()
15            sleep(100)
16            display.scroll(time / 1000)

Krok 3: Ulepsz to

  • Eksperymentuj z różnymi progami głośnych i cichych dźwięków, aby znaleźć wartości najlepsze dla Ciebie.
  • Dodaj kod z Projekt rejestratora dźwięku, aby również zmierzyć, jak głośny był aplauz.