Skip to content

Activité

Sonomètre

Débutant | MakeCode, Python | Microphone, Écran LED | Entrée / Sortie, Gestion des données

Étape 1 : Fais-le

Qu'est-ce que c'est ?

Mesurez à quel point il est bruyant autour de vous en utilisant le capteur de microphone du nouveau micro:bit et un affichage simple du diagramme à barres.

Introduction

Guide de codage

Ce que vous apprendrez

  • Comment utiliser le microphone intégré du nouveau micro:bit pour mesurer la force des sons autour de vous
  • Comment afficher graphiquement les données numériques des capteurs d'entrée sur la sortie de l'écran LED

Comment ça marche

  • Le microphone du nouveau micro:bit mesure les niveaux sonores sous forme de nombres compris entre 0 et 255. 0 est le plus silencieux et 255 est la mesure sonore la plus bruyante qu'il puisse faire.
  • Le code utilise une boucle permanente pour que le microphone mesure les niveaux sonores et trace un graphique à barres sur l'écran LED.
  • Plus les sons mesurés sont forts, plus le graphique en barres est élevé.

Ce dont vous aurez besoin

  • nouveau micro:bit avec son (ou simulateur MakeCode)
  • MakeCode ou éditeur Python
  • un boîtier de piles (optionnel)

Étape 2 : Programme-le

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            

Étape 3 : Améliore-le

  • Créez vos propres façons d'afficher la force d'un son, par exemple en affichant différents émojis en fonction de son niveau
  • Créez une alarme sonore visuelle qui ne clignote que lorsque le son dépasse un certain niveau - vous pouvez l'utiliser pour aider à garder votre classe paisible