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 !

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 :
- Jouer les comptines avec des boutons plutôt que des cartes (12 comptines / 12 boutons)
- Pouvoir basculer le son entre les haut-parleurs intégrés et un casque
- Un son qualitatif et assez fort, permettant d'utiliser le lecteur avec de petits groupes d'enfants
- 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







Électronique
- 2x Tang Bang T1-1931S 3W Speaker
- 1x DFRobot DFPlayer Pro
- 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
- 1x DFRobot AA Boost Module ou une batterie usb ou un transformateur usb
- 12x Boutons de bornes d'arcade 22mm
- 1x Embase jack 3,5mm
- 2x Piles AA 1,5V rechargeable
- Fil électrique
Mécanique
- Vis M4 x 10mm
- Insert M4
- Vis nylon M3 x 10mm
Consommables
- 40cm x 25cm de contreplaqué 5mm
- 1kg de filament impression 3D
- Colle époxy
- Colle contact
- (Papier à poncer grain 500)
- (huile minérale)
Matériel
- Soudure : Fer à souder / etain / pince coupante ...
- Serres-joints / pinces
Présentation Technique Du Projet

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 :
- un porte pile pour deux piles AA
- un boost converter permettant de passer de 1,5V à 5V
- un switch on/off
- deux leds permettant d'afficher le niveau des piles
Impression 3D Du Boitier

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 :
- le boitier central qui accueille les boutons et l'électronique
- les deux "oreilles" pour accueillir les haut-parleurs 3W
A cela, s'ajoutent les éléments périphériques :
- cache piles
- bouton de volume
- 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

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

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

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

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


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
- 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.
- 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

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 :
- La librairie DFRobot_DF1201S pour commander le DFPlayer Pro en série via le port UART
- Un debounce des boutons poussoirs avec la librarie Bounce2
- Une fonction smooth permettant de lisser les valeurs du bouton de volume
Le code s'initialise avec plusieurs constantes et variables :
- buttonPin : les pins associés au 12 boutons sont scannés afin de voir si ils sont appuyés
- lastDebounceTime et debounceDelay : le temps depuis lequel le bouton a été appuyé est stocké dans un tableau afin de faire un debounce
- volumePin et mutePin : les pins A0 et A1 où sont connectés le bouton de volume et le switch de la prise casque
- 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 :
- un délai de 2s au lancement de chaque son
- 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.
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().
Downloads
Importation Des Sons


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 :
- Créer un dossier "sons" dans le DFPlayer
- Renommer les sons selon le numéro du bouton sur lequel ils doivent être joués
- Exemple pour le 1er bouton, le son doit se nommer 1.mp3
- 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)