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éthodeLe programme

1
from adafruit_circuitplayground.express import cpx
2
3
FREQ = 880
4
5
while True:
6
    if cpx.button_a:
7
        cpx.start_tone(FREQ)
8
    if cpx.button_b:
9
        cpx.stop_tone()

ComplémentExplications

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.

ConseilUtiliser 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éthodeAccé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

SimulationContrô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éthodeplay_tone()

1
from adafruit_circuitplayground.express import cpx
2
3
cpx.play_tone(262, 1)
4
cpx.play_tone(294, 1)

Méthodeplay_file()

1
from adafruit_circuitplayground.express import cpx
2
     
3
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