Skip to content

Atividade

Medidor de som

Principiante | MakeCode, Python | Ecrã LED, Microfone | Entrada/Saída, Gestão de dados

Passo 1: Faz tu mesmo

O que é isto?

Usa o novo sensor de microfone do micro:bit e um gráfico de barras simples para medir o ruído que está à tua volta.

Introdução

Guia do código

O que é que vais aprender

  • Como usar o novo sensor de entrada de microfone integrado do micro:bit para medir o volume sonoro que está à tua volta
  • Como exibir graficamente os dados numéricos dos sensores de entrada no ecrã de LEDs

Como é que funciona

  • O microfone do novo micro:bit mede níveis sonoros em números entre 0 e 255. 0 traduz o som mais silencioso e 255 é a medida mais alta que pode ser feita.
  • O código usa um loop "forever" (para sempre) que faz com que o microfone esteja permanentemente a medir os níveis de som que são traduzidos num gráfico de barras no ecrã de LEDs.
  • Quanto mais alto forem os sons medidos, mais alto o gráfico de barras fica.

Do que é que precisas

  • novo micro:bit com som (ou simulador MakeCode)
  • Editor MakeCode ou Python
  • Suporte de pilhas (opcional)

Passo 2: Cria o teu código

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            

Passo 3: Melhora-o

  • Cria uma forma personalizada de mostrar graficamente o nível sonoro, mostrando diferentes emojis dependendo do volume a que o som está, por exemplo
  • Cria um alarme de ruído que pisca quando o som chega a um determinado nível - podias usar isto para ajudar a manter a tua sala de aula tranquila