Aller au contenu

SimAudio

SimAudio joue des fichiers WAV depuis la carte SD via l’interface I2S et un ampli MAX98357A.

ComposantRéférence
Ampli I2SMAX98357A breakout
Haut-parleur8 ohm, 2W, 40mm
Carte SDModule SPI
ParamètreValeur
FormatWAV (PCM)
Échantillonnage16 kHz
Résolution16 bits
CanauxMono
Taille moyenne~100 KB par message de 3s
#include <SimAudio.h>
SimAudio audio;
void setup() {
audio.begin(GPIO_NUM_4, GPIO_NUM_5, GPIO_NUM_6); // DIN, BCLK, LRC
audio.setVolume(80); // 0-100
}
void playMessage() {
audio.play("/audio/choc-conseille.wav");
// Non-bloquant — utilise une tâche FreeRTOS sur Core 1
// Vérifier si la lecture est terminée :
if (audio.isPlaying()) {
// ...
}
}

La lecture audio s’exécute dans une tâche FreeRTOS dédiée sur Core 1 :

  • Stack : 8192 bytes
  • Priorité : 2 (au-dessus de la boucle principale)
  • Buffer DMA : 2x 1024 bytes

Cela permet de jouer un message audio sans bloquer l’affichage ou la logique de la machine à états.

// Jouer plusieurs messages en séquence
audio.queue("/audio/analyse-en-cours.wav");
audio.queue("/audio/choc-conseille.wav");
audio.queue("/audio/eloignez-vous.wav");
// Les messages sont joués l'un après l'autre