Skip to content

Actividad

Medidor de sonido

Principiante | MakeCode, Python | Micrófono, Pantalla LED | Entrada/salida, Manejo de datos

Paso 1: Hazlo

¿Qué es?

Mide el ruido a tu alrededor con el sensor de micrófono del nuevo micro:bit y una pantalla de gráfico de barras simple.

Introducción

Guía de programación

Qué aprenderás

  • Cómo usar el nuevo sensor de entrada de micrófono integrado en micro:bit para medir cómo de fuertes son los sonidos a tu alrededor
  • Cómo mostrar datos numéricos de los sensores de entrada gráficamente en la salida de la pantalla LED

Cómo funciona

  • El nuevo micrófono micro:bit mide los niveles de sonido en números entre 0 y 255. 0 es el más silencioso y 255 es la medición de sonido más alta que puede hacer.
  • El código usa un bucle «forever», para mantener el micrófono midiendo los niveles de sonido y trazando un gráfico de barras en la pantalla LED.
  • Cuanto más altos sean los sonidos medidos, más alto será el gráfico de barras.

Qué necesitas

  • nuevo micro:bit con sonido (o simulador MakeCode)
  • Editor de MakeCode o de Python
  • pilas (opcionales)

Paso 2: Prográmalo

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            

Paso 3: Mejóralo

  • Crea tus propias formas de mostrar lo alto que es un sonido, por ejemplo mostrando diferentes emojis dependiendo de lo alto que sea
  • Haz una alarma de ruido visual que solo parpadea cuando el sonido supera un cierto nivel - podrías usar esto para ayudar a mantener tu aula en paz