Skip to content

Activiteit

Klap-o-meter

Gevorderd | MakeCode, Python | LED scherm, Microfoon | Meting, Selectie, Sensoren, Variabelen, Wiskundige operatoren

Stap 1: Maak het

Wat is het?

Meet hoe lang applaus - of een hard geluid - duurt met deze timer die de microfoon op de nieuwe micro:bit gebruikt.

Inleiding

Codeer instructies

Wat je gaat leren

  • Hoe gebeurtenissen te activeren wanneer harde en stille geluidsmetingen worden gedaan door de microfoon
  • Hoe de micro:bit's ingebouwde timer te gebruiken
  • Hoe stel je de drempel in voor luide en stille gebeurtenissen

Zo werkt het

  • Aan het begin van het programma wordt de drempel voor het activeren van een luide geluidsgebeurtenis ingesteld. Gebruik grotere getallen zodat luidere geluiden nodig zijn, een kleiner aantal voor kleinere geluiden. Het kan elk getal zijn tussen 0 en 255.
  • Een variabele genaamd start is ingesteld op 0. Dit wordt gebruikt om te volgen wanneer het harde geluid begon.
  • Wanneer de microfoon een hard geluid detecteert, wordt de start variabele ingesteld op de huidige looptijd van de micro:bit en wordt een pictogram weergegeven op het LED-display zodat u weet dat de timer is gestart.
  • De looptijd is een maatstaf voor hoe lang je micro:bit jouw programma heeft uitgevoerd in milliseconden (duizendsten van een seconde).
  • Wanneer het harde geluid stopt, wordt een stille geluidsgebeurtenis geactiveerd.
  • Als er al een luide gebeurtenis is geweest en de timer is gestart, heeft de startvariabele een waarde groter (>) 0. In dit geval wordt een variabele met de naam tijd ingesteld op de nieuwe huidige looptijd minus de starttijd. Dit vertelt ons hoe lang het harde geluid duurde.
  • Omdat de tijd wordt gemeten in milliseconden, deelt het programma deze door 1000 om deze om te zetten in seconden en geeft deze weer op het LED-display.

Benodigdheden

  • Een micro:bit
  • MakeCode of Python editor
  • batterijpakket (optioneel)

Step 2: Codeer het

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)

Stap 3: Verbeter het

  • Experimenteer met verschillende drempels voor luide en stille geluidsgebeurtenissen om de waarden te vinden die het beste voor u werken.
  • Voeg code toe uit het Geluid logger-project, zodat je ook kunt meten hoe luid het applaus was.