🛠 Piloter le haut-parleur : sons, mélodies et voix
Objetivos
Aprovechar el altavoz magnético de la micro:bit V2 (Jiangsu Huaneng MLT-8530, controlado desde P0.00 a través del DAC del chip de interfaz): efectos de sonido integrados, melodías, tonos y comprensión de la ruta de audio compartida con el pin P0.
Material
- 1 placa micro:bit V2 (el altavoz no está presente en la V1)
- 1 cable micro-USB o alimentación autónoma
- Opcional: altavoz externo en el anillo P0 con pinzas de cocodrilo
Código completo
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 acepta melodías predefinidas (FUNERAL, NYAN, PYTHON…) y listas « NOTA:duración ». music.pitch(freq, ms) genera un tono continuo. El sonido sale tanto por el altavoz como por el anillo P0: speaker.off apaga el altavoz interno pero no la ruta P0.
Verificación esperada
Al iniciar, se escuchan la melodía Nyan y luego el efecto HYPERFUN. A reproduce « hello », B reproduce la melodía de seis notas, y agitar la placa produce un sonido cuya altura sigue la inclinación.
Errores frecuentes
- Usar P0 como entrada analógica/táctil en paralelo: la señal de audio interfiere con la medición (conflicto documentado).
- Esperar sonido en la V1: el altavoz es exclusivo de la V2;
musicno emite sonido en ella. - Melodía demasiado corta mal escrita: el formato exige « C:4 » (nota:cuartos de tiempo), no « C4 ».
- Volumen máximo saturado: el altavoz magnético es limitado, no tiene amplificador — no confundir con un zumbador controlado por PWM externo.
Otros tutoriales para esta placa
Ejemplos de código para esta placa
coeur.pyMicroPythonboutons.pyMicroPythonpodometre.pyMicroPythonlumiere.pyMicroPythonmusique.pyMicroPythonradio_ping.pyMicroPython