Skip to content

Activitat

Aplaudímetre

Intermedi | MakeCode, Python | Micròfon, Pantalla LED | Mesura, Operadors aritmètics, Selecció, Sensors, Variables

Pas 1: Crea-ho

En què consisteix?

Mesura quant duren els aplaudiments - or qualsevol so fort - amb el temporitzador que utilitza el micròfon de la nova micro:bit.

Introducció

Guia de programació

Què aprendràs

  • Com activar esdeveniments quan el micròfon mesura sons forts i fluixos.
  • Com utilitzar el temporitzador integrat de la micro:bit.
  • Com establit el llindar per esdeveniments forts i fluixos.

Com funciona

  • A l'inici del programa s'estableix el llindar per activar l'esdeveniment de so fort. Utilitza nombres més grans quan es necessitin sons forts, nombres petits per sons fluixos. Pots utilitzar qualsevol nombre de 0 a 255
  • Una variable anomenada start (inici) s'estableix a 0. Això s'utilitza per fer un seguiment de quan comença el so fort.
  • Quan el micròfon detecta un so fort, la variable inici (start) guarda el temps d'execució actual de la micro:bit i es mostra una icona a la pantalla de leds perquè sàpigues que el temporitzador ha començat.
  • El temps d'execució és una mesura del temps que la teva micro:bit ha estat executant el teu programa en mil·lisegons (mil·lèsimes de segon).
  • Quan el so fort s'atura, s'activa un esdeveniment sonor fluix.
  • Si ja hi ha hagut un esdeveniment fort i el temporitzador s'ha iniciat, la variable start (inici) tindrà un valor més gran que (>) 0. En aquest cas una variable anomenada time (temps) s'estableix en el nou temps d'execució actual menys l'hora d'inici. Això ens indica quant de temps va durar el so fort.
  • Com que el temps es mesura en mil·lisegons, el programa el divideix per 1.000 per convertir-lo en segons i el mostra a la pantalla LED.

Què necessites

  • Una micro:bit
  • Editor MakeCode o Python
  • Piles (opcional)

Pas 2: Programa-ho

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)

Pas 3: Millora-ho

  • Experimenta amb diferents llindars per a esdeveniments sonors forts i fluixos per trobar els valors que et funcionin millor.
  • Afegeix programa des de "Projecte de registrador de so" així també podràs mesurar el fort que van ser els aplaudiments.