Système d’ambiance lumineuse pour écran
Statut: Projet réalisé à titre privé
Temps de réalisation: Environ 6 heures.
Matériel: Un pc media center, un Arduino UNO, une alimentation 5v (ampères selon le nombre de LEDs) et des LEDs RGB équipées de contrôleur WS2801 utilisées pour les décorations de Noël (p. ex: http://www.adafruit.com/products/322).
Logiciel: OpenELEC ou XBMC, Adalight (LEDstream) et Boblight.
Difficulté: Moyenne
Présentation:
Ce système est inspiré de la technologie Ambilight de Philips. Cette technologie permet via l’analyse du flux vidéo, de contrôler des sources lumineuses positionnées de part et d’autre de l’écran.
La solution retenue s’appuie sur les projets Boblight et Adalight pour la partie logicielle. La partie matérielle, est quant à elle composée d’une carte Arduino UNO, une alimentation 5v et de LEDs RGB équipées d’un contrôleur.
Le but de ce projet est d’équiper un écran de 127cm de diagonale branché à un media center tournant sous OpenELEC (XBMC).
Réalisation:
Le nombre idéal de LEDs dépend de la taille de votre écran. Ce qu’il faut retenir, c’est que plus il y a de LEDs, meilleur sera le résultat. Idéalement, les LEDs doivent êtres espacées entre 7 et 3 cm. Le placement de l’écran par rapport au mur a aussi son importance pour une bonne diffusion de l’éclairage.
La partie la plus “bricolage” consiste à trouver un moyen de fixer les LEDs sur le pourtour de l’écran. Dans mon cas, j’ai eu de la chance, mon écran est truffé de grilles d’aérations. J’ai donc pu fixer les 50 LEDs directement à l’aide de brides:
Certains préféreront un montage plus propre, sur un cadre par exemple:
Remarque: ici, les LEDs utilisées sont en ruban.
Ensuite il faut programmer le micro-contrôleur de l’Arduino. Pour ce faire il faut télécharger l’IDE d’Arduino et charger le programme LEDstream sur la carte Arduino.
Ceci fait, effectuer le câblage entre l’Arduino, les LEDs et l’alimentation. Point important à prendre en compte, répartir les alimentations électriques des LEDs afin qu’il n’y ait pas de trop d’ampères à faire passer le long du câblage et que la luminosité soit uniforme.
Le boîtier utilisé est ancienne boîte pour cartes de visite.
Exemple pour 50 LEDs:
Exemple pour 100 LEDs:
Brancher les câbles du bus SPI sur l’Arduino: “SPI clock” sur la broche 13 et “SPI MOSI” sur la broche 11. Ne pas oublier de brancher aussi la terre (GND) et de relier L’Arduino en USB au media center.
Dernière étape, la configuration de Boblight. La configuration s’effectue via le fichier “boblight.conf”. Ce fichier contient les informations sur le type de périphérique de sortie , le nombre de LEDs ainsi que leur positionnement autour de l’écran. Les explications de configuration de Boblight se trouvent ici.
Extrait de ma configuration pour la partie “device” :
[device] | |
name | device1 |
type | momo |
output | /dev/ttyACM0 |
channels | 150 # number of LED’s |
interval | 20000 # default 20000 |
prefix | 41 64 61 00 31 64 # depends on LED’s number |
rate | 115200 |
bits | 8 |
allowsync | on |
debug | off # turn this on to see what it’s doing with the serial port |
delayafteropen | 1000000 |
La partie délicate se situe au niveau de la configuration du prefix. Si vous avez un nombre de LEDS “standard”, il suffira de faire un copier-coller des valeurs ci-dessous. Dans le cas contraire, il faudra le calculer.
Prefix pour 25 LEDs: 41 64 61 00 18 4D
Prefix pour 50 LEDs: 41 64 61 00 31 64
Prefix pour 100 LEDs: 41 64 61 00 63 36
Pour calculer le prefix:
buffer[0] = ‘A’; | // Magic word |
buffer[1] = ‘d’; | |
buffer[2] = ‘a’; | |
buffer[3] = byte((coord.length – 1) >> 8); | // LED count high byte |
buffer[4] = byte((coord.length – 1) & 0xff) ; | // LED count low byte |
buffer[5] = byte(buffer[3] ^ buffer[4] ^ 0x55); | // Checksum |
Pour plus d’explications, c’est par ici.
Le reste de la configuration du fichier “boblight.conf” consiste à entrer les couleurs, le contraste, le gamma et la position des LEDs autour de l’écran.
Grille permettant de calculer les valeurs en % pour « hscan » et « vscan » de chaque LED.
Si vous n’avez pas envie de taper tout ça à la main, il existe un logiciel qui le fera pour vous, il s’appelle “BoblightConfigTool.exe”. Vous pourrez le télécharger ici.
Une fois la configuration entrée dans fichier “boblight.conf”, installer la partie serveur et cliente Boblight sur le media center.
Au final cela donne ça: