jeudi 29 novembre 2012

Lecture de fichiers mp3 avec Arduino et VS1053 (première exploration)

Note: Vous devriez plutôt lire cet article plus récent et plus complet, sur le même sujet:


Voici un résumé de mes premières explorations d'un module MP3 VS1053 (ou VS1003) fabriqué en Chine par LCSoft Studio et vendu sur eBay pour une douzaine de dollars environ.   Lorsqu'il est piloté par un microcontrôleur, le circuit intégré VS1053 permet de lire un grand nombre de formats de fichiers musicaux (Ogg Vorbis, MP3, AAC, WMA, FLAC, MIDI):  on peut tout de suite saliver en imaginant une chaîne stéréo de fabrication maison, réalisée au moyen d'un Arduino et de notre propre amplificateur stéréo...  De plus, le module est muni d'un petit microphone permettant, au besoin, d'enregistrer du son.

Je n'en suis pas tout à fait là, toutefois.  Dans un premier temps, je me suis mis à la recherche d'un peu de documentation afin de savoir comment brancher le module à l'Arduino.   Puisqu'il s'agit d'un périphérique "SPI", nous savons déjà que les sorties 11, 12 et 13 de l'Arduino seront sollicitées.

Même si le module demande une alimentation de 5 volts, il semble préférable (et peut-être même nécessaire, pour éviter tout dégât regrettable) que l'Arduino lui envoie des signaux numériques de 3,3 volts:  il faut donc prévoir 5 diviseurs de tension constitués, par exemple, d'une résistance de 2,2K et d'une autre de 3,3K (un diviseur de tension n'est toutefois pas pertinent lorsque le signal va du module vers l'Arduino).

Voici donc le détail des branchements:

VS1053 5 V → Arduino 5 V *
VS1053 DGND → Arduino GND
VS1053 XDCS → diviseur de tension → Arduino 6
VS1053 DREQ → Arduino 7
VS1053 XRST → diviseur de tension → Arduino 8
VS1053 XCS → diviseur de tension → Arduino 9
VS1053 SCK → diviseur de tension → Arduino 13
VS1053 MOSI → diviseur de tension → Arduino 11
VS1053 MISO →  Arduino 12

* Les deux entrées 5 V du module VS1053 communiquent ensemble:  une seule d'entre elles est suffisante.

Vous pouvez consulter ici un schéma montrant clairement comment disposer les diviseurs de tension (toutefois, ce circuit comporte aussi un lecteur de carte SD et les sorties utilisées sur l'Arduino ne sont pas les mêmes).


Finalement, la partie logicielle:  j'ai trouvé cette librairie conçue par Andy Karpov.  Après l'avoir installée dans le dossier "libraries",  j'ai uploadé dans l'Arduino le sketch d'exemple "vs1003_hello":  lorsqu'on branche une paire d'écouteurs dans le jack du module mp3, on entend le mot "hello" répété sans arrêt (le fichier mp3 se trouve à l'intérieur même du sketch).

Ça fonctionne!   Mais ça devient vite irritant, et on espère un peu mieux d'un module à $12...mais ce sera pour la prochaine fois!

Yves Pelletier (Twitter: @ElectroAmateur)

Aucun commentaire:

Enregistrer un commentaire