Table des matières:

Détecteur de niveau de bruit Micro:bit : 3 étapes
Détecteur de niveau de bruit Micro:bit : 3 étapes

Vidéo: Détecteur de niveau de bruit Micro:bit : 3 étapes

Vidéo: Détecteur de niveau de bruit Micro:bit : 3 étapes
Vidéo: Fabriquer une machine pour récompenser votre chat avec un MicroBit 2024, Novembre
Anonim
Détecteur de niveau de bruit Micro:bit
Détecteur de niveau de bruit Micro:bit
Détecteur de niveau de bruit Micro:bit
Détecteur de niveau de bruit Micro:bit
Détecteur de niveau de bruit Micro:bit
Détecteur de niveau de bruit Micro:bit

Ceci n'est qu'un court exemple de détecteur de niveau de bruit basé sur le micro:bit et le Pimoroni enviro:bit.

Le microphone de l'enviro:bit détecte le niveau sonore et, à partir de la valeur résultante, une position sur la matrice LED 5x5 est calculée et la LED correspondante est activée. Les valeurs maximales mesurées sont enregistrées et restent affichées sur la matrice LED.

Les valeurs peuvent également être affichées en chiffres.

Il s'agit donc essentiellement d'un outil de détection de niveau de bruit très simple, par ex. pour les expériences en classe.

La méthode décrite pour afficher les valeurs réelles et maximales détectées par un capteur sur la matrice LED micro:bits 5x5 pourrait également être utilisée pour d'autres paramètres comme la température, l'humidité ou la pression.

Étape 1: Pièces et logiciels utilisés

Matériel:

  • Un micro:bit
  • Un enviro:bit Pimoroni - livré avec trois capteurs pour le son, la lumière et la couleur, et la pression/température/humidité (20 GBP chez Pimoroni)
  • Un Pimoroni power:bit - pour alimenter l'appareil à partir de piles (en option, ou tout autre moyen d'alimenter le microbit, 6 GBP chez Pimoroni)

Logiciel:

  • Microsoft MakeCode
  • L'extension Pimoroni enviro:bit MakeCode

Pour charger le script sur votre micro:bit, copiez simplement le fichier hexadécimal fourni sur votre micro:bit avec un enviro:bit attaché.

Étape 2: le code

Le code a été écrit à l'aide de Microsoft MakeCode en mode bloc, en utilisant l'extension Enviro:Bit. Vous trouverez ci-dessous le code JavaScript correspondant.

La fonction envirobit.getSoundLevel() lit le niveau sonore du capteur, renvoyant une valeur de 0 à 443.

La constante signal_max définit une valeur maximale de la plage dynamique à afficher sur la matrice LED, les valeurs ci-dessus seront traitées comme étant signal_max. Cela vous permet d'optimiser la sensibilité de l'appareil pour votre application.

La valeur maximale détectée dans un cercle de mesure est stockée dans la variante noise_max et reste affichée sur la matrice LED.

Appuyer sur le bouton "A" réinitialise noise_max et efface l'écran, appuyer sur le bouton "B" affiche la valeur de bruit mesurée en tant que nombre réel.

Pour afficher la valeur, les valeurs en dessous de signal_max sont placées dans 25 "bacs" représentés par une LED, de 0 (en haut à gauche) à 24 (en bas à droite). Ensuite, la position x/y est calculée et la LED correspondante est allumée. Les valeurs supérieures à signal_max sont placées dans le bac 24. Si la valeur est inférieure à noise_max, les LED seront à nouveau éteintes.

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 } })

Étape 3: Un code pour un capteur de température (humidité, pression) avec identificateurs min/max

Un code pour un capteur de température (humidité, pression) avec identificateurs min/max
Un code pour un capteur de température (humidité, pression) avec identificateurs min/max

Vous trouverez ici un code pour la fonction de température enviro:bit.

Les paramètres signal_min et signal_max définissent les températures minimales et maximales (*C) affichées sur la matrice LED. Ici, le réglage signal_main=5 et signal_max=30 fait que 5 et 6*C sont représentés par la LED supérieure gauche (0, 0) et 28/29*C par la LED inférieure droite (4, 4).

Il y a de la place pour l'optimisation: avec le code actuel, les températures montantes et descendantes laissent une trace de LED allumées ou éteintes. D'autre part, cela permet de lire la tendance actuelle de la température (baisse/montée), car la valeur actuelle est indiquée par la LED clignotante.

Remplacer getTemperature() par getHumidity() ou getPressure() et ajuster les valeurs signal_min et signal_max en conséquence (par exemple 0/100 % respectivement 950/1150 hPA) permettrait d'afficher ces paramètres sur la matrice 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) if (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) if (Temp_25 Temp_Min) { led.unplot(Temp_x, Temp_5) } if (Temp_25 > Temp_Max) { Temp_Max = Temp_25 } if (Temp_25 < Temp_Min) { Temp_Min = Temp_25 } })

Conseillé: