Skip to content

Activité

Bougie

Intermédiaire | MakeCode, Python | Microphone, Écran LED | Capteurs, Logique booléenne, Sélection

Étape 1 : Fabrique-le

Qu'est-ce que c'est ?

Fabrique une bougie électronique que tu peux souffler ! Le nouveau microphone intégré du micro:bit détecte le son de ton souffle et éteint la bougie - puis la rallume.

Introduction

Guide de programmation

Ce que tu vas apprendre

  • Comment utiliser des nombres aléatoires pour allumer aléatoirement des LED
  • Comment modifier des sorties en fonction des entrées d'un capteur.
  • Comment utiliser la logique booléenne pour programmer un interrupteur dont le changement d'état est déclenché par un même événement.

Comment ça marche

  • Un nombre aléatoire entre 1 et 3 est enregistré dans une variable nommée flicker.
  • Ce nombre est utilisé pour allumer et éteindre des LED au hasard afin de simuler une flamme qui vacille.
  • Les LED du micro:bit sont disposées dans une grille dont les colonnes et les lignes sont numérotées de 0 à 4. Le programme affiche (allume) et masque (éteint) différentes LED dans la rangée supérieure en fonction du nombre aléatoire enregistré dans la variable flicker.
  • Les coordonnées des LED sont toujours données en débutant par la colonne à l'horizontal (l'axe des x) et suivies de la ligne verticale (l'axe des y). Le milieu de la flamme est aux coordonnées 2, 0.
grille montrant les coordonnées de l'affichage LED du micro:bit
  • Une boucle infinie permet à l'animation de continuer de s'exécuter.
  • Le programme utilise également une variable nommée lit pour mémoriser si la bougie est allumée ou non. Ceci est une variable booléenne. Les variables booléennes ne peuvent avoir que deux valeurs : true (on) ou false (off).
  • Lorsque le capteur du microphone détecte un son fort, par exemple quand vous soufflez dessus, le code inverse la valeur de lit en la définissant à not lit. Donc, quand vous soufflez sur le microphone, si la valeur lit est définie à vrai, elle passera à faux et l'écran sera effacé, éteignant ainsi les LED.
  • Si lit valait faux, elle vaudra vrai et nous redémarrerons ainsi l'animation.

Ce dont vous aurez besoin

  • Un micro:bit
  • MakeCode ou éditeur Python
  • un boîtier de piles (optionnel)

Étape 2 : Programme-le

1from microbit import *
2import random
3
4lit = True
5
6while True:
7    if microphone.was_event(SoundEvent.LOUD):
8        lit = not lit
9        sleep(500)
10    if lit:
11        display.show(Image(
12        "00900:"
13        "09990:"
14        "09990:"
15        "09990:"
16        "09990"))
17        sleep(150)
18        flicker = random.randint(1, 3)
19        if flicker != 2:
20            display.set_pixel(2,0,0)
21            display.set_pixel(flicker,0,9)
22        sleep(150)
23    else:
24        display.clear()

Étape 3 : Améliore-le

  • Créez votre propre design d'animation à activer ou à désactiver avec le son.
  • Vous pouvez rendre le bloc "lorsque son bruyant" plus ou moins sensible en ajoutant un bloc "définir un seuil sonore élevé" dans un bloc "au démarrage". Trouvez-le sous Entrée et '...plus'. Utilisez des nombres plus petits pour des sons plus faibles, et des nombres plus grands pour des sons plus forts.
  • En Python, pour changer le seuil des sons bruyants, utilisez microphone.set_threshold(SoundEvent.LOUD, 128) juste avant la boucle while True:, en changeant la valeur 128 par la valeur sonore que vous désirez. Il peut s'agir de n'importe quel nombre entre 0 et 255, 255 étant le son le plus bruyant.