la gestion du son
L'ajout de bruitages rend souvent les applications plus attractives - sauf peut-être en salle de classe ! En connectant un haut-parleur entre les broches 0 et GND de la carte microbit, il est possible de jouer des sons.
Complément :
Il existe des shields sur laquelle la carte microbit s'enfiche qui intègrent un haut-parleur. La carte peut alors émettre des sons sans branchements supplémentaires. C'est le cas du gator:bit V2 de sparkfun que nous avons déjà rencontré dans la partie sur les entrées-sorties.
Jouer une musique préenregistrée
La carte intègre un certain nombre de musiques réenregistrées pour différentes ambiances. Essayez le code suivant :
import music
music.play(music.BIRTHDAY)
Difficile de f aire plus simple ! voici la liste des musiques disponibles. Pour les retrouver depuis le REPL, faites dir(music)
'DADADADUM', 'ENTERTAINER', 'PRELUDE', 'ODE', 'NYAN', 'RINGTONE', 'FUNK', 'BLUES', 'BIRTHDAY', 'WEDDING', 'FUNERAL', 'PUNCHLINE', 'PYTHON', 'BADDY', 'CHASE', 'BA_DING', 'WAWAWAWAA', 'JUMP_UP', 'JUMP_DOWN', 'POWER_UP', 'POWER_DOWN'
Jouer une musique personalisée
Vous pouvez composer votre propre musique comme vous pouvez le voir sur l'exemple suivant :
import music
tune = ["C4:4", "D4:4", "E4:4", "C4:4", "C4:4", "D4:4", "E4:4", "C4:4",
"E4:4", "F4:4", "G4:8", "E4:4", "F4:4", "G4:8"]
music.play(tune)
Le format de chaque note est le nom de la note ("A" pour La, "B" pour Si etc...) suivi du numéro de l'octave suivi de " :" et enfin la longueur de la note.
Complément : Simplification d'écriture
Pour simplifier, MicroPython se rappèle les paramètres de la note précédente si ceux-ci sont omis pour la note suivante. La musique précédente peut ainsi se simplifier en
tune = ["C4:4", "D", "E", "C", "C", "D", "E", "C", "E", "F", "G:8", "E:4", "F", "G:8"]
Effets sonore
On peut enfin utiliser music.pitch() pour spécifier une fréquence et une durée précise. L'exemple ci-dessous reproduit une sirène de police et illustre cette méthode.
import music
while True:
for freq in range(880, 1760, 16):
music.pitch(freq, 6)
for freq in range(1760, 880, -16):
music.pitch(freq, 6)