Índice:
- Etapa 1: Peças e software usados
- Etapa 2: O Código
- Etapa 3: um código para um sensor de temperatura (umidade, pressão) com identificadores mín. / Máx
Vídeo: Micro: detector de nível de ruído de bits: 3 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
Este é apenas um pequeno exemplo para um detector de nível de ruído baseado no micro: bit e no Pimoroni enviro: bit.
O microfone no enviro: bit detecta o nível de som e, a partir do valor resultante, uma posição na matriz de LEDs 5x5 é calculada e o LED correspondente é ativado. Os valores máximos medidos são armazenados e permanecem exibidos na matriz de LED.
Os valores também podem ser exibidos em números.
Portanto, é basicamente uma ferramenta de detecção de nível de ruído muito simples, por exemplo, para experimentos em sala de aula.
O método descrito para exibir os valores reais e máximos detectados por um sensor na matriz de LED micro: bits 5x5 também pode ser usado para outros parâmetros como temperatura, umidade ou pressão.
Etapa 1: Peças e software usados
Hardware:
- Um micro: bit
- A Pimoroni enviro: bit - vem com três sensores para som, luz e cor e pressão / temperatura / umidade (20 GBP em Pimoroni)
- Um poder Pimoroni: bit - para alimentar as baterias de forma do dispositivo (opcional, ou qualquer outra forma de alimentar o micróbio, 6 GBP em Pimoroni)
Programas:
- Microsoft MakeCode
- O enviro Pimoroni: extensão MakeCode bit
Para carregar o script em seu micro: bit, apenas copie o arquivo hex fornecido em seu micro: bit com um enviro: bit anexado.
Etapa 2: O Código
O código foi escrito usando Microsoft MakeCode em modo de bloco, usando a extensão Enviro: Bit. Abaixo você encontra o código JavaScript correspondente.
A função envirobit.getSoundLevel () lê o nível de som do sensor, retornando um valor de 0 a 443.
A constante signal_max define um valor máximo da faixa dinâmica a ser exibida na matriz de LED, os valores acima serão tratados como sendo signal_max. Isso permite que você otimize a sensibilidade do dispositivo para sua aplicação.
Os valores máximos detectados em um círculo de medição são armazenados na variante noise_max e permanecem exibidos na matriz de LED.
Pressionar o botão "A" redefine o noise_max e limpa a tela, pressionando o botão "B" exibe o valor do ruído medido como um número real.
Para exibir o valor, os valores abaixo de signal_max são colocados em 25 "bins" representados por um LED, começando de 0 (canto superior esquerdo) a 24 (canto inferior direito). Em seguida, a posição x / y é calculada e o LED correspondente é ligado. Valores acima de signal_max são colocados no compartimento 24. Se o valor estiver abaixo de noise_max, os LEDs serão desligados novamente.
let noise_x = 0let signal_max = 0 let noise_5 = 0 let noise_25 = 0 let noise_max = 0 basic.showString ("Noise") noise_max = 0 noise_25 = 0 noise_5 = 0 signal_max = 250 basic.forever (function () {while (input.buttonIsPressed (Button. B)) {basic.showNumber (envirobit.getSoundLevel ()) basic.showString ("-")} if (input.buttonIsPressed (Button. A)) {noise_max = 0 basic.clearScreen ()} noise_25 = Math.floor (envirobit.getSoundLevel () / signal_max * 25) if (noise_25> 24) {noise_25 = 24} noise_5 = Math.floor (noise_25 / 5) noise_x = noise_25 - noise_5 * 5 led.plot (noise_x, noise_5) basic.pause (200) if (noise_25 noise_max) {noise_max = noise_25}})
Etapa 3: um código para um sensor de temperatura (umidade, pressão) com identificadores mín. / Máx
Aqui você encontra um código para a função enviro: bit temperature.
Os parâmetros signal_min e signal_max definem as temperaturas mínima e máxima (* C) exibidas na matriz de LED. Aqui, definir signal_main = 5 e signal_max = 30 resulta em 5 e 6 * C sendo representados pelo LED superior esquerdo (0, 0) e 28/29 * C pelo LED inferior direito (4, 4).
Há espaço para otimização: com o código atual subindo e descendo, as temperaturas estão deixando rastros de LEDs acesos ou apagados. Por outro lado, permite ler a tendência da temperatura atual (queda / subida), pois o valor da corrente é indicado pelo LED piscando.
Substituir getTemperature () por getHumidity () ou getPressure () e ajustar os valores de signal_min e signal_max de acordo (por exemplo, 0/100% respectivamente 950/1150 hPA) permitiria exibir esses parâmetros na matriz de LED.
let Temp_x = 0let Temp_5 = 0 let signal_delta = 0 let Temp_25 = 0 let Temp_Min = 0 let signal_min = 0 let Temp_Max = 0 let signal_max = 0 basic.showString ("Temp") signal_max = 30 signal_min = 5 signal_delta = signal_max - signal_min Temp_Max = 0 Temp_Min = 24 basic.forever (function () {if (input.buttonIsPressed (Button. A)) {Temp_Max = 0 Temp_Min = 24 basic.clearScreen ()} while (input.buttonIsPressed (Button. B)) { basic.showNumber (Math.round (envirobit.getTemperature ())) basic.showString ("C")} Temp_25 = Math.floor ((envirobit.getTemperature () - signal_min) / signal_delta * 25) se (Temp_25> 24) {Temp_25 = 24} if (Temp_25 <0) {Temp_25 = 0} Temp_5 = Math.floor (Temp_25 / 5) Temp_x = Temp_25 - Temp_5 * 5 led.plot (Temp_x, Temp_5) basic.pause (100) se (Temp_25 Temp_Min) {led.unplot (Temp_x, Temp_5)} se (Temp_25> Temp_Max) {Temp_Max = Temp_25} se (Temp_25 <Temp_Min) {Temp_Min = Temp_25}})
Recomendado:
Arduino Nano - MMA8452Q 3 eixos 12 bits / 8 bits acelerômetro digital Tutorial: 4 etapas
Arduino Nano - MMA8452Q 3 eixos 12 bits / 8 bits Acelerômetro digital Tutorial: O MMA8452Q é um acelerômetro inteligente, de baixo consumo de energia, capacitivo, microusinado e de três eixos com 12 bits de resolução. Opções flexíveis programáveis pelo usuário são fornecidas com o auxílio de funções incorporadas no acelerômetro, configuráveis para duas interrupções
Raspberry Pi MMA8452Q 3 eixos 12 bits / 8 bits acelerômetro digital Python Tutorial: 4 etapas
Raspberry Pi MMA8452Q 3 eixos 12 bits / 8 bits Acelerômetro digital Python Tutorial: O MMA8452Q é um acelerômetro inteligente, de baixo consumo de energia, capacitivo, microusinado e de três eixos com 12 bits de resolução. Opções flexíveis programáveis pelo usuário são fornecidas com o auxílio de funções incorporadas no acelerômetro, configuráveis para duas interrupções
Sinal ou medidor de nível de ruído inseguro: 4 etapas (com imagens)
Medidor ou sinalizador de nível de ruído inseguro: Adoro observar os projetos criativos das pessoas. Ferramentas & amp modernas; a tecnologia nos dá tantas opções criativas. Eu ensino materiais pesados para alunos do ensino médio em uma escola na Nova Zelândia, então estou sempre desenvolvendo & experimentando coisas novas. Thi
Raspberry Pi MMA8452Q 3 eixos 12 bits / 8 bits acelerômetro digital Java Tutorial: 4 etapas
Raspberry Pi MMA8452Q Acelerômetro digital de 3 eixos, 12 bits / 8 bits, Java Tutorial: O MMA8452Q é um acelerômetro inteligente, de baixo consumo de energia, capacitivo, microusinado e de três eixos com 12 bits de resolução. Opções flexíveis programáveis pelo usuário são fornecidas com o auxílio de funções incorporadas no acelerômetro, configuráveis para duas interrupções
Sistema de alerta de nível de ruído inseguro: 11 etapas (com imagens)
Sistema de alerta de nível de ruído inseguro: O Oshman Engineering Design Kitchen (OEDK) é o maior makerpace da Rice University, oferecendo um espaço para todos os alunos projetarem e prototiparem soluções para desafios do mundo real. Para atender a esse propósito, o OEDK possui uma série de ferramentas elétricas