Comptine-moi Le Monde ! Une Boite À Comptines Multiculturelles !

by enomarin in Circuits > Audio

195 Views, 5 Favorites, 0 Comments

Comptine-moi Le Monde ! Une Boite À Comptines Multiculturelles !

DSC08701.JPG

Présentation du projet

Comptine-moi le monde ! Est un projet de boite à comptine créée dans le cadre d'une commande de la bibliothèque de Villejean à Rennes.

La bibliothèque mène en 2025 un collectage de comptine auprès des habitants du quartier et souhaites valoriser et diffuser ce travail dans les bibliothèques de Rennes au travers d'un objet ludique, robuste et simple d'utilisation.

Ce projet prends comme inspiration le projet Tonuino, une boite à comptine qui se base sur des cartes RFID pour jouer les comptines.

Le projet devait répondre à la spécification suivante :

  1. Jouer les comptines avec des boutons plutôt que des cartes (12 comptines / 12 boutons)
  2. Pouvoir basculer le son entre les haut-parleurs intégrés et un casque
  3. Un son qualitatif et assez fort, permettant d'utiliser le lecteur avec de petits groupes d'enfants
  4. Une alimentation par pile AA rechargeable afin d'être autonome sur une journée


Important : C'est un projet necessitant un grand nombre d'étape, il est necessaire de lire l'ensemble des étapes avant de commencer la fabrication. Les étapes sont structurés de façon à ne pas alourdir la lecture, certaine (comme l'impression de la boite et la découpe de la façade) peuvent être réalisé conjointement.

Supplies

tang-band-t1-1931s-1-module-tb-speakers-4ohm-pair.jpg
dfplayer.jpg
dfuino.jpg
71g-vaqm2tL._AC_UF894,1000_QL80_.jpg
51kfCXqQoyL._SL1200_.jpg
Capture d’écran 2025-04-28 à 14.25.28.png
IMG_20250408_172237.jpg

Électronique

  1. 2x Tang Bang T1-1931S 3W Speaker
  2. 1x DFRobot DFPlayer Pro
  3. 1x DFRobot Dreamer Nano 4.0 ou tout type de carte arduino avec au moins 12 entrées numériques et 2 entrées analogiques
  4. 1x DFRobot AA Boost Module ou une batterie usb ou un transformateur usb
  5. 12x Boutons de bornes d'arcade 22mm
  6. 1x Embase jack 3,5mm
  7. 2x Piles AA 1,5V rechargeable
  8. Fil électrique

Mécanique

  1. Vis M4 x 10mm
  2. Insert M4
  3. Vis nylon M3 x 10mm

Consommables

  1. 40cm x 25cm de contreplaqué 5mm
  2. 1kg de filament impression 3D
  3. Colle époxy
  4. Colle contact
  5. (Papier à poncer grain 500)
  6. (huile minérale)

Matériel

  1. Soudure : Fer à souder / etain / pince coupante ...
  2. Serres-joints / pinces

Présentation Technique Du Projet

PXL_20250213_101832599.jpg

Le DFPlayer Pro sert à lire les fichiers sons, à partir d'une mémoire interne accessible via le port USB C de la carte.

Le DFRuino Nano gere l'interface entre les boutons et le DFPlayer, il y a donc les 12 boutons d'arcade, le potentiomètre de volume ainsi que le switch situé sur la prise jack permettant de couper les haut-parleurs quand on branche un casque.

Les deux haut-parleurs ont une puissance de 3W et sont dans une boite fermée avec radiateur passif, permettant une bonne restitution des fréquences grave et medium avec une faible puissance audio.

Le AA Boost module est un module qui regroupe :

  1. un porte pile pour deux piles AA
  2. un boost converter permettant de passer de 1,5V à 5V
  3. un switch on/off
  4. deux leds permettant d'afficher le niveau des piles

Impression 3D Du Boitier

Capture d’écran 2025-05-01 à 10.58.05.png

Le boitier a été conçu afin de pouvoir être imprimer sur une Bambulap P1P et donc sur une imprimante avec un plateau de taille standard (25cm x 25cm).

Le boitier comporte 3 parties :

  1. le boitier central qui accueille les boutons et l'électronique
  2. les deux "oreilles" pour accueillir les haut-parleurs 3W

A cela, s'ajoutent les éléments périphériques :

  1. cache piles
  2. bouton de volume
  3. prise casque

Les différents éléments ont été imprimés avec un filament PLA PolyTerra en privilégiant la solidité des périmètres (env. 2mm) et un remplissage de 40%.

L'impression 3D de l'ensemble des éléments prends environ 2 x 7h sur une imprimante Bambulab P1P.

Collage Du Boitier

FQSB5CNM98IGJTS.jpg


Les 3 parties du boitier sont collés avec de la colle époxy bi-composant

Un serre-joint et des pinces permettent de maintenir l'ensemble en place pendant le collage

Pose Des Inserts

FNFZQKVM9ZNU6ZB.jpg

Le boitier comprends 8 inserts M4 à poser, 4 pour visser la face avant et 2 par hauts-parleurs.

Les inserts M4 sont posés à l'aide d'un fer à souder dans les trous prévus à cet effet.

Compartiment Des Piles

IMG_20250408_172339.jpg

La trappe pour les piles, située derrière le boitier est cachée grâce à un couvercle fixé à l'aide d'aimants ronds de 5mm x 1mm. Les 8 aimants sont collés avec de la colle contact.

La carte DFRobot AA Boost module dispose de deux trous de fixation. Afin de fixer la carte de manière à ne pas l'abimer en retirant les piles, il est nécessaire de percer un troisième trou en bas de la carte et de reporter ce trou dans la trappe de pile.

La carte DFRobot AA Boost est fixée à l'aide de 3 vis nylon, afin de ne pas créer de faux-contacts entre les deux faces de la carte percée.

Finition

Pour obtenir un rendu lisse et sans artefacts d'impression 3D, le boitier est poncés à l'aide de papier grain 500 et d'huile minérale afin d'éviter de blanchir le PLA.

Pour ma part j'ai utilisé de l'huile pour moule silicone, mais je penses que toute les huiles minérales transparentes et desodorisé font l'affaire.

Face De La Boite À Comptine

DSC08702.JPG

La face avant est découpée au laser dans du contreplaqué de peuplier de 5mm.

Avant la découpe, il est judicieux de faire un test de gravure ainsi qu'un test de perçage pour avoir le bon ajustement des boutons.

Noir : gravure

Rouge : découpe

Pour la finition, j'ai poncé la face avant avec du papier grain 120 puis grain 500.

La prise casque est collée avec de la colle contact (cyanoacrylate).

Les trous pour les boutons sont conçu pour permettre un assemblage "en force"

Electronique

IMG_20250408_172257.jpg
Capture d’écran 2025-05-01 à 13.24.29.png

1.Carte électronique

La carte électronique, réalisé sur perfboard se compose d'un DFPlayer Pro et d'un DFRuino Nano.

Le câblage "interne" de la carte est réalisé avec du câble à wrapper de 0,6mm

[AJOUTER PHOTO CARTE]

2.Câblage

Le câblage des boutons et des haut-parleurs est réalisés avec du câble silicone

Notes

  1. Vue le nombre de ports présents sur la carte, il n'a pas été jugé nécessaire de câbler le boutons poussoirs en matrice, de plus cela aurait complexifié le code et le câblage.
  2. Le switch entre le casque et les haut-parleurs se fait de manière un peu "bricolé" on mesure la tension de la prise casque avec l'entrée A1, le switch est relié à VREF. Quand on connecte la prise jack, cela deconnecte le switch de la prise casque. La tension mesurée sur A1 devient inférieur à VREF et on peut donc couper les haut-parleurs.

Programmation De La Carte

annotation_carte.jpg

La carte Leonardo est programmé avec l'IDE Arduino.

Le code est assez simple, car il se compose de plusieurs exemples connus et librairies arduino :

  1. La librairie DFRobot_DF1201S pour commander le DFPlayer Pro en série via le port UART
  2. Un debounce des boutons poussoirs avec la librarie Bounce2
  3. Une fonction smooth permettant de lisser les valeurs du bouton de volume

Le code s'initialise avec plusieurs constantes et variables :

  1. buttonPin : les pins associés au 12 boutons sont scannés afin de voir si ils sont appuyés
  2. lastDebounceTime et debounceDelay : le temps depuis lequel le bouton a été appuyé est stocké dans un tableau afin de faire un debounce
  3. volumePin et mutePin : les pins A0 et A1 où sont connectés le bouton de volume et le switch de la prise casque
  4. lastIndexPlayed : dernier bouton joué, ce qui permet de mettre en pause en cas d'appuie sur le même bouton

Afin de ne pas trop pousser l'amplificateur du DFPlayerPro dans ses retranchements, le volume maximum est réduit par rapport à ce qu'il est possible par la librairie. Cela permet de ne pas aller à la saturation de l'amplificateur, ce qui est courant sur les amplificateurs 3W de class D où la puissance maximale est souvent donnée pour un THD (saturation) de 10%.

Le souci majeur rencontré avec la programmation de la boite à comptine a été le delai du lancement d'une comptine due à la fonction DF1201S.isPlaying(). Cette fonction est utilisée afin de pouvoir arrêter la lecture si une comptine est en train d'être lue.

Contrairement au DFPlayer "classique" le DFPlayerPro ne présente pas de pin "busy" permettant de savoir s'il y a une lecture en cours. Il a fallu donc passer par la fonction logicielle DF1201S.isPlaying().

La fonction n'est d'ailleurs pas présente dans la documentation de base de la carte, notamment car c'est une fonctionnalité ajouté à posteriori. Un delai de 2000ms est ajouté dans la fonction isPlaying() car celle-ci repose sur l'usage de DF1201S.getCurTime(), qui donne le temps de lecture en seconde (et non en miliseconde).

Cette méthode pose deux problèmes :

  1. un délai de 2s au lancement de chaque son
  2. la fonction est bloquante, ce qui met en pause l'exécution du programme

Afin de corriger cela, nous avons programmé une nouvelle version de la fonction DF1201S.isPlaying() qui teste en continu si le DFPlayer Pro est en lecture ou en pause. Ainsi la fonction isPlaying mesure toute les secondes si la lecture d'un fichier est en cours, et stocke cet état dans la variable booléenne isPlayingFlag.

// Rewritting of the isPlaying fonction of DFPlayer Pro lib making it non-blocking and changing the delay to 1s
bool isPlaying() {
if (!startMeasure) {
lastMeasure = DF1201S.getCurTime();
startMeasure = true;
isPlayingElapsedMillis = 0;
}
if (isPlayingElapsedMillis > 1000) {
uint16_t newMeasure = DF1201S.getCurTime();
if (newMeasure - lastMeasure != 0) {
isPlayingFlag = true;
} else {
isPlayingFlag = false;
}
startMeasure = false;
}
}


Une amélioration possible du programme serait de passer directement en UART afin de voir s'il est possible d'avoir le temps de lecture en milliseconde, ce qui permettrait de réduire de délai de la fonction isPlaying().

Importation Des Sons

FKEGI9EMAL3GCY9.jpg
Capture d’écran 2025-05-13 à 11.36.33.png

Les sons sont importés en connectant le DFPlayer Pro à l'ordinateur via un cable USB C.

Important : Il est conseillé de ne pas alimenter la boite à comptine lors de la connexion du DFPlayer Pro à l'ordinateur.

Lors que le module est connecté à l'ordinateur, il se comporte comme une clé USB et apparaît dans l'explorateur de fichier sous le nom PLAYER.

Pour importer les sons :

  1. Créer un dossier "sons" dans le DFPlayer
  2. Renommer les sons selon le numéro du bouton sur lequel ils doivent être joués
  3. Exemple pour le 1er bouton, le son doit se nommer 1.mp3
  4. Importer les sons en .mp3 dans le dossier "sons"


Note De Fin

A la suite de la réalisation de ce projet, j'ai pu entrevoir plusieurs amélioration ou suite possible.

D'un point de vue technique, le délai au lancement d'une comptine pourrait être réduit soit par une modification de la librairie de la carte, soit en faisant l'impasse sur la mise en pause de la comptine. Le son est assez satisfaisant au vue des contraintes d'espaces et l'alimentation sur batterie. Quand le son est poussé au maximum, il y a une légère saturation, qui est sûrement du à l'amplificateur de qualité moyenne de la carte ainsi qu'à la vibration du boitier.

Pour ce qui est du design, bien que ça ne soit ici pas le public visé il serait intéressant de travailler sur l'inclusivité de la boite à comptine, notamment auprès d'un public malvoyant en y intégrant des boutons imptimés en 3D pour en facilité l'usage.

Remerciement :

Olivier Schmitt (Médiateur numérique - Bibliothèque Villejean)

Tony Vanpoucke (Fabmanager - Université Rennes 2)

Baptiste Cognec (Stage de Master 2 Création Numérique)