🛠 Piloter le haut-parleur : sons, mélodies et voix
Objectifs
Exploiter le haut-parleur magnétique de la V2 (Jiangsu Huaneng MLT-8530, piloté depuis P0.00 via le DAC de la puce d'interface) : effets sonores intégrés, mélodies, tones, et compréhension de la route audio partagée avec la broche P0.
Matériel
- 1 carte micro:bit V2 (haut-parleur absent de la V1)
- 1 câble micro-USB ou alimentation autonome
- Optionnel : haut-parleur externe sur l'anneau P0 avec pinces crocodiles
Code complet
from microbit import *
import music
# Mélodie d'accueil + effets intégrés (audio.play)
music.play(music.NYAN)
audio.play(Sound.HYPERFUN)
notes = ["C:4", "E:4", "G:4", "C5:4", "G:4", "E:4"]
while True:
if button_a.was_pressed:
audio.play(Sound.HELLO) # effet intégré court
elif button_b.was_pressed:
music.play(notes) # mélodie personnalisée
elif accelerometer.was_gesture("shake"):
# Petit synthé : la note dépend de l'inclinaison x
freq = 200 + abs(accelerometer.get_x) // 4
music.pitch(freq, 150)
sleep(50)
music.play accepte les mélodies prédéfinies (FUNERAL, NYAN, PYTHON…) et des listes « NOTE:durée ». music.pitch(freq, ms) génère un ton continu. Le son sort à la fois du haut-parleur ET de l'anneau P0 : speaker.off coupe le HP interne mais pas la route P0.
Vérification attendue
Au démarrage, la mélodie Nyan puis l'effet HYPERFUN se font entendre. A joue « hello », B rejoue la mélodie de six notes, secouer la carte produit un son dont la hauteur suit l'inclinaison.
Erreurs fréquentes
- Utiliser P0 en entrée analogique/tactile en parallèle : le signal audio parasite la mesure (conflit documenté).
- Attendre du son sur V1 : le HP est une exclusivité V2 ;
musicy est silencieux. - Mélodie trop courte mal écrite : le format exige « C:4 » (note:quarts de temps), pas « C4 ».
- Volume maximum saturé : le HP magnétique est limité, pas d'amplificateur — ne pas confondre avec un buzzer piloté en PWM externe.
Autres tutoriels pour cette carte
Exemples de code pour cette carte
coeur.pyMicroPythonboutons.pyMicroPythonpodometre.pyMicroPythonlumiere.pyMicroPythonmusique.pyMicroPythonradio_ping.pyMicroPython