Intro
Jouer de la musique
Dans ce tutoriel, nous allons apprendre à utiliser un buzzer avec une carte électronique pour faire de la musique
Qu’est-ce qu’un buzzer ?
Un buzzer est un composant électronique qui peut générer du son grâce à la vibration d’une membrane ou d’un autre élément électro-mécanique. Il est généralement utilisé pour produire des signaux sonores simples, comme des alertes ou des notifications. Dans le cadre de ce tutoriel, nous allons utiliser le buzzer pour créer différentes notes de musique.
Étape 1
Déclaration des entrées / sorties
Nous allons commencer notre code en intégrant quelques bibliothèques. Ce sont des ensembles de codes déjà écrits nous permettant de rajouter des fonctions facilement.
La première s’appelle “board” et est spécifique à CircuitPython. C’est grâce à elle que nous allons pouvoir expliquer à notre programme comment sont connectés les éléments au microcontrôleur (le cerveau de Eliobot)
Pour l’intégrer dans notre programme on utilise la ligne suivante :
import board
Cela nous permet d’appeler les entrée / sorties de la cartes en utilisant le numéro de la broche.
board.IO17
Étape 2
Déclaration du buzzer
Pour utiliser le buzzer d’Eliobot, nous utiliserons la bibliothèque « elio » , qui va nous faciliter la tâche, ainsi que « pwmio » pour configurer le buzzer.
from elio import Buzzer
import pwmio
Maintenant que nos bibliothèques sont dans notre projet, nous allons pouvoir utiliser les fonctions qu’elles contiennent. On commence par déclarer notre Buzzer comme ceci :
buzzer = Buzzer(pwmio.PWMOut(board.IO17, variable_frequency=True))
Avec la librairie « elio » pour jouer la note DO octave 4 pendant 1 seconde on fait :
buzzer.play_tone(261.63, 1, 100)
261.63 correspond à la fréquence du DO octave 4.
1 correspond au temps en seconde.
100 correspond au pourcentage du volume ici 100% donc le maximum.
Pour récapituler :
import board
from elio import Buzzer
import pwmio
buzzer = Buzzer(pwmio.PWMOut(board.IO17, variable_frequency=True))
buzzer.play_tone(261.63, 1, 100)
Ce programme permet de jouer la Note DO octave 4 pendant 1 seconde.
Étape 3
Ajout d’une temporisation
Pour crée une musique on va assembler ces notes :
mi – mi – sol – mi – re – do – 246.94hz
Ensuite on définit le temps entre les notes à l’aide d’une nouvelle librairie “time”
import time
La fonction “sleep” nous permet de mettre le programme en pause pendant une durée exprimée en secondes, par exemple pour une seconde on écrit :
time.sleep(1)
On assemble le tout pour avoir les bon temps entre les notes et la durée des notes.
volume = 100
buzzer.play_tone(329.63, 0.72, volume)
time.sleep(0.1)
buzzer.play_tone(329.63, 0.24, volume)
buzzer.play_tone(392, 0.24, volume)
time.sleep(0.1)
buzzer.play_tone(329.63, 0.24, volume)
time.sleep(0.1)
buzzer.play_tone(293.66, 0.24, volume)
buzzer.play_tone(261.63, 0.96, volume)
time.sleep(0.1)
buzzer.play_tone(246.94, 0.96, volume)
On définit la variable volume pour avoir le même volume sur chaque note.
Étape 4
Programme final
Voici le programme final que l’on va pouvoir exécuter ▶️ :
import board
from elio import Buzzer
import pwmio
import time
buzzer = Buzzer(pwmio.PWMOut(board.IO17, variable_frequency=True))
volume = 100
buzzer.play_tone(329.63, 0.72, volume)
time.sleep(0.1)
buzzer.play_tone(329.63, 0.24, volume)
buzzer.play_tone(392, 0.24, volume)
time.sleep(0.1)
buzzer.play_tone(329.63, 0.24, volume)
time.sleep(0.1)
buzzer.play_tone(293.66, 0.24, volume)
buzzer.play_tone(261.63, 0.96, volume)
time.sleep(0.1)
buzzer.play_tone(246.94, 0.96, volume)
Bravo !
Et voila, ton programme est fini ! Il ne te reste plus qu’à le Téléverser pour écouter le résultat