musique.py

micro:bit V2 (BBC micro:bit v2) · Fichier : musique.py · Langage : MicroPython · Usage : Jouer des mélodies et notes sur le haut-parleur de la V2

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.

← Retour à la fiche