[Arduino] TonUINO – La boîte à chansons DIY

[Arduino] TonUINO – La boîte à chansons DIY

J’ai réalisé une boîte à musique et histoires pour enfants basée sur le code open source « TonUINO » de Thorsten Voss : https://www.voss.earth/tonuino.

C’est un projet personnel, dans la mesure où il est destiné à ma fille, mais il devrait intéresser des parents un peu bricoleurs et a fortiori des fablabs ou des lieux avec un intérêt pour la fabrication numérique comme certaines médiathèques.  Le projet est d’ailleurs assez ouvert pour s’adapter à différents contextes et publics. Le coffret en bois et l’impression 3D utilisés ici ne sont pas indispensables. Le réceptacle peut aussi être un doudou, une boîte recouverte de feutre ou un vieux magnétophone. Hormis le haut-parleur, la batterie et les quelques composants électroniques, seul un fer à souder est nécessaire. Pourtant, quel que soit le niveau de personnalisation envisagé (choix d’un design, des composants, assemblage ou programmation de nouvelles fonctionnalités), concevoir un TonUINO est toujours formateur : passer de l’idée à la fabrication d’un objet déboulonne notre rapport passif aux produits et rassure sur notre capacité à agir sur le réel !

Plutôt qu’une méthode pas à pas pour reproduire un projet déjà bien documenté (certes en allemand), je voudrais avec ce billet simplement faciliter sa diffusion auprès des makers francophones. Il en existe d’autres assez similaires comme la PhonieBox, aussi en licence libre, et basée sur un Raspberry. Mais l’Arduino, avec sa consommation réduite et son démarrage très court, est plus adapté, en tout cas dans ce projet sans connexion internet.

Le principe est très simple : il suffit de poser une puce RFID préalablement configurée sur le dessus de la boîte pour que le contenu audio (histoires, musiques), stocké sur une carte MicroSD, soit diffusé. Les contenus sont enregistrés par l’utilisateur avec la possibilité évidente d’enregistrer ses propres histoires et de mettre à contribution la famille comme avec cette cassette des “Histoires de Papy” !  

Rappelons aussi que la copie d’une œuvre à titre privé est légale lorsqu’elle est réalisée à partir d’une source licite (emprunt dans une médiathèque par exemple) et par un moyen de copie privé (ordinateur personnel). 

Les composants du projet sont quasi identiques à Spot, le jukebox RFID que j’ai conçu il y a quelques années. L’avantage de TonUINO réside dans sa large communauté (essentiellement germanophone donc) et sur son code qui inclut de nombreuses fonctionnalités dont l’écriture des étiquettes RFID. Pour associer une étiquette RFID vierge à un album ou à un titre audio, il suffit de la poser sur le lecteur. Une voix synthétique en français (à condition d’utiliser les fichiers audio mentionnés plus bas…) vous indique alors : « C’est une nouvelle carte ! ». Et ensuite on peut, en écoutant les consignes audios qui invitent à utiliser l’un des 3 boutons, naviguer dans les répertoires de la carte SD pour choisir un album ou un titre. L’intégration de nouvelles étiquettes est ainsi facilitée ! Ensuite la voix vous demande de choisir un mode de lecture : “radio” pour une lecture aléatoire sur un dossier ou “album” pour une lecture intégrale. Il existe d’autres modes de lecture :  

  • “Livre audio” qui mémorise les chapitres pour reprendre là où on s’est arrêté 
  • “Sommeil” qui éteint automatiquement le TonUINO à un moment défini 
  • “Stop danse” qui crée des pauses aléatoires pendant une musique 
  • “Ecole maternelle” pour éviter des querelles, les nouvelles cartes ne passent pas avant que le titre actuel soit terminé. 

Après validation du mode avec le bouton central, la voix vous confirme que la carte est bien programmée.
D’autres options comme le volume maximum ou la possibilité de reconfigurer une carte déjà utilisée sont accessibles via le menu administrateur. On accède à ce menu en appuyant simultanément sur les 3 boutons ou, plus pratique et sûr, au moyen d’une carte RFID administrateur. 

Finalement, ce projet n’a rien à envier à des solutions commerciales de surcroit plus onéreuses ! Il existe même une application Android pour programmer les cartes.  Concernant le tarif, l’ensemble des composants indispensables coûte une cinquantaine d’euros (Batterie : 14€, HP : 12€, Composants achetés en Asie : 24€) auquel j’ai ajouté un coffret en bois Casani à 8€.
Sur la page officielle du projet, vous trouverez toutes les informations : la liste du matériel, un schéma de connexion et la partie logicielle. Après avoir installé 3 bibliothèques Arduino (MFRC522, DFPlayer Mini Mp3 by Makuna et JC_Button), il vous faudra téléverser le fichier « Tonuino.ino » à récupérer sur le Github original.

Matériel de base :

  • un Arduino Nano
  • un lecteur MP3 DFplayer mini
  • un module RFID RC522
  • un haut-parleur d’une impédance de 4 à 8 ohms (j’utilise un Visaton FRS 8)
  • une batterie (J’utilise l’Intenso Powerbank PM5200) 
  • une carte Micro SD (maximum 32 Go)
  • 3 boutons (j’utilise des bouton-poussoir en métal de 16mm de marque Jotta) 
  • des câbles jumper ou autres, une résistance 1K, un interrupteur à bascule avec LED (12v) 
  • un lot de puces RFID (j’utilise des étiquettes autocollantes Ntag 213 en 26mm)

En option :

  • une extension pour carte MicroSD
  • une prise USB pour montage sur panneau
  • 4 boulons M4 en lien avec 4 inserts filetés M4 
  • 4 boulons M3 et écrous pour maintenir le HP 
  • un câble USB micro vers USB A pour la batterie 
  • un câble USB mini vers USB type A pour relier l’Arduino à l’interrupteur 
  • 6 baguettes en bois fixées avec un pistolet à colle chaude (dont 4 percées pour les inserts)

Le DFPlayer Mini possède déjà un petit amplificateur mono qui permet d’alimenter directement un haut-parleur passif.
Note : Le créateur vend aussi une carte électronique facultative qui permet de relier les composants de manière plus professionnelle ainsi qu’une carte “tout-en-un ». 

Chaque TonUINO est unique !

Certains utilisent des boites à mouchoirs en bois ou recyclent des caissons de HP, d’autres conçoivent des designs en 3D recouverts de feutrine. De plus, certains makers ajoutent des fonctions high-techs comme le tactile, la détection de mouvement avec des capteurs gyroscopiques ou encore la recharge sans contact… La communauté Github est assez dynamique de ce point de vue. La conception artisanale et la personnalisation jusque dans le choix des composants aboutit à une infinité de déclinaisons que l’on peut observer sur ce fil de présentation des nouvelles constructions. 

Je me lance donc avec cette version inspirée du design de Hijack basée sur une boite en bois de hêtre « Casani » (distribuée par Boesner) avec une différence de taille puisque seule la version en profondeur 60mm est disponible en France (dimensions : 150x150x60). Celles de Hijack ont une profondeur de 90mm. J’ai fait arrondir les angles (merci Michel !) et passé une couche d’huile protectrice.
J’ai aussi repris le principe d’un cache en tissu mais il ne recouvre pas la totalité du boitier comme dans la version de Hijack car j’ai préféré positionner les boutons de contrôle à l’avant. La difficulté à faire tenir mes boutons dans cette épaisseur de bois explique aussi ce choix ! J’ai donc modélisé une plaque qui soutient à la fois le haut-parleur et les boutons. Concernant les commandes, c’est un modèle 3 boutons (une version 5 boutons est aussi prévu dans le code de Thorsten avec les commandes de volume bien distinctes ou un potentiomètre). Le bouton central permet la pause et la reprise de la lecture tandis que les 2 boutons extérieurs permettent soit de baisser/augmenter le volume par un appui court, soit d’aller à la piste suivante/précédente par un appui long.

J’avais prévu une signalétique en stickers découpés pour ces boutons mais ma fille ne m’en a pas laissé le temps et se débrouille sans…

Autre différence, nécessaire pour la compréhension des menus : la traduction en français des fichiers d’annonces avec un outil de synthèse vocal comme Text2speech. Un certain “Nanos” a déjà réalisé ce travail qu’il partage via ce lien. Il faudra simplement remplacer les dossiers “advert” et “MP3” du projet de Thorsten. 

Pour ajouter de nouveaux fichiers MP3 ou WAV, il faut connecter la carte MicroSD à un ordinateur. L’accès à cette carte se fait assez simplement en retirant le cache textile. Attention à bien renommer les fichiers : le DF Player ne reconnaît que les 3 premiers caractères du nom : 001.mp3 à 255.mp3. Ces fichiers audio doivent être placés dans des dossiers (équivalent d’un album) de 01 à 99 à la racine du disque.
Ce cache imprimé en 3D et recouvert de tissu permet de protéger le HP mais aussi la carte MicroSD accessible grâce à une extension. Autrement, à la merci des petites mains curieuses, elle serait rapidement extraite… La fixation du cache a fait l’objet de 2 prototypes pour aboutir à une solution à base d’aimants (4 disques néodymes en diamètre 0.8) qui se positionnent en face des vis de fixation du HP. Il faut faire levier avec un outil plat pour le détacher.

Au dos de la boîte se trouve un interrupteur avec une diode intégrée qui délivre juste assez de courant pour éviter que la batterie ne s’éteigne au bout de quelques minutes (un problème récurrent des projets alimentés par ce type de batterie…). On y trouve aussi l’embase USB pour recharger la batterie avec un chargeur classique de téléphone. Pour relier le câble USB à l’interrupteur à bascule à 3 pattes, il faut le couper pour ne garder que les fils rouges (5v) et noirs (Masse) à relier comme ceci : les 2 noirs sur la patte dorée, le fil rouge de l’Arduino sur la patte du milieu, le fil rouge de la batterie sur la patte restante.
Pour accéder à l’intérieur de la boîte afin de modifier le programme Arduino, il faut dévisser la plaque principale qui supporte aussi les 3 boutons. Elle est posée sur des entretoises en bois collées avec de la colle chaude qui accueillent les boulons grâce à des inserts filetés à bois. Pour minimiser les soudures, j’ai utilisé une carte d’extension pour le Nano avec des connectiques à visser. Je me suis ainsi contenté de souder les bornes du module RFID,  la résistance 1k, les câbles USB à l’interrupteur et les masses entre elles. L’intégration est perfectible mais tout rentre dans ce petit espace ! J’essaierai d’optimiser cet aspect dans une prochaine version…

En l’état, avec le HP Visaton, la qualité du son est assez surprenante au vu de la taille de la boîte !

Des cassettes à personnaliser 

Les cartes contenant les puces RFID peuvent être personnalisées pour correspondre au contenu et permettre à l’enfant de les distinguer. J’ai ainsi modélisé des cassettes à imprimer en 3d avec deux “fenêtres” : une avec le titre et l’autre plus grande avec le visuel. 

Le principe du jukebox RFID est de rendre tangible de l’audio numérisé. Avec ces cassettes relativement épaisses et aux bords arrondis, la dimension physique est plus évidente. On retrouve (ou plutôt l’enfant découvre), d’une certaine manière, des sensations que l’écoute en streaming n’offre pas et notamment les limites d’une collection qui invite à la réécoute. Autre avantage pour un système audio qui a vocation à résider dans une chambre d’enfant (mais pas dans un lit), le TonUINO, en tant qu’objet non connecté, ne collecte aucune donnée personnelle.

N’hésitez à me faire part de vos réalisations si vous essayez de reproduire un TonUINO. De mon côté, j’ai trouvé ce projet très intéressant d’autant plus qu’il a une utilité au quotidien !

Cette boîte musicale a en effet un grand succès auprès de ma fille qui semble avoir gagné en autonomie. Bien qu’elle n’ait pas encore 3 ans, l’âge recommandé pour ce type d’appareil, elle adore allumer sa boîte et mettre de la musique par elle-même. En grandissant, elle devrait y trouver encore plus d’intérêt avec la découverte des contes et chansons…
Autre point positif, en un mois d’utilisation quasi-quotidienne, je n’ai eu à recharger la batterie qu’une fois.

36 Comments

  1. Bonjour,
    Merci pour cet article bien détaillé ! Serait-il possible d’avoir le fichier qui vous a servi a l’impression de vos cassettes ?
    Merci beaucoup !

  2. g_ak

    Bonjour,
    merci d’avoir partagé ce chouette projet.
    Je trouve intéressant votre alternative qui minimise les soudures (comparé à l’original).
    Serait-il possible d’avoir une photo des éléments connectés entre eux hors de la boîte svp ? Notamment, connexions Arduino-lecteur MP3 et Batterie-Cable USB-Bouton bascule.
    Merci.

      • g_ak

        Bonjour,
        merci les photos. Elles m’intéressaient car je voulais comprendre le branchement de l’embase USB qui permet de recharger la batterie. J’avais été voir le projet original (en allemand) et ça n’y figurait pas. C’est un peu plus clair maintenant.
        A bientôt

  3. Chloé

    Bonjour, serait-il possible d’avoir des précisions concernant les fournisseurs des composants ? avez vous trouvé un fournisseur pour tous les composants ?
    Merci!

    • jean

      Bonjour Chloé, pour ce projet personnel, j’ai passé commande auprès de vendeurs via AliExpress. Certains composants comme la « prise USB pour montage sur panneau » et « l’extension pour carte SD » ne sont pas, il me semble, au catalogue des fournisseurs français. Il est toutefois généralement possible de demander un devis personnalisé hors catalogue moyennant un surcoût… Bien à vous

  4. Yoam

    Hello, merci du retour sur ce projet ! Joli boitier aussi 🙂

    La doc du projet Tonuino est assez chaotique mais j’ai quand même réussi à plus ou moins tout faire fonctionner… Sauf les stickers Ntag 213 que j’ai pris un peu de manière aléatoires et qui visiblement n’étaient pas compatibles.

    Auriez-vous par hasard le lien vers la page aliexpress pour les stickers RFID ? Histoire que j’achète des compatibles cette fois ci.

    Merci !

    • Jean

      Bonjour, merci pour votre commentaire. J’ai pris des Ntag213 il y a longtemps sur zipnfc : https://zipnfc.com/nfc-stickers.html Etes-vous certain que les vôtres ne sont pas compatibles ? Avec le badge généralement fourni avec le module rfid cela fonctionne ? Sinon testez vos Ntag sans le Tonuino avec l’exemple basique fourni dans Arduino : Files->Examples->MFRC522->DumpInfo

      • Yoam

        Merci de votre aide et du lien. Votre achat semble relativement similaire au mien (https://fr.aliexpress.com/item/1005005572349637.html?spm=a2g0o.order_list.order_list_main.11.70d85e5bc7aUko&gatewayAdapt=glo2fra).

        Avec le badge et la carte fournis tout fonctionne correctement pourtant. Mais pour mes stickers rien a faire en passant par le processus Tonuino 2.1 ; il semble y avoir une erreur lors de l’écriture après le choix de la piste (pcd_authenticate () failed: timeout in communication.)

        Cependant j’ai réussi à trouver un workaround sans devoir creuser dans le code source : il me suffit d’écrire sur les autocollants en passant par l’application TonUINO NFC Tools ! Finalement c’est presque plus pratique comme cela.

        Enfin, un dernier feedback (cela peut-être pratique à savoir pour les lecteurs du futur) : j’avais un problème de grésillement du speaker + coupure lorsque le volume était trop fort. Il semblerait que cela soit à cause du Nano qui a du mal à fournir le 5V au DFPlayerMini. En branchant le DFPlayerMini directement sur le 5V + GND de la batterie, tout est désormais clean 👍

  5. Mimi

    Bonjour, très beau projet merci pour les explications.
    La plaque principale qui supporte les trois boutons et le haut parleur est aussi une impression 3D ? est-il possible d’avoir le fichier svp? merci beaucoup!

    • Mimi

      ah pardon je n’avais pas vu que c’était avec les STL des cassettes juste au dessus.

  6. Julien DUNAND

    Wahou, je suis fan de ce projet. Bientôt Noël c’est parfait. Merci beaucoup 🙏

  7. Virginie

    Bonjour,
    Merci pour votre article très clair. Je suis attirée par la tech utilisée par tonuino qui me paraît efficace et peu coûteuse. J’aimerais l’utiliser pour mon projet, qui est très proche de ce que tonuino propose mais j’aimerais enlever tout le coté guidage voix. J’aimerais faire quelque chose de plus simple : simplement lire un son quand on pose une carte sur la machine, et avoir un bouton pause et un bouton volume. J’ai pas mal exploré le forum mais tout est en allemand alors avant de me lancer j’aurais aimé savoir s’il était facile de désactiver tout le côté voix dans le code ?

    Merci !

    • Jean

      Merci pour votre commentaire.
      Pour vous répondre rapidement, cela doit être possible mais retenez que l’assistance vocale est surtout utile côté admin car elle permet de faciliter l’intégration de nouvelles cartes. Sans elle, vous allez devoir entrer l’identifiant de chaque étiquette rfid dans le code Arduino pour l’associer à un titre MP3. C’est l’un des intérêts du projet Tonuino. Autrement, n’hésitez pas à explorer d’autres projets similaires de type jukebox qui associent Arduino et modules MP3+RFID.

  8. amischler

    Merci pour votre retour d’expérience très intéressant sur le TonUINO.
    Quand vous parlez d' »un interrupteur avec une diode intégrée qui délivre juste assez de courant pour éviter que la batterie ne s’éteigne au bout de quelques minutes (un problème récurrent des projets alimentés par ce type de batterie…) », voulez-vous dire que l’Arduino consomme tellement peu qu’il ne permet pas de maintenir la batterie allumée et qu’il faut nécessairement un interrupteur avec diode pour que la consommation soit suffisante et que la batterie ne s’éteigne pas automatiquement ou ai-je mal compris ?

  9. Vincent B

    Bonjour Jean,
    Merci pour ce partage et ces explications complètes. Mon petit garçon est conquis, même si j’ai encore un soucis à régler. J’ai fait un montage vraiment similaire au vôtre, sauf que ce sont les boutons qui sont pourvus de LEDs et non l’interrupteur, afin de consommer un peu et de maintenir l’alimentation système(j’ai fait un max de récup), le Powerbank reste bien allumée une fois que le système est lancé.
    Cependant au démarrage, il semblerait que le courant initial soit insuffisant à faire démarrer la batterie. Avez-vous déjà rencontré ce problème?

    • Jean

      Bonjour Vincent, merci pour le commentaire. Je n’ai pas rencontré ce soucis. Vous utilisez la PM5200 ? Pour info, l’interrupteur que j’utilise est un modèle classique 12V 20A avec 3 broches. Autrement, vous trouverez peut-être une solution dans le forum officiel : https://discourse.voss.earth/search?q=powerbank

      • Vincent B

        Bonjour Jean,
        Merci pour votre retour. J’utilise bien la PM5200. Je vais continuer mes recherches de solution.
        Bonne continuation 👍

  10. laurent

    Bonjour
    Je débute , j’ai acheté le matériel , monté le tout, installer Arduino IDE, télécharger le dossier GitHUb, ouvert le fichier .ino, telecharger les 3 bibliothèques indiquées, réglé le arduino nano, ATmega…’ COM3, et quand j’essaye de telecharger il me met erreur de compilation ! il y a un truc que j’ai raté ?

  11. Jean

    Bonjour, Est-ce que vous pouvez donner plus de détail sur cette erreur ? Une erreur de type « avrdude: stk500… », si c’est votre cas, indique souvent un soucis de liaison série/USB, COM, ou simplement le cable à changer. Si vous utilisez un clone d’Arduino, il vous faut peut-être installé le pilote CH340…

    • laurent

      Merci pour la réponse, le kit vient de chez AZD, et le cable est bon j’ai vérifié.
      le message d’erreur est trop grand pour être copié en entier, il se termine par

      uint16_t errorCode

      • jean

        Bonjour, désolé pour le délai de réponse… Arrivez-vous à téléverser un des programmes basiques de type « Blink » pour tester. Sinon, c’est possiblement la liaison USB-série qui est en cause. AZD vend des cartes avec la puce soudée type CH340. Selon votre Windows, il vous faut généralement installer un pilote de ce type. https://tropratik.fr/comment-programmer-la-carte-nano-ch340g-avec-larduino-ide

  12. laurent2

    Merci pour la réponse, le kit vient de chez AZD, et le cable est bon j’ai vérifié.
    le message d’erreur est trop grand pour être copié en entier

  13. Louty

    Bonjour, merci pour ce DIY,

    j’ai une question concernant RFID RC522. Dois-je avoir plusieurs carte pour avoir plusieurs cassette? et je ne comprend pas comment votre conteuse lit l’histoire. La cassette doit elle etre poser sur la boîte?

    Desolée des questions mais j’aimerais comprendre.

    Merci d’avance pour votre retour

    • Jean

      Bonjour, désolé pour le délai de réponse… Non, un module rfid permet de gérer toutes vos étiquettes ou cassettes. On pose une cassette sur la boîte (un simple survol suffit aussi, pas besoin de la laisser dessus) et la lecture se déclenche.

  14. Yoann

    Bonjour,
    Je viens de tomber sur votre article, je le trouve génial et j’aimerai bien me lancer dans ce projet ! Merci de l’avoir partagé

    Par contre, j’ai une question. J’aimerai faire une boîte de musique de ce même style mais que les disquettes correspondent à une chanson ou seulement un album. Est ce possible ?

    Merci d’avance

  15. Jean

    Bonjour et merci pour votre commentaire. Oui, le projet est très souple. Le fonctionnement par défaut consiste à associer une puce à un album complet ou à un seul titre à votre convenance.

    • Yoann

      Merci beaucoup pour le retour. Je vais tenter l’expérience 🙂

  16. Information

    Bonjour,
    J’ai été sur le site, mais étant nul en Allemand j’ai essayé de traduire la page.
    J’ai vu qu’il y avait la possibilité d’acheter directement le kit arduino. Je voulais savoir, tout est précablé ? Ou il y a le matériel qu’il faut et c’est à nous de tout brancher ?
    Je vous remercie d’avance !

      • Jean

        Bonjour, il y a effectivement un partenariat avec un distributeur (AZDelivery) mais qui consiste simplement en un lot de matériel incomplet (a priori Arduino Nano, lecteur MP3 et RFID). Tout est à câbler (les câbles ne sont pas fournis) et il faut toujours construire un boîtier, ajouter une batterie, des boutons, souder, flasher l’Arduino… Un temps, Voss Earth vendait une carte « All in One » mais ce n’est plus le cas.

  17. Bonjour,

    Les liens vers les supports d’impressions sont KO, serait-il possible d’avoir ceux que vous aviez fait pour le couvercle ? (le cache + le support pour le tissu) ?
    Merci par avance

  18. Infos

    Bonjour,
    Avez vous un tutoriel français et des liens pour tout le matériel ? Car je ne sais jamais si j’ai tout dans mes paniers…
    Merci d’avance

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *