RGB bi-octopus mood lamp
Les barbus aiment les leds et je le prouve avec ce lustre à 16 leds RGB (d’ou bi-octopus, les polypophiles auront suivi) commandé à l’aide d’une webcam (ça, c’est le coté Jean Michel Jarre).
Matériel mis en oeuvre :
- Un arduino duemilanove
- Un protoshield I²C
- 6 barettes 42
- 3 drivers de led I²C PWM driver
- Un PC
- Un sketch Arduino
- Un sketch Processing
- Nappe 20 brins
- Nappe 10 brins
- 3 Connecteurs 20 points
- 10 Connecteurs 10 points
- 16 leds RGB grand angle anode commune (bientôt dans les bacs)
- 12m de câble téléphonique de récupération (4 fils)
- 16 bombes à eau
Câblage de l’installation :
Les sketches
- Arduino
Le sketch arduino est un classique issu d’un brainstorming tetalabien, on l’appelle le « Z protocol »
Il consiste à attendre de recevoir un message sur le port série au format qui commence par Z suivi par 16 caractères (octets) en hexadécimal qui donnent la valeur de PWM (de puissance) à appliquer sur chacune des 16 leds.
Avec un seule carte PWM I²C driver, un message série de type Z000F000000000000 allumerait la 4ème led a fond, les autres sont éteintes
Je continue, dans la même config, le message Z000F000000800000 allumerait la 4ème led a fond, la 11ème led a 50%, les autres sont éteintes
Dans la configuration à 3 cartes driver, le message sera de la forme Z suivi de 3 x 16 = 48 caractères
Les 16 premiers seront la composante rouge de chaque led, les 16 suivants la composante verte, les 16 derniers la composante bleue
Donc, je veux par exemple :
- la 4eme led en rouge (100% de rouge (= F),
- la 10 en violet (100% de rouge (= F) + 100% de bleu) et,
- la 16 en jaune (100% de rouge (= F) + 100% de vert), il me faudra donc un truc comme…
Note : Le soft arduino se charge d’envoyer successivement aux cartes drivers la valeur au format I²C
Il répartit les 16 premiers octets sur la carte dont l’adresse (obtenue à l’aide des jumpers) est déclarée par
byte address[] = {0×11,0×12,0×13};
Alors maintenant qu’on a compris, voici le code :
- Processing (Big up to Fabrice !!)
Télécharger zprotocolarduino.pde
Visualiser le code sur Gist
Et ça donne çà !!!


