← Retour au journal
Histoire

Rendre la boîte partageable

Le troisième prototype Raspberry Pi : une interface web pour gérer le contenu, une batterie pour le rendre nomade, des boutons pour les histoires interactives. Un système complet, et son code en open source.

Je vous présente le prototype 3 de The Open Music Box : un lecteur audio pour enfants piloté par cartes NFC, et surtout, un système complet et open source que n'importe qui peut reproduire à partir d'un Raspberry Pi.

Mais avant d'ouvrir la boîte, un mot sur le chemin parcouru. Dans l'article précédent, je vous présentais le deuxième prototype et sa grande nouveauté, les playlists, que mon fils adorait parcourir avec les deux boutons en façade. Il restait un point à améliorer : le boîtier était trop compact pour loger une batterie. Toujours branché au secteur, et une à deux minutes d'attente à chaque redémarrage. Le v3 poursuit cette amélioration continue : une version aboutie, prête à remplacer l'ancienne, et cette fois, à partager.
Le prototype fait pour mon fils : structure imprimée en 3D, faces en plaques de bois qu'on a peintes ensemble, et son prénom assemblé avec des lettres découpées au laser collées sur le dessus. Il manque encore le cache du bouton de volume.
Le prototype fait pour mon fils : structure imprimée en 3D, faces en plaques de bois qu'on a peintes ensemble, et son prénom assemblé avec des lettres découpées au laser collées sur le dessus. Il manque encore le cache du bouton de volume.

Une interface pour gérer le contenu

Sur le v2, ajouter une histoire impliquait de se connecter en SSH, déposer les fichiers MP3 dans le bon dossier, démarrer un script pour lancer l'association des cartes pour les nouvelles playlists, puis redémarrer le service. Pas vraiment compatible avec une utilisation familiale...

J'ai donc développé une interface web servie directement par le Raspberry Pi. Depuis n'importe quel téléphone ou ordinateur sur le même réseau, on peut créer des playlists, uploader des fichiers audio, et associer une carte NFC à une playlist. Sans terminal, sans manipulation de fichiers.

L'écran principal de l'interface web : la liste des playlists, chacune avec son tag NFC associé et le nombre de morceaux.
L'écran principal de l'interface web : la liste des playlists, chacune avec son tag NFC associé et le nombre de morceaux.

Tout ce qu'il faut faire, on peut le faire depuis cet écran. La box reflète immédiatement ce qui change côté téléphone, et inversement.

En déroulant une playlist, on voit la liste des morceaux avec leur durée, dans l'ordre de lecture.
En déroulant une playlist, on voit la liste des morceaux avec leur durée, dans l'ordre de lecture.

L'upload se fait par glisser-déposer, fichier par fichier, avec une barre de progression.

Le mode édition : chaque playlist expose une zone de drop pour ajouter des fichiers audio.
Le mode édition : chaque playlist expose une zone de drop pour ajouter des fichiers audio.

L'association d'un tag NFC suit la même logique : on lance le mode association depuis l'interface, on présente la carte au lecteur, et c'est lié à la playlist. Plus de manipulation manuelle d'identifiants.

Le dialogue d'association NFC : on lance l'opération, puis on présente la carte au lecteur de la box.
Le dialogue d'association NFC : on lance l'opération, puis on présente la carte au lecteur de la box.

Une batterie pour le rendre nomade

Côté hardware, le chantier principal du v3 était d'enfin caser une batterie dans le boîtier pour ne plus dépendre du secteur. J'ai donc redessiné l'enveloppe en partant de la batterie : la dimensionner d'abord, organiser tout le reste autour ensuite.

À l'intérieur, une batterie LiPo est connectée à une petite carte qui se charge en USB et bascule en mode autonome quand on débranche. Sur le papier, ça réglait le problème : plus de fil à la patte, plus d'attente au redémarrage.

Sauf qu'à l'usage, la bascule entre l'alimentation USB et la batterie provoque une micro-coupure électrique, ce qui fait redémarrer le Raspberry Pi. Résultat : on a gagné en mobilité, mais le délai d'une à deux minutes reste là.

Pas un drame, on s'organise autour, mais c'est plutôt frustrant. J'ai essayé de rajouter des condensateurs pour lisser le courant, mais je ne suis pas électronicien et ce problème persiste jusqu'à présent.

Des boutons pour les histoires interactives

Pendant la conception du v3, je commençais à réfléchir à des histoires interactives : un récit audio où l'enfant choisit la suite en appuyant sur un bouton. Pour ça, deux boutons en façade ne suffisaient plus, il en fallait quatre, pour un maximum d'interactivité.

J'ai donc placé ces quatre boutons colorés sur le dessus du boîtier. C'est aussi l'occasion d'une meilleure ergonomie au passage : un appui sur le dessus est plus agréable pour l'interaction, ça évite de pousser la boîte quand on appuie dessus.

Le format des histoires interactives est encore en chantier, mais le boîtier est déjà pensé pour les accueillir le jour où ce sera prêt.

Fabriquer le boîtier

Le boîtier final reste sur la même logique que le v2 : une structure imprimée en 3D pensée comme l'ossature d'un cube, des plaques de MDF découpées au laser pour les faces. Ce qui change : les dimensions, les ouvertures des nouveaux boutons sur le dessus, un accès à la batterie par le bas sans démontage complet, et une structure affinée.

Le modèle 3D du boîtier V3, à faire tourner dans tous les sens pour voir le détail des ouvertures et de l'assemblage.

Pour réussir à imprimer cette structure cubique en une seule pièce, il a fallu pas mal de calibrations. Le défi, c'étaient les longs ponts d'un mur à l'autre : il fallait qu'ils se posent proprement sans s'affaisser, et que les supports se retirent ensuite sans laisser de traces.

La pièce critique du boîtier en cours d'impression, posée sur son arbre de supports. C'est ici que se jouent les longs ponts et la propreté du retrait.
La pièce critique du boîtier en cours d'impression, posée sur son arbre de supports. C'est ici que se jouent les longs ponts et la propreté du retrait.

Beaucoup d'impressions sacrifiées avant d'arriver à un rendu propre.

Quatre tentatives successives de la même partie critique : le coin du cube, qui concentre les zones d'insert, les ponts et les tests de supports.
Quatre tentatives successives de la même partie critique : le coin du cube, qui concentre les zones d'insert, les ponts et les tests de supports.

Une fois la structure imprimée, il restait l'autre exercice : faire coïncider les cotes entre les plaques internes qui soutiennent les composants, les pièces imprimées, et les panneaux de bois découpés au laser. Trois techniques de fabrication, trois précisions différentes, à aligner. J'en suis ressorti avec beaucoup de choses apprises sur la calibration d'une imprimante 3D et sur les réglages qui influencent vraiment la qualité finale.

Reproduire le système

Le prototype 3 fonctionne, il tourne tous les jours à la maison. Restait une dernière étape pour qu'il devienne vraiment un projet : le rendre reproductible.

Pour l'instant, c'est surtout l'application qui est disponible : le code est fonctionnel sur GitHub, et un script de configuration prépare automatiquement le Raspberry Pi, de l'installation des dépendances jusqu'au lancement du service. Licence non-commerciale, libre d'usage personnel, éducatif, et de modification.

Explorer le projet sur GitHub
Libre d'usage, fonctionnel, prêt à installer
The-Open-Music-Box/raspberrypi-firmware

Côté boîtier, les fichiers STL et la BOM sont encore en cours de finalisation. Je préfère les publier une fois qu'ils seront vraiment prêts à être suivis. Ça arrive, et je réponds aux questions posées en issue.

Et après

Cette version Raspberry Pi est un point d'arrivée, mais aussi un point de bascule. À l'usage quotidien, il est cher, consomme beaucoup, démarre lentement, et nécessite un système d'exploitation complet pour ce qui reste, au fond, un lecteur audio piloté par NFC. C'est trop pour ce que ça fait. J'ai passé beaucoup (trop) de temps sur ce proof of concept, et il est temps de tourner la page pour des composants plus pertinents.

C'est pour ça que le repo Raspberry Pi est marqué comme déprécié sur GitHub : la suite mobilise toute mon énergie en ce moment, et je la présenterai dans le prochain article.

Cela dit, cette version reste open source, disponible, et utilisable par qui veut s'en emparer. Le code est là, fonctionnel. Les fichiers du boîtier suivront. Si vous fabriquez la vôtre, faites-moi signe.

Newsletter

Restez informés

Laissez votre email pour suivre l'avancement du projet et ne pas manquer le lancement.