Lettore musicale per schede SD con il modulo ESP32

Riuscire a riprodurre in formato MP3 e altri formati di file, a partire da una scheda SD, oggi è notevolmente più semplice e intuitivo. 

Il progetto del quale vi parliamo in questo articolo è davvero molto interessante, soprattutto per quanti sono appassionati di hobbistica, making e fai-da-te. Parte integrante di ciò che fa funzionare questo dispositivo è l'I2S (Inter-IC Sound), un formato per la comunicazione dei dati audio PCM tra i dispositivi. Oltre all'ESP32 (su Elettronica Open Source sono presenti diversi articoli al riguardo) che rappresenta il nucleo del dispositivo, tra i componenti  troviamo anche una scheda breakout di schede SD e il MAX98357A, che può essere pensato come un decoder I2S combinato e un amplificatore di classe D. L'ESP32 legge i file audio dalla scheda SD e utilizza una libreria audio I2S per inviare il flusso di dati I2S al MAX98357A. Da lì viene decodificato automaticamente e l'audio viene pompato attraverso gli altoparlanti collegati. Il protocollo I2S viene fornito come periferica hardware su molti microcontrollori, è un'interfaccia abbastanza semplice e facilmente "hackerabile". Anche il codice demo per il lettore musicale per schede SD basato su ESP32, non risulta alquanto complicato né estremamente lungo. Come in molti progetti, sia per makers che progettisti elettronici, si utilizza l'ambiente di sviluppo integrato di Arduino (Arduino IDE) per caricare lo sketch (https://www.arduino.cc/en/Main/Software).

Di seguito la Bill of Materials occorrente per realizzare il lettore audio (nei riferimenti a fine articolo, i link relativi ai componenti):

  • 2 MAX98357A
  • ESP32
  • 2 Breadboards
  • 2 Speakers
  • Scheda SD SanDisk da 16 GB
  • Lettore di schede SD

I componenti sono facilmente reperibili sul mercato ad un prezzo economico. In Figura 1 è mostrato il lettore musicale con connessioni e breadboard.

Figura 1. Schema del lettore. Sono visibili le breadboards, l'ESP32, il card reader con scheda SD, 2 MAX98357A, connessioni e speakers

Nel listato seguente il codice demo del lettore audio.

#include "Arduino.h"
#include "Audio.h"
#include "SD.h"
#include "FS.h"

// Digital I/O used
#define SD_CS 5
#define SPI_MOSI 23 // SD Card
#define SPI_MISO 19
#define SPI_SCK 18

#define I2S_DOUT 25
#define I2S_BCLK 27 // I2S
#define I2S_LRC 26

Audio audio;

void setup() {
pinMode(SD_CS, OUTPUT); 
digitalWrite(SD_CS, HIGH);
SPI.begin(SPI_SCK, SPI_MISO, SPI_MOSI);
Serial.begin(115200);
if(!SD.begin(SD_CS))
{
Serial.println("Error talking to SD card!");
while(true); // end program
}
audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);
audio.setVolume(15); // 0...21
audio.connecttoFS(SD,"/Amaze.mp3");
}

void loop()
{
audio.loop(); 
}

RIFERIMENTI

Quickie: Playing MP3's (and other types) on your ESP32 from an SD Card

Pagina Github per la libreria utilizzata

MAX98357A

ESP32

Breadboards

Speakers

Scheda SD SanDisk da 16 GB

SD Card Reader

 

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend