musique.py

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

La V2 tiene un altavoz: la librería music reproduce melodías y notas (con octava) en el altavoz interno o en la pata amplificada pin0. Botones y gestos de inclinación se vuelven teclas de juego.

Material necesario

Una BBC micro:bit V2 (nRF52833, matriz LED 5×5, botones A/B, acelerómetro + brújula, micrófono y altavoz) alimentada por USB o pila. Opcional: mini-altavoz de 8 Ω o zumbador en pin0 y GND para sonido externo.

Cableado

Altavoz entre pin0 (salida amplificada) y GND. El altavoz interno no necesita nada.

Funcionamiento

music.play acepta una lista de notas tipo LA:200 (un la de 200 ms); wait bloquea hasta el final. Los gestos tilt up/down disparan una nota, como un xilófono inclinado.

Ejecución

Abre python.microbit.org, pega el programa MicroPython y envíalo a la placa (la micro:bit aparece como unidad MICROBIT). Pulsa reset para relanzar.

Variantes

Compón un aire completo con music.play(list, loop=True), o toca una escala con el potenciómetro del 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.

← Volver a la ficha