Le BabyBox mp3 est une sorte de boîte à musique pour (petit) enfant qui permet la lecture de fichiers mp3 en appuyant sur des boutons en façade. Les mp3 sont stockés dans une carte microSD amovible.
Contexte :
L'enfant, qui a bientôt 2 ans, adore appuyer sur tous les boutons à sa portée (encore un bébé technicien). Il n'a pas le droit de toucher à la chaîne Hifi, ni aux boutons (très attirants) du four et du lave-vaisselle. Il est très attiré par les livres musicaux, mais les touches tactiles de ces livres sont nulles, les piles se vident super vite, et les extraits musicaux sont très courts, sans parler de la qualité sonore assez médiocre...
L'idée du BabyBox c'est de proposer à chaque boutons le lancement systématique d'un mp3 en lisant une carte microSD via le Module DFPlayer mini connecté à une carte Arduino Uno. (...vous me suivez ?)
On y rajoutera quelques Leds pour le visuel. Chaque appui relance systématiquement la chanson concernée par le bouton (utilisation d'Interruptions multiples et de boutons sympas qui font clic-clic).
Le boitier sera réalisé en impression 3D. Par sécurité la carte microSD sera planquée à l'intérieur du boitier (tout en restant facilement accessible pour un adulte, on a mis deux verrous).
L'alimentation se fera avec un simple transformateur de récupération.
Etape 1 : Le principe
Chaque boutons poussoir va provoquer le lancement systématique d'un mp3 via le Module DFPlayer mini. Pour que chaque appui sur les boutons relance systématiquement la chanson concernée, on va utiliser une astuce publiée par Sébastien Lambot : les Interruptions multiples.
Je vous conseille une lecture détaillée de son article, pour tout comprendre sur le fonctionnement des interruptions de l'arduino.
Pour le module DFPlayer, tout est là.
Les hp sont récupérés sur un ordinateur portable qui partait à la poubelle. Ces hp sont en général déjà amplifiés, on va donc utiliser les sorties DAC_R et DAC_L du module DFPlayer.
Etape 2 : Montage sur platine
Voici le montage sur platine d'essais. C'est la pagaille mais ça fonctionne.
Faites bien attention aux sens des diodes, et n'oubliez pas de calculer vos résistances des LEDs de façade (en général 330 Ohms est une bonne valeur pour des LEDs standard.
Vous voyez sur le schéma que l'on a utilisé les entrées Analogiques A0-A5 en sortie pour les Leds de façade.
Etape 3 : Le programme
Pas grand chose de particulier pour ce programme somme toute assez simple.
Je ne suis pas un grand codeur, j'ai donc largement repris le programme de Sébastien Chambot (au passage bravo et merci !).
Son programme a l'avantage d'ouvrir toute les possibilités pour une modification ultérieure, comme par exemple l'utilisation de la fonction "advertising" du module mp3...
Le comptage du nombre d'appui sur les boutons va aussi être utile pour de futures modifications / améliorations.
On utilise aussi l'exemple de programme du DFPlayer (Sample code "GetStarted"). L'intérêt réside dans le diagnostique en cas de problème : il suffit de connecter le boitier sur l'USB et on peut voir ce qui se passe via le moniteur série.
N'oubliez pas d'installer ces trois bibliothèques :
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
Pour la carte SD vous la formatez en Fat32, vous créez un dossier "mp3" dans lequel vous glissez vos 6 chansons. Il suffit de renommer les mp3s en commençant par 0001titre de la chanson ; 0002 titre de la chanson ; etc...
Etape 4 : Le boitier
Pour la conception du boitier, il faut que la carte SD soit inaccessible parce que j'ai pas envie de tester le système digestif du gamin. On a donc prévu un plateau dans lequel le boitier vient se loger, avec deux verrous en dessous. (Je pars du principe qu'il est encore trop petit pour déverrouiller tout ça avec un tournevis)
Un passage pour le connecteur d'alim, une jolie façade et un interrupteur on/off viennent compléter l'ensemble. Le pdf 3D vous permet de voir l'ensemble des éléments.
Dans l'archive jointe (.rar) vous trouverez les fichiers STL et les paramètres d'impression.
Le pdf 3D vous permet d'avoir une vue d'ensemble des éléments.
Bien sûr le boitier en impression 3D c'est pas obligatoire, on peut très bien faire ça dans un boitier de récup, ça dépendra aussi de la forme de vos boutons poussoirs et de vos HP.
Etape 5 : Mise en place des éléments
Pour le montage final, j'ai tout soudé sur une plaque de prototypage, je conseille l'utilisation de broches : ça permet de tout démonter facilement et ça sécurise les connexions. Vous pouvez aussi tout souder "en dur" mais j'aime bien le côté réutilisable des éléments.
Avec le brochage on peut très bien réutiliser la carte Arduino et le module DFPlayer pour autre chose, et les remettre après.
Etape 6 : Interrupteur on/off
Si vous avez bien suivi, il se pose la problématique de l'interrupteur on/off :
Soit je met un autre connecteur d'alim mais c'est idiot puisqu'il y'en a un sur la carte arduino, soit on met un bouton on/off sur le câble d'alim du transfo mais c'est moche, j'ai donc choisi la bidouille :
Vous chauffez au fer à souder (doucement) la patte du régulateur 5V de la carte arduino (la patte de droite si on a les connecteurs USB et alim en haut). Vous glissez un tournevis très fin en dessous et vous soulevez (délicatement) la patte du régulateur.
Vous soudez deux fils bien étamés (avec de la gaine thermo pour bien isoler), et vous pouvez couper l'alim de la carte à la source. Reste plus qu'à intercaler le bouton on/off et une Led (N'oubliez pas de modifier la résistance, car elle sera soumise à la tension de sortie du transfo et pas aux 5V réglementaires de l'arduino).
J'ai rajouté un connecteur piqué sur une vieille alim ATX qui partait à la poubelle, avec 3 broches et c'est parti mon kiki.
Etape 7 : Mise en fonctionnement et améliorations
Le Baby Box fonctionne bien, la qualité du son est vraiment très correcte et le gamin s'amuse bien à appuyer sur tous ces boutons (même si on commence à en avoir marre de la musique de "petit ours brun")
A l'usage on verra quel type de musique lui plaît le plus, et on s'amusera à inverser l'ordre des mp3 pour voir...
Une petite modif du code permettra également d'utiliser la fonction "advertise" du DFPlayer pour attribuer des sons ou bruitages sur un bouton, qui s’intercaleront dans la chanson en cours. En fait c'est ça qui est bien avec l'arduino : une fois que tout est en place dans le boitier, ça reste évolutif !
beau boulot :=)