Mon fils est fan d’une série animée nommée « Les Octonauts ». Dans cette série, il existe un bouton d’alarme appelé « l’Octo-Alerte » qui est utilisé par le capitaine Barnacles pour avertir son équipage d’un problème. Tous les épisodes ou presque sont l’objet d’un déclenchement de cette fameuse Octo-Alerte et l’alarme sonore qui s’en suit est d’ailleurs ce qui ouvre le générique de la série. N’ayant rien trouvé de satisfaisant dans le commerce, je me suis mis en tête de fabriquer cette Octo-Alerte moi-même. Pour les plus pressés, sautez directement à la vidéo de présentation.
Sommaire
Boîtier, perçages et peintures
C’est Delphine qui a trouvé le boîtier. Une boîte à mouchoir en bois à peindre dénichée chez Cultura. J’ai d’abord fait tous les perçages nécessaires pour les boutons, LEDs et prises. Ensuite Delphine s’est occupé de la partie peinture puis vernissage :
Composants électroniques : Adafruit mon amour !
Beaucoup de composants de cette bidouille provienne d’Adafruit. Et une bonne partie est même conçue par eux. Voilà donc ma petite Ada-liste de courses :
A propos du Shield MP3
J’ai d’abord utilisé un Arduino Leonardo avec le Shield MP3 de chez Adafruit. Je me suis donc fortement inspiré de ce tutoriel pour maîtriser ce shield.
Ne pas faire de polling sur les GPIO pendant la lecture
Je pensais pouvoir utiliser les GPIO du shield pour disposer du nombre d’entrées/sorties nécessaires car l’Arduino Leonardo n’en avait pas suffisamment à lui tout seul. Hélas je me suis rendu compte pendant le développement que ces GPIO ne pouvaient faire l’objet de polling pendant la lecture d’un son sous peine de faire planter le shield. Or je souhaitais que mon fils puisse interrompre un son à tout moment pour en démarrer un autre lors de l’appui sur un bouton. C’est pourquoi je suis passé sur un Arduino Mega où je me suis retrouvé nettement plus à l’aise compte tenu du nombre énorme d’entrée/sorties à ma disposition, toutes interrogeables à souhait pendant la lecture d’un son.
Attendre un peu entre un stop et un start en mode asynchrone
J’ai remarqué que lors d’une lecture asynchrone d’un mp3, si l’on faisait un stop puis un start, il y avait un délai assez important avant la relecture effective du nouveau fichier. J’ai dû en tenir compte dans mon code pour que mon décompte de course reste synchronisé avec les LEDs (cf Vidéo en fin d’article).
Câblage
Alimentation
Je souhaitais que le boîtier puisse fonctionner sur piles aussi bien que sur adaptateur secteur. J’ai donc utilisé un relai 12V pour basculer l’alimentation batterie vers l’alimentation secteur sans que les batteries ne soient soumises à la tension de l’adaptateur secteur.
Boutons et résistances pull-up internes
Pour l’ensemble des 6 boutons (dont celui d’Octo-Alerte), étant donné la faible longueur des câbles, j’ai utilisé les résistances interne de l’Arduino Mega. Hélas, ayant acheté un Mega « à pas cher » ici (10€), il se trouve que certaines entrées avaient des résistances internes dont les valeurs étaient un peu exotiques. J’ai donc dû changer quelques entrées prévues initialement pour que tout fonctionne bien. heureusement, avec le Mega, on a l’embarras du choix pour les entrées. Ma seule contrainte est que je préférais que toutes les entrées/sorties soient sur le même « rail » pour pouvoir me faire un connecteur complet pour faciliter la maintenance.
Le schéma
Assemblage et soudure
Pour illuminer l’Octo-Alerte : NeoPixel Rings et Neopixel Through-Hole
Pour illuminer le bouton d’Octo-Alerte, j’ai retiré la LED d’origine du bouton pour y installer des NeoPixels. J’ai assemblé les 2 NeoPixel rings en série : le out du grand vers le in du petit, puis le out du petit vers le in de la LED centrale. Puis j’ai placé le tout dans le bouton géant du dessus.
Pour le compte à rebours : des LED classiques
Je me suis trompé en achetant mes LEDs (chez les chinois), et j’ai pris des LEDs transparentes. Comme je n’avais plus le temps de commander d’autres LEDs avant l’anniversaire, j’ai simplement passé un coup de papier de verre sur les LED.
Pour le choix des résistances, il a fallu que je tâtonne car même les résistances de même couleurs n’affichaient pas la même luminosité. quelques potentiomètres pour trouver les bonnes valeurs (en restant dans les limites supportables par les LEDs) et zou !
Reste du montage
Code source
Le code source est disponible ici sur GitHub.
Vidéo de présentation
Pour finir une vidéo de présentation du projet d’Octo-Alerte :
Évolution possible
Je compte implémenter un jeu de Simon puisque entre le shield MP3, les NeoPixels et les 4 boutons, j’ai tout ce qu’il faut côté hardware ! Cela fera l’objet d’un prochain billet.
[Edit: Le prochain billet en question est ici : OctoAlert 2.0 : Jeu de Simon et animations]
La classe totale !
je veux le voir marcher en vrai !! :))
Tu as une vidéo en fin d’article en attendant 🙂
ouaip, j’ai vu ! 😉
Sympa c’est timothé qui doit être heureux. Un beau travail en famille, félicitations
Thanks for leaving a comment on my rather smaller scale Octoalert project. I love your Octoalert! C’est formidable 🙂
Thanks for your comment and your tweet ! 🙂
Authentique ! #DIY http://t.co/RuQCZjwv4L
bravo @NicolasLambert
Ping :OctoAlert 2.0 : Jeu de Simon et animations - Bidouilles Factory