Skip to content

Activitat

Sonòmetre

Novell | MakeCode, Python | Micròfon, Pantalla LED | Entrada/sortida, Tractament de dades

Pas 1: Crea-ho

En què consisteix?

Mesura el grau de soroll que hi ha al teu voltant fent servir el micròfon sensor de la nova micro:bit, i un senzill gràfic de barres

Introducció

Guia de programació

Què aprendràs

  • Com utilitzar el sensor de micròfon integrat de la nova micro:bit per mesurar el volum dels sons forts al teu voltant
  • Com mostrar dades numèriques de l'entrada dels sensors gràficament en la pantalla dels leds

Com funciona

  • El nou micròfon de la micro:bit mesura el nivell de so en números entre 0 i 255. O es el so més fluix i 255 el so més fort que es pot mesurar.
  • El programa va servir un "bucle per sempre" per mantenir el micròfon mesurant el nivell de so i dibuixant un gràfic de barres en la pantalla dels leds.
  • Quant més fort és el so registrat, més alt és el gràfic de barres

Què necessites

  • La nova micro: bit amb so ( o simulador del MakeCode)
  • Editor MakeCode o Python
  • Piles (opcional)

Pas 2: Programa-ho

1from microbit import *
2
3# function to map any range of numbers to another range
4def map(value, fromMin, fromMax, toMin, toMax):
5    fromRange = fromMax - fromMin
6    toRange = toMax - toMin
7    valueScaled = float(value - fromMin) / float(fromRange)
8    return toMin + (valueScaled * toRange)
9
10# set of images for simple bar chart
11graph5 = Image("99999:"
12               "99999:"
13               "99999:"
14               "99999:"
15               "99999")
16
17graph4 = Image("00000:"
18               "99999:"
19               "99999:"
20               "99999:"
21               "99999")
22
23graph3 = Image("00000:"
24               "00000:"
25               "99999:"
26               "99999:"
27               "99999")
28
29graph2 = Image("00000:"
30               "00000:"
31               "00000:"
32               "99999:"
33               "99999")
34
35graph1 = Image("00000:"
36               "00000:"
37               "00000:"
38               "00000:"
39               "99999")
40               
41graph0 = Image("00000:"
42               "00000:"
43               "00000:"
44               "00000:"
45               "00000")
46
47allGraphs = [graph0, graph1, graph2, graph3, graph4, graph5]
48               
49# ignore first sound level reading
50soundLevel = microphone.sound_level()
51sleep(200)
52
53while True:
54    # map sound levels from range 0-255 to range 0-5 for choosing graph image
55    soundLevel = int(map(microphone.sound_level(), 0, 255, 0, 5))
56    display.show(allGraphs[soundLevel])
57            

Pas 3: Millora-ho

  • Crea la teva pròpia manera de mostrar quan fort es el so, per exemple mostrant diferents emoticones depenent el fort que sigui.
  • Fes una alarma visual de soroll que només parpellegi quan el sobrepassi d'un determinat nivell - ho pots fer servir com ajuda a mantenir l'aula en pau