Intro

Dans ce tutoriel, nous allons apprendre à utiliser un buzzer avec une carte électronique pour faire de la musique

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

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

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

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

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

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut