« Boite Histoire » : différence entre les versions

De Kernel Fablab Lannion
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 34 : Ligne 34 :
3 rondelles pour les touches
3 rondelles pour les touches


=== Boîtier ===
Le boîtier est réalisé en PLA. J'ai utilisé deux couleurs différentes, une pour le corps du boîtier (dessus), une autre pour les touches et l'arrière du boîtier. Il faut absolument une couleur différente pour les touches sinon, vous ne les verrez pas !
Le boîtier est réalisé en PLA. J'ai utilisé deux couleurs différentes, une pour le corps du boîtier (dessus), une autre pour les touches et l'arrière du boîtier. Il faut absolument une couleur différente pour les touches sinon, vous ne les verrez pas !
La conception a été faite avec FreeCAD, le fichier est bien sur disponible dans l'archive.
Voici la marche à suivre pour imprimer les touches
# 1
Charger le fichier Boitierv2Dessus+Touches dans votre slicer. Personnellement j'utilise Prusa Slicer.
Retourner le tout pour avoir la face avant sur le plateau
Trancher (sans support)
Indiquer au slicer de s'arrêter après UNE couche pour changer de couleur (soit à 0.4 mm)
Exporter le fichier gcode
# 2
Charger le fichier BoitierV2Dessus dans le slicer
Trancher sans précaution particulière.
Exporter le fichier gcode
#3 Impression des touches
Lancer l'impression avec la couleur choisie pour les touches
Quand l'imprimante indique changement de couleur, <big>abandonner</big> l'impression en cours !!!
Puis charger le second fichier gcode et l'imprimer. La boîtier est imprimé sur la petite surépaisseur des couches, cela se passe très bien.


=== Les touches ===
=== Les touches ===
Ligne 40 : Ligne 58 :
L'ESP 32 possède des capteurs capacitifs que j'ai voulu tester. Par défaut cela me semblait intéressant car très résistant. Le capteur lui même est une simple rondelle de 18mm de diamètre (trou de 6 mais aucune importance) sur lequel on soude un fil rejoignant l'ESP. Au niveau du boîtier, la face avant est un peu plus fine à cet endroit (1mm) au lieu de 3mm,la sensibilité est bonne.
L'ESP 32 possède des capteurs capacitifs que j'ai voulu tester. Par défaut cela me semblait intéressant car très résistant. Le capteur lui même est une simple rondelle de 18mm de diamètre (trou de 6 mais aucune importance) sur lequel on soude un fil rejoignant l'ESP. Au niveau du boîtier, la face avant est un peu plus fine à cet endroit (1mm) au lieu de 3mm,la sensibilité est bonne.


== Logiciel ==
J'ai utilisé Visual Studio Code et platformio pour développer le projet.
Le fonctionnement est relativement simple. Après démarrage le processeur vient tester la carte SD pour compter les histoires présentes.
Ensuite il émet un son signifiant le démarrage.
Pour lire une histoire, il faut appuyer sur la touche Play/Pause. La touche FWD parmet de passer à l’histoire suivante, la touche BACK permet de revenir à l'histoire précédente. Les histoires sont lues aléatoirement, mais la boîte se "rappelle" des dernières histoires lues pour y revenir. De même, le générateur aléatoire évite de revenir aux dernières histoires lues.
A la fin d'une histoire, elle passe automatiquement à une nouvelle histoire, mais ceci est configurable.
=== Réglage du volume ===
J'ai choisi une manière de régler le volume complexe que l'enfant peut difficilement mettre en place. En effet avec sa Lunii, ma petite fille avait toujours tendance à écouter très fort (trop fort).
Pour régler le volume, il faut appuyer pendant 20s sur la touche PLAY (sans interruption). La boîte entre alors dans le mode changement de volume (elle le dit). IL faut alors régler le volume avec les touches FWD (plus fort) et BACK (moins fort) tout en maintenant PLAY appuyé. A chaque appui, le nouveau volume est lu. Quand le volume recherché est atteint, relâcher la touche PLAY pour revenir au fonctionnement normal.
=== Batterie et charge batterie ===
La boîte incorpore une batterie Li-Ion 18650. La batterie doit pouvoir durer environ 40h en fonctionnement. Quand la batterie commende à être déchargée la boîte le dit. Si elle est très déchargée, un second message est lu. Il faut alors recharger rapidement car après quelques minutes la boîte se coupe pour protéger la batterie.
Quand la prise USB de charge est connectée, la boîte le détecte et émet un message vocal. Attention, le câblage du circuit de charge impose que l'interrupteur soit enfoncé (allumé) pour charger la batterie, le message lu l'indique.
Quand la charge est suffisante, un nouveau message vocal l'indique.
=== Interface réseau ===
La boîte est accessible en Wifi pendant quelques minutes (10mn par défaut) après démarrage. Ceci pour éviter de vider trop vite la batterie, mais cette période est configurable.
Elle a pour nom Histoire.local
Pour charger les histoires, elle incorpore un serveur FTP (non protégé) sur le port 21. Les logiciels modernes ont du mal à accepter les FTP non cryptés mais ceci est encore possible notamment avec Filezilla. Ne pas tenir compte des messages d'avertissement. Le processeur n'est pas assez puissant pour un FTP crypté, le transfert FTP est déjà assez long comme cela !
La carte mémoire choisie est de 4Go, c'est largement suffisant pour un grand nombre d'histoires (environ 70 H!)
J'ai également ajouté une interface telnet pour piloter la boîte (mode utilisateur très averti...). Cela permet de configurer la durée Wifi, le fait que les histoires s’enchaîne ou pas....
Au moment de la construction, cela peut également être utilisé pour calibrer les touches.
faire telnet Histoire.local dans un terminal (Linux ou Windows) et vous avez accès à un mode ligne de commande TRÈS simplifié


[[Category:Projet]]
[[Category:Projet]]

Version du 18 mars 2025 à 17:38

Aperçu
Photo boite à histoire

Présentation

Les jeunes enfants adorent souvent écouter des histoires, non seulement pour s'endormir mais également lors de teps de repos ou lors de (longs) trajets en voiture. Ma petite fille est de ceux-là, elle possède une boîte à histoire Lunii. Le produit est plutôt bon, mais relativement fragile (j'ai déjà remplacé le bouton) et ajouter des histoires et assez coûteux.

J'avais déjà réalisé une radio pouvant lire des fichiers MP3 avec un ESP32, je me suis donc mis au travail pour concevoir une boîte à histoires de mon crû. Elle doit posséder les caractéristiques suivantes

  • Être simple à utiliser par un très jeune enfant (à partir de 2 ans)
  • Être robuste, le soin apporté aux jouets n'étant généralement pas leur qualité première (en tout cas pour ma petite fille)...
  • Pouvoir accueillir un nombre d'histoires assez important (au moins 100)
  • Être extensible, ajouts d'histoires simple.
  • Avoir un volume maîtrisé pour ne pas massacrer les oreilles, que ce soit sur haut-parleur ou au casque.
  • Être alimentée par batterie, avec une durée de vie suffisante (au moins 8 à 10 heures) pour les longs voyages.
  • Être d'un coût raisonnable (en tout cas moins cher qu'une Lunii à 70€)

Matériel

L'électronique est basée sur une carte ESP32. J'ai choisi une carte LOLIN D32 Pro. Ces cartes sont de bonne qualité, et le modèle PRO possède un processeur ESP32-S2 qui permet le décodage MP3 même à débit élevé (par forcément nécessaire). La carte accueille en ouhttps://fr.aliexpress.com/item/1005006209483760.htmltre un port TF pour mettre une carte SD et un port de charge de batterie. Comme tout ESP32, le Wifi est bien sûr intégré. L'ESP32 est donc capable de décoder en temps réel un flux MP3, stéréo même si ici ce n'est pas utilisé. La sortie s'effectue via une des 2 interfaces I2S présente sur l'ESP. Un petit circuit MAX98357 se charge de l'amplification.

Liste matériel

Voici la liste des différents composants électroniques LOLIN D32 pro V2 : https://fr.aliexpress.com/item/1005006753478059.html, la version 2 possède l'ESP32 S2 avec 8Mo de flash plus la RAM SPI nécessaire pour le décodage de flux haute qualité MAX98357 : ampli I2S 3W. https://fr.aliexpress.com/item/1005006209483760.html Prise Jack femelle châssis : https://fr.aliexpress.com/item/1005006501723152.html Haut Parleur : https://fr.aliexpress.com/item/1005006827350927.html Batterie 18650 : Interrupteur avec voyant : https://www.amazon.fr/QUARKZMAN-Interrupteur-Bouton-Poussoir-Verrouillage-Diam%C3%A8tre/dp/B0D69PXVTD/ref=sr_1_4 Résistance à ajuster pour le casque : environ 220 ohms Résistances pour détection charge : Environ 100 K ohms Prise USB C : https://fr.aliexpress.com/item/1005008299457563.html Contacts pour batterie : https://fr.aliexpress.com/item/1005005388896399.html 3 rondelles pour les touches

Boîtier

Le boîtier est réalisé en PLA. J'ai utilisé deux couleurs différentes, une pour le corps du boîtier (dessus), une autre pour les touches et l'arrière du boîtier. Il faut absolument une couleur différente pour les touches sinon, vous ne les verrez pas !

La conception a été faite avec FreeCAD, le fichier est bien sur disponible dans l'archive. Voici la marche à suivre pour imprimer les touches

  1. 1

Charger le fichier Boitierv2Dessus+Touches dans votre slicer. Personnellement j'utilise Prusa Slicer. Retourner le tout pour avoir la face avant sur le plateau Trancher (sans support) Indiquer au slicer de s'arrêter après UNE couche pour changer de couleur (soit à 0.4 mm) Exporter le fichier gcode

  1. 2

Charger le fichier BoitierV2Dessus dans le slicer Trancher sans précaution particulière. Exporter le fichier gcode

  1. 3 Impression des touches

Lancer l'impression avec la couleur choisie pour les touches Quand l'imprimante indique changement de couleur, abandonner l'impression en cours !!! Puis charger le second fichier gcode et l'imprimer. La boîtier est imprimé sur la petite surépaisseur des couches, cela se passe très bien.

Les touches

L'ESP 32 possède des capteurs capacitifs que j'ai voulu tester. Par défaut cela me semblait intéressant car très résistant. Le capteur lui même est une simple rondelle de 18mm de diamètre (trou de 6 mais aucune importance) sur lequel on soude un fil rejoignant l'ESP. Au niveau du boîtier, la face avant est un peu plus fine à cet endroit (1mm) au lieu de 3mm,la sensibilité est bonne.

Logiciel

J'ai utilisé Visual Studio Code et platformio pour développer le projet.

Le fonctionnement est relativement simple. Après démarrage le processeur vient tester la carte SD pour compter les histoires présentes. Ensuite il émet un son signifiant le démarrage.

Pour lire une histoire, il faut appuyer sur la touche Play/Pause. La touche FWD parmet de passer à l’histoire suivante, la touche BACK permet de revenir à l'histoire précédente. Les histoires sont lues aléatoirement, mais la boîte se "rappelle" des dernières histoires lues pour y revenir. De même, le générateur aléatoire évite de revenir aux dernières histoires lues.

A la fin d'une histoire, elle passe automatiquement à une nouvelle histoire, mais ceci est configurable.

Réglage du volume

J'ai choisi une manière de régler le volume complexe que l'enfant peut difficilement mettre en place. En effet avec sa Lunii, ma petite fille avait toujours tendance à écouter très fort (trop fort). Pour régler le volume, il faut appuyer pendant 20s sur la touche PLAY (sans interruption). La boîte entre alors dans le mode changement de volume (elle le dit). IL faut alors régler le volume avec les touches FWD (plus fort) et BACK (moins fort) tout en maintenant PLAY appuyé. A chaque appui, le nouveau volume est lu. Quand le volume recherché est atteint, relâcher la touche PLAY pour revenir au fonctionnement normal.

Batterie et charge batterie

La boîte incorpore une batterie Li-Ion 18650. La batterie doit pouvoir durer environ 40h en fonctionnement. Quand la batterie commende à être déchargée la boîte le dit. Si elle est très déchargée, un second message est lu. Il faut alors recharger rapidement car après quelques minutes la boîte se coupe pour protéger la batterie. Quand la prise USB de charge est connectée, la boîte le détecte et émet un message vocal. Attention, le câblage du circuit de charge impose que l'interrupteur soit enfoncé (allumé) pour charger la batterie, le message lu l'indique. Quand la charge est suffisante, un nouveau message vocal l'indique.

Interface réseau

La boîte est accessible en Wifi pendant quelques minutes (10mn par défaut) après démarrage. Ceci pour éviter de vider trop vite la batterie, mais cette période est configurable. Elle a pour nom Histoire.local

Pour charger les histoires, elle incorpore un serveur FTP (non protégé) sur le port 21. Les logiciels modernes ont du mal à accepter les FTP non cryptés mais ceci est encore possible notamment avec Filezilla. Ne pas tenir compte des messages d'avertissement. Le processeur n'est pas assez puissant pour un FTP crypté, le transfert FTP est déjà assez long comme cela !

La carte mémoire choisie est de 4Go, c'est largement suffisant pour un grand nombre d'histoires (environ 70 H!)

J'ai également ajouté une interface telnet pour piloter la boîte (mode utilisateur très averti...). Cela permet de configurer la durée Wifi, le fait que les histoires s’enchaîne ou pas.... Au moment de la construction, cela peut également être utilisé pour calibrer les touches.

faire telnet Histoire.local dans un terminal (Linux ou Windows) et vous avez accès à un mode ligne de commande TRÈS simplifié