Mp3 player shield by Sparkfun / Arduino

mp3PlayerShield02Introduction à l'utilisation du player mp3 pour Arduino.
Le matériel est disponible sur le site du fournisseur Sparkfun.
La carte est fournie assemblée mais dépourvue des connecteurs barrettes femelles dont la longueur est spécifique à la connexion du blindage sur la carte Arduino. elles sont disponibles uniquement sur le site Sparkfun: barrettes 6 pin (x2) / barrettes 8 pin (x2).
Pour commencer à utiliser le shield vous avez besoin d'un carte microSd ( hc ou non) pour le stockage du son et d'un haut parleur ou d'un casque audio.
Il existe différente bibliothèque Arduino pour contrôler le lecteur mp3:
- La bibliothèque officielle mise à disposition par Sparkfun.
- La bibliothèque de Bill Porter qui facilite grandement l'utilisation avec sa documentation.
A noter que le blindage ne fonctionne qu'a partir de la version Duemilanove de la carte Arduino.
1 - Fichier son
La première étape consiste à convertir ses fichiers mp3 en 192kbps, bien qu'il soit possible de définir la fréquence à l'initialisation de la carte grâce à la propriété .setBitRate();
Vous avez ensuite deux possibilité pour nommer vos fichiers;
- soit vous choisissez un nom propre et utilisez la propriété:  playMP3 ("nom du fichier"),
- soit vous nommez vos fichiers track00X.mp3 (remplacez X par un chiffre) et utilisez la propriété playTrack (X).
2 - Intégration des bibliothèques dans la base d'Arduino:
Copier les dossiers des bibliothèques fournies par Bill Porter;  sdFat et SFEMP3Shield dans le dossier libraries de votre dossier d'installation du logiciel Arduino.
3 - Connexion du blindagemp3PlayerShield014 - Exemple de lecture aléatoire de pistes audio:

//Sound Library
#include <SPI.h>
#include <SdFat.h>
#include <SdFatUtil.h> 
#include <SFEMP3Shield.h>

SFEMP3Shield MP3player;
SdFat sd;

int delaySound = 0;
int soundRandom = 0;
int soundVolume = 0;

void setup() {

  Serial.begin(9600);

  if(!sd.begin(SD_SEL, SPI_HALF_SPEED)) sd.initErrorHalt(); // newly required in 1.01.00 and higher
  if(MP3player.begin() != 0) {Serial.println(F("ERROR"));}
  //sd.begin(SD-SEL, SPI_HALF_SPEED);
  MP3player.begin();
  
  MP3player.setBitRate(192);
  MP3player.setVolume(0, 0);
  //MP3player.SetMonoMode(1);
}

void playSound() {
   
  //random sound track of 3 tracks
  soundRandom = 1;
  soundVolume = MP3player.getVolume();
  
  Serial.print("Sound Track: ");
  Serial.print(soundRandom);
  Serial.print(" / Volume: ");
  Serial.println(soundVolume);
  
  MP3player.playTrack(soundRandom);
  //float time = MP3player.currentPosition();
  //MP3player.skipTo(30000);
  //MP3player.pauseDataStream();
  //MP3player.resumeDataStream();
}

void loop() {
  if(MP3player.isPlaying() == 0)
  {
    playSound();
  }
  delay(2000);
}

La limite du shield de Sparkfun est qu'il n'intègre pas d'ampli; alors que la sortie casque fonctionne très bien, il est nécessaire d'ajouter un circuit amplificateur pour utiliser convenablement un haut-parleur.
mp3PlayerShieldAmpli

Le circuit est disponible chez le même fournisseur. Il est mono canal, il faudra donc vous en procurer 2 si vous souhaitez un son stéréo.
Le volume se gère soit par la prog', soit par l’intermédiaire d'un potentiomètre, si vous optez pour ce dernier, vous devrez dessouder une partie du circuit pour rompre la connexion entre les deux ports indiqués sur l'image ci-dessous.
mp3PlayerShieldAmpliPota

Voici enfin le schéma et photo du raccordement au shield mp3
LecteurMp3Ampli_bbmp3PlayerShieldAmpli02

2 réflexions sur « Mp3 player shield by Sparkfun / Arduino »

  1. Bonjour,

    Merci pour ce tuto très clair.

    J’ai un problème autre que j’aimerais éventuellement vous soumettre:
    je dois réaliser un dispositif qui déclencherait une note de musique par un mouvement exercé par un spectateur. Du coup mes questions sont les suivantes:
    – dois-je « empiler » le shield obligatoirement sur l’arduino pour que ça fonctionne? (j’ai déjà mes branchements pour le détecteur)
    – le shield que j’ai est le V1.5. je l’ai relié en SPI avec l’arduino. Cela ne suffit-il pas?
    – Comment activer la carte SD et lancer le son?

    Merci beaucoup…

    Nico

    1. Bonjour @nicolas-robez-masson ,

      j’ai toujours de mon côté empilé le shield sur la Arduino. Pour fonctionner correctement le shield a besoin que les pins digitales 2,6,7,8,9 ainsi que l’alimentation 5v et GND soient reliés à la Arduino, les pins digitales 3,4 sont optionnels mais réservés par le mp3 shield pour son fonctionnement. Enfin les pins 11,12,13 permettent de relier un autre composant par SPI (je pense que ceux sont eux que tu utilises pour relier la Arduino au mp3 shield), mais ne sont pas destinées à la communication entre la Arduino et le mp3 shield.
      Les pins digitales 0,1,5,10 ainsi que toutes les pins analogiques sont libres et peuvent donc être utilisées pour interfacer des capteurs ou autres. C’est ainsi que je procède de mon côté quand j’ai besoin d’interaction capteur/son.
      Il n’y a pas besoin d’activer la carte microSD, si le shield est correctement branché, les mp3 nommées comme la prog le nécessite et cadencées à la bonne fréquence, l’ensemble fonctionne.

      Plus d’info ici:
      https://learn.sparkfun.com/tutorials/mp3-player-shield-hookup

      Bons tests…

Les commentaires sont fermés.