Pimp My Souba
Dispositif lumineux audio-reactif
Contributeur·ice·s
Statut du projet
Fonctionnel
Statut de la publication
License
CC-by-sa-3.0
Fichiers source
Machines
Lien
Sommaire
Principe
Le principe de ce projet consiste à faire clignoter un soubassophone en fonction du bruit produit. Une couronne de led RGB adressables est commandée par un Arduino qui est également relié à un microphone fixé dans le pavillon, et plusieurs boutons et potentiomètres pour pouvoir régler différents paramètres.
Démonstration
En gif
En vidéo : https://youtu.be/IUW5gBcJzSY?t=2m16s
Liste de courses
- Les 60 leds adressables sont découpées dans une bande de chez adafruit acheté chez snootlab.
- Le micro est un micro statique préamplifié de chez adafruit aussi. Malheureusement, il s'est montré trop sensible. Il est envisagé de le remplacer par un simple haut parleur d'écouteur.
- Une batterie de secours externe pour smartphone d'une capacité de quelques ampères-heures et délivrant une intensité de 2,1A est utilisé pour alimenter l'arduino via son port USB
Le reste est composé de petits matériels (boutons, potentiomètres), d'une plaque de cuivre à trous et de connecteurs.
Chronologie
C'est un projet fait pour aller vite. Pratiquement, j'y pense depuis plusieurs semaines, mais je n'ai pu m'y mettre que le jeudi de la veille du festival où je voulais le montrer. Ça donne :
- jeudi 14h à 16h : dernières courses (batterie à Leclerc, connecteurs, plaque et fils à E44)
- jeudi 16h à 18h30 : Openateliers, dessin et découpe de la couronne en carton
- jeudi 18h30 à 21h : Découpe, dénudages et soudures des petits fils
- jeudi 22h à 4h : Soudures leds, connecteurs, shield et premiers test
- vendredi 12h à 15h : Programmation arduino dans le minibus pour Montpellier
- vendredi soir : fanfare
- samedi matin et plus : fanfare
- samedi 17h à 19h : montage sur le souba et derniers réglages
- samedi soir : premier concert avec souba Pimpé !
Fabrication
Découpe de la couronne
L'idée de départ était d'utiliser la traces des petits rectangles support de led dans la couronne en carton pour places les leds avant de souder tous les petits fils. Mais finalement il n'a pas été possible de graver dans le carton sans passer au travers, ce qui risquait de fragiliser la couronne.
Finalement, l'empreinte des leds a été découpée dans la couronne, ce qui permet de les placer pour les souder par derrière et aussi de les maintenir bien en place une fois soudé. Merci Philippe pour cette idée lumineuse. Le premier anneaux sans les trous servira à maintenir les leds en places.
Pour faire mes formes, j'utilise la fonction "organiser" puis "par coordonnées polaire" de la version 0.91 d'inskape : très rapide et efficace.
Des petits trous plats à l'exterieurs et des espèces de vagues sont prévues pour tout maintenir avec de la bande élastique mais je ne sais pas encore bien comment.
Le fichier inkscape est disponible dans les sources Fichier:PimpMySouba.zip
Soudures des Leds
Pour découper les 60 leds, il faut d'abord enlever la protection en plastique de la bande, puis un simple paire de ciseaux est suffisante.
La soudures des leds entre elle est la partie fastidieuse du projet : il a fallu découper, dénuder et souder les deux extrémités de 177 fils, soit 354 soudures. Merci Axel !!
Pour les maintenir en place pendant la soudure, Axel à mis en place un ingénieux système à base de serre joint et de plaque en bois flexible.
Circuit
Le circuit consiste principalement à des connecteurs qui relient directement les différents composants jusqu'au bornier de l'Arduino. Les connecteurs sont indispensables parce qu'il est envisagé de changer certains composants à terme et aussi parce que l'ensemble doit être démontable (et le souba se démonte aussi en deux parties).
J'utilise 5 brins d'un fil à 8 brins. J'ai utilisé une plaque de cuivre à trous pour faire mon propre shield Arduino. Durée de l'opération : moins de deux heures en tout.
Une deuxième plaque de cuivre est utilisé pour faire la liaison entre le fil 5 brins venant de l'arduino, la couronne et le micro.
Micro
Le micro est suspendu dans le pavillon du souba (peut être pas assez profondément). Il était beaucoup trop sensible au départ (il saturait dès qu'un instrument jouait à côté). Du coup on lui a mis un peu de mousse et deux chaussettes de la couleur qui va bien. Il ne réagit que quand le souba joue. Par contre il sature directement, pas moyen de mettre des effets lumineux en fonction du volume comme c'était imaginé au départ.
Montage
Les deux couronnes de cartons sont maintenus entre elle à l'aide d'une bande élastique. Très simple et très efficace, démontable, propre. Le seul problème c'est que les trous sont mal foutus pour que la bande ne passe pas devant les leds. Il a fallu ruser.
Pour le montage sur le souba, j'espérais faire ça proprement et démontable mais sans succès par rapport au délais. Tout est donc fixé avec du gros gaffeur noir...
Programmation
Le code Arduino est disponible dans les sources : Fichier:PimpMySouba.zip
Le programme est embarqué dans un arduino UNO. Je voulais utiliser un lilypad mais je l'ai cramé dans un autre projet la semaine précédente.
La librairie neopixels est utilisée. Elle peut s'installer directement depuis l'interface d'Arduino. Les exemples fournis avec la librairie sont suffisant pour comprendre comment ça se passe et commencer à coder ses propres animations.
Le principe du programme Arduino est le suivant :
- Une série de fonctions sert à lire les valeurs des capteurs et boutons qui sont stockées dans des variables globales et donc accessible partout. Elles sont appelé au début de chaque itération.
- Le bouton sert à changer de mode de façon cyclique (mode 0 puis 1 puis 2 puis 0 s'il y a 4 modes), chaque mode correspond à une fonction.
- dans chaque mode, la valeur du potentiomètre est utilisé différemment.
Il y a pour l'instant 4 modes :
- mode 0 : il ne se passe rien
- mode 1 : les leds s'allument en vert en fonction de la puissance sonore à partir d'un seuil défini par le potentiomètre
- mode 2 : une animation est déclenché quand le volume dépasse un seuil définit par le potentiomètre
- mode 3 : une animation qui tourne est lancé. Le potentiomètre sert à définir la vitesse.