Primeiro passo: o projeto
O que é?
Crie um registrador de níveis de som para saber se os espaços que você frequenta são silenciosos ou barulhentos.
Introdução
Código
O que você aprenderá:
- Como usar o sensor do microfone integrado do novo micro:bit para medir o volume de um som;
- Como usar variáveis e operadores lógicos para monitorar os valores mais altos enquanto coleta dados reais.
Como funciona:
- O microfone do novo micro:bit mede os níveis de som em números entre 0 e 255, tal como o sensor de luminosidade;
- Um laço de repetição (loop) compara constantemente o nível de som atual com a variável maxSound, que armazena o valor do som mais alto. Se o som atual for mais alto que o som registado previamente, o valor da variável maxSound é substituído pelo novo valor do som mais alto;
- Dentro do laço de repetição existe um comando if (se), o qual verifica se você pressionou o botão A, que, caso pressionado, exibe o valor (número) do nível do som no visor LED. Isso pode ser usado para monitorar o nível de ruído em locais diferentes ao longo do tempo;
- Pressione o botão reiniciar na parte traseira do micro:bit para reinicializar o valor máximo.
Itens necessários:
- Novo micro:bit com alto-falante (ou o simulador MakeCode);
- Editor MakeCode ou Python;
- Conjunto de baterias (opcional).
Segundo passo: é hora de programar
1from microbit import *
2maxSound = 0
3lights = Image("11111:"
4 "11111:"
5 "11111:"
6 "11111:"
7 "11111")
8# ignore first sound level reading
9soundLevel = microphone.sound_level()
10sleep(200)
11
12while True:
13 if button_a.is_pressed():
14 display.scroll(maxSound)
15 else:
16 soundLevel = microphone.sound_level()
17 display.show(lights * soundLevel)
18 if soundLevel > maxSound:
19 maxSound = soundLevel
20
Terceiro passo: vamos deixar o código ainda melhor
- Altere o projeto para que ele também registe o nível do som mais baixo;
- Envie os níveis sonoros a outro micro:bit via rádio, para que seja possível monitorar os níveis de som à distância.
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.