Jouer un son - Niveau facile
Dans cet exemple, nous allons jouer un son d'une fréquence donnée lorsque l'on appuie sur le bouton A. Nous arrêterons le son lors de l'appui sur le bouton B. Nous allons ainsi voir l'intérêt de la sortie analogique sur la broche A0.
Méthode : Le programme
from adafruit_circuitplayground.express import cpx
FREQ = 880
while True:
if cpx.button_a:
cpx.start_tone(FREQ)
if cpx.button_b:
cpx.stop_tone()
Complément : Explications
Pour utiliser les fonctionnalités intégrées à la carte CPX, nous utilisons la librairie adafruit dédiée par la ligne
from adafruit_circuitplayground.express import cpx
Au travers de l'objet cpx, nous pourrons accéder aux composants de la carte. Voici les méthodes et propriétés disponibles au travers de l'objet cpx. Leurs noms sont explicites par rapport au composant qu'elles contrôlent.
'temperature', 'light', 'detect_taps', 'tapped', 'acceleration', 'shake', '_touch', 'touch_A1', 'touch_A2', 'touch_A3', 'touch_A4', 'touch_A5', 'touch_A6', 'touch_A7', 'adjust_touch_threshold', 'pixels', 'button_a', 'button_b', 'switch', 'red_led', 'play_tone', 'start_tone', 'stop_tone', 'play_file'
Nous utilisons dans ce premier exemple les propriétés button_a
et button_b
ainsi que les méthodes start_tone()
et stop_tone()
pour jouer un son.
Méthode :
Pour exécuter cet exemple,
Branchez la carte sur le port USB
Lancer l'éditeur mu-editor.
Il doit détecter la carte et se mettre en mode adafruit. Contrôlez ceci en bas à droite de la fenêtre de mu.
cliquez sur nouveau puis tapez le programme ci-dessus
enregistrez ce programme dans le lecteur CIRCUITPY avec le nom code.py (ou main.py)
Si tout va bien un appui sur le bouton A déclanchera un son de 880 Hz. Un appui sur B arrêtera ce son.
Attention :
Au démarrage de la carte, CircuitPython recherche un programme portant le nom code.py (ou main.py) et l'exécute automatiquement. C'est pourquoi il est important d'utiliser ce nom particulier, sans quoi votre programme ne se lancera pas.
Conseil : Utiliser la console
l'environnement mu-editor intègre une console accessible via le bouton . Ouvrez cette console afin de voir les éventuelles erreurs dans votre programme. Si un problème est détecté, un message d'erreur apparaîtra avec la ligne concernée. Il vous suffira de corriger l'erreur et de réenregistrer votre programme.
Méthode : Accéder à la console interactive (REPL)
Dans la console série, tapez CTRL-C. Cela aura pour effet d'arrêter le programme en cours. Vous verrez alors le message suivant
Press any key to enter the REPL. Use CTRL-D to reload.
En appuyant sur ENTREE, vous accèderez à la console interactive (REPL) permettant de taper des commandes directement à CircuitPython. Cela peut s'avérer utile pour tester des commandes.
Pour sortir le la console interactive et relancer le programme code.py, tapez CTRL-D
Simulation : Contrôle du signal analogique
On peut contrôler à l'aide d'un oscilloscope que le signal que l'on entend est bien un vrai signal analogique sinusoïdal et pas un signal carré. Il faut pour cela brancher la sonde entre la broche GND et la broche analogique A0.
Le signal obtenu est bien une sinusoïde dont l'amplitude s'étend entre 0 et 3,3V et la fréquence est de 880Hz.
Pour aller plus loin
Il existe deux autres méthodes dans l'objet cpx : play_tone() et play_file().
cpx.play_tone(frequence, secondes)
: permet de jouer un son de fréquence donné pendant un temps donnécpx.play_file("son.wav")
: permet de lire le fichier son.wav
Voici des exemples d'utilisation basique de ces méthodes :
Méthode : play_tone()
from adafruit_circuitplayground.express import cpx
cpx.play_tone(262, 1)
cpx.play_tone(294, 1)
Méthode : play_file()
from adafruit_circuitplayground.express import cpx
cpx.play_file("son.wav")
Il faudra au préalable copier sur la mémoire flash (lecteur CIRCUITPY) le fichier son.wav.
Exemple de projet à réaliser : piano numérique
Ce projet utilise les entrées tactiles - de manière originale ! - pour simuler les touches du piano. Voici ce que ça donne :
Méthode :
Les détails pour réaliser ce projet se trouvent sur le site d'Adafruit :
https://learn.adafruit.com/circuit-playground-express-piano-in-the-key-of-lime/overview