musique.py
La V2 possède un haut-parleur : la bibliothèque music joue mélodies et notes (do, ré, mi avec octave) sur le HP interne ou sur la broche amplifiée pin0. Boutons et inclinaisons de l'accéléromètre servent de touches de jeu.
Matériel requis
Une BBC micro:bit V2 (nRF52833, matrice 5×5 LED, boutons A/B, accéléromètre + boussole, microphone et haut-parleur) alimentée par USB ou pile. Optionnel : mini-haut-parleur 8 Ω ou buzzer sur pin0 et GND pour sonoriser l'extérieur.
Câblage
HP entre pin0 (sortie amplifiée) et GND. Le haut-parleur interne ne demande rien.
Fonctionnement
music.play accepte une liste de notes du type LA:200 (un la joué 200 ms) ; wait bloque jusqu'à la fin. Les gestes tilt up/down déclenchent une note, comme un xylophone incliné.
Exécution
Ouvrez python.microbit.org, collez le programme MicroPython et envoyez-le vers la carte (la micro:bit apparaît comme lecteur MICROBIT). Appuyez sur reset pour relancer.
Variantes
Composez un air complet avec music.play(list, loop=True), ou jouez une gamme pilotée par le potentiomètre du script servo.
musique.py
# Melodies et notes sur le haut-parleur de la micro:bit V2.
from microbit import *
import music
# 'dea' = theme simplifie ; la V2 possede un haut-parleur annexe.
melodie = ['C4:100', 'E4:100', 'G4:100', 'C5:200',
'G4:100', 'E4:100', 'C4:300']
display.show(Image.MUSIC)
sleep(600)
music.play(melodie, pin=pin0, wait=True, loop=False)
# Joue aussi sur le haut-parleur integre (pin par defaut).
while True:
if button_a.was_pressed():
music.play(music.DING)
if button_b.was_pressed():
music.play(music.GHOST)
# Incliner vers le haut : do ; vers le bas : sol.
if accelerometer.is_gesture('tilt up'):
music.play(['C4'], pin=pin0)
if accelerometer.is_gesture('tilt down'):
music.play(['G4'], pin=pin0)
sleep(20)
# Pin0 = sortie amplifiee du bord de carte : buzzer ou mini-HP.
# reset() arrete toute musique en cours.