Ambilight avec Arduino et Boblight

Ambilight with Arduino

Tout le monde connait le système de lumière Ambilight créé par Philips. Ce système permet de rétro éclairé le dos de votre télévision afin de donner de la profondeur à vos films.

Ce système est tout simplement génial et donne réellement la sensation que le mur sur lequel est projeté la lumière est une prolongation de votre télévision.

Nous allons voir comment fabriquer à moindre coût un système Ambilight maison à base d’Arduino, de led RGB et du logiciel Boblight.

Les logiciels utilisés pour faire un Ambilight

Notre système Ambilight va fonctionner grâce au logiciel BobLight disponible ici.

Boblight est un logiciel qui va analyser un flux (audio ou vidéo)  et retourner un certain nombre d’informations qui vous permettront de réaliser un système Ambilight.

Boblight fonctionne en mode Client/Serveur. Il ouvre une connexion TCP en écoute (Serveur) sur laquelle il recevra les informations à traiter. Une fois traitées, les informations seront envoyées à votre Arduino via une connexion sur le port série  (grâce à l’usb de votre Arduino). Pour faire fonctionner Boblight, il suffit de remplir correctement le fichier boblightd.conf. Voici un sample de configuration:

[global]
interface	127.0.0.1
port		19333
 
[device]
#name is a unique name for this boblight device
name		Ambilight
#output is the where the Arduino connection can be found
output		/dev/com7
#channels is the number of LEDs * number of colours. In my case this is 60 * 3
channels	180
#type is the protocol used to communicate colour data, and should be left as ‘momo’
type		momo
#interval is how often updates are sent to the Arduino (in uS). 16600 is ~60 fps
interval	20000
#interval	1
#rate is the number of bits per second to send over the link to the Arduino. This must match the #define serialRate set in the arduino code
#rate		38400
rate		115200
#prefix is a string of bits sent between each frame of data
prefix		55 AA 55 AA 55 AA 55 AA
#allowsync enables real-time updating of the colour data. This means a quicker response time of the LEDs but will also lead to the LEDs 
#being out of sync if the data rate to the Arduino isn’t high enough
#allowsync	yes
#arduino bootloader runs when opening the serial port for the first time
#delay transmission one second after opening so we don't send shit to the bootloader
delayafteropen  1000000
#debug		on
 
[color]
name            red
rgb             FF0000
adjust          1.0
gamma           1.0
blacklevel      0.0
 
[color]
name            green
rgb             00FF00
adjust          0.95
gamma           1.0
blacklevel      0.0
 
[color]
name            blue
rgb             0000FF
adjust          0.85
gamma           1.0
blacklevel      0.0
 
[light]
name bottom1
color red Ambilight 1
color green Ambilight 2
color blue Ambilight 3
hscan 42.0 50.0
vscan 85.0 100
 
[light]
name bottom2
color red Ambilight 4
color green Ambilight 5
color blue Ambilight 6
hscan 34.0 42.0
vscan 85.0 100
 
[light]
name bottom3
color red Ambilight 7
color green Ambilight 8
color blue Ambilight 9
hscan 26.0 34.0
vscan 85.0 100
 
[light]
name bottom4
color red Ambilight 10
color green Ambilight 11
color blue Ambilight 12
hscan 18.0 26.0
vscan 85.0 100
 
[light]
name bottom5
color red Ambilight 13
color green Ambilight 14
color blue Ambilight 15
hscan 10.0 18.0
vscan 85.0 100
 
[light]
name bottom6
color red Ambilight 16
color green Ambilight 17
color blue Ambilight 18
hscan 2.0 10.0
vscan 85.0 100
 
[light]
name left1
color red Ambilight 19
color green Ambilight 20
color blue Ambilight 21
hscan 0 15.0
vscan 93.0 100.0
 
[light]
name left2
color red Ambilight 22
color green Ambilight 23
color blue Ambilight 24
hscan 0 15.0
vscan 86.0 93.0
 
[light]
name left3
color red Ambilight 25
color green Ambilight 26
color blue Ambilight 27
hscan 0 15.0
vscan 79.0 86.0
 
[light]
name left4
color red Ambilight 28
color green Ambilight 29
color blue Ambilight 30
hscan 0 15.0
vscan 72.0 79.0
 
[light]
name left5
color red Ambilight 31
color green Ambilight 32
color blue Ambilight 33
hscan 0 15.0
vscan 65.0 72.0
 
[light]
name left6
color red Ambilight 34
color green Ambilight 35
color blue Ambilight 36
hscan 0 15.0
vscan 58.0 65.0
 
[light]
name left7
color red Ambilight 37
color green Ambilight 38
color blue Ambilight 39
hscan 0 15.0
vscan 51.0 58.0
 
[light]
name left8
color red Ambilight 40
color green Ambilight 41
color blue Ambilight 42
hscan 0 15.0
vscan 44.0 51.0
 
[light]
name left9
color red Ambilight 43
color green Ambilight 44
color blue Ambilight 45
hscan 0 15.0
vscan 37.0 44.0
 
[light]
name left10
color red Ambilight 46
color green Ambilight 47
color blue Ambilight 48
hscan 0 15.0
vscan 30.0 37.0
 
[light]
name left11
color red Ambilight 49
color green Ambilight 50
color blue Ambilight 51
hscan 0 15.0
vscan 23.0 30.0
 
[light]
name left12
color red Ambilight 52
color green Ambilight 53
color blue Ambilight 54
hscan 0 15.0
vscan 16.0 23.0
 
[light]
name left13
color red Ambilight 55
color green Ambilight 56
color blue Ambilight 57
hscan 0 15.0
vscan 9.0 16.0
 
[light]
name top1
color red Ambilight 58
color green Ambilight 59
color blue Ambilight 60
hscan 0.0 4.0
vscan 0 15.0
 
[light]
name top2
color red Ambilight 61
color green Ambilight 62
color blue Ambilight 63
hscan 4.0 8.0
vscan 0 15.0
 
[light]
name top3
color red Ambilight 64
color green Ambilight 65
color blue Ambilight 66
hscan 8.0 12.0
vscan 0 15.0
 
[light]
name top4
color red Ambilight 67
color green Ambilight 68
color blue Ambilight 69
hscan 12.0 16.0
vscan 0 15.0
 
[light]
name top5
color red Ambilight 70
color green Ambilight 71
color blue Ambilight 72
hscan 16.0 20.0
vscan 0 15.0
 
[light]
name top6
color red Ambilight 73
color green Ambilight 74
color blue Ambilight 75
hscan 20.0 24.0
vscan 0 15.0
 
[light]
name top7
color red Ambilight 76
color green Ambilight 77
color blue Ambilight 78
hscan 24.0 28.0
vscan 0 15.0
 
[light]
name top8
color red Ambilight 79
color green Ambilight 80
color blue Ambilight 81
hscan 28.0 32.0
vscan 0 15.0
 
[light]
name top9
color red Ambilight 82
color green Ambilight 83
color blue Ambilight 84
hscan 32.0 36.0
vscan 0 15.0
 
[light]
name top10
color red Ambilight 85
color green Ambilight 86
color blue Ambilight 87
hscan 36.0 40.0
vscan 0 15.0
 
[light]
name top11
color red Ambilight 88
color green Ambilight 89
color blue Ambilight 90
hscan 40.0 44.0
vscan 0 15.0
 
[light]
name top12
color red Ambilight 91
color green Ambilight 92
color blue Ambilight 93
hscan 44.0 48.0
vscan 0 15.0
 
[light]
name top13
color red Ambilight 94
color green Ambilight 95
color blue Ambilight 96
hscan 48.0 52.0
vscan 0 15.0
 
[light]
name top14
color red Ambilight 97
color green Ambilight 98
color blue Ambilight 99
hscan 52.0 56.0
vscan 0 15.0
 
[light]
name top15
color red Ambilight 100
color green Ambilight 101
color blue Ambilight 102
hscan 56.0 60.0
vscan 0 15.0
 
[light]
name top16
color red Ambilight 103
color green Ambilight 104
color blue Ambilight 105
hscan 60.0 64.0
vscan 0 15.0
 
[light]
name top17
color red Ambilight 106
color green Ambilight 107
color blue Ambilight 108
hscan 64.0 68.0
vscan 0 15.0
 
[light]
name top18
color red Ambilight 109
color green Ambilight 110
color blue Ambilight 111
hscan 68.0 72.0
vscan 0 15.0
 
[light]
name top19
color red Ambilight 112
color green Ambilight 113
color blue Ambilight 114
hscan 72.0 76.0
vscan 0 15.0
 
[light]
name top20
color red Ambilight 115
color green Ambilight 116
color blue Ambilight 117
hscan 76.0 80.0
vscan 0 15.0
 
[light]
name top21
color red Ambilight 118
color green Ambilight 119
color blue Ambilight 120
hscan 80.0 84.0
vscan 0 15.0
 
[light]
name top22
color red Ambilight 121
color green Ambilight 122
color blue Ambilight 123
hscan 84.0 88.0
vscan 0 15.0
 
[light]
name right1
color red Ambilight 124
color green Ambilight 125
color blue Ambilight 126
hscan 85.0 100
vscan 0.0 7.0
 
[light]
name right2
color red Ambilight 127
color green Ambilight 128
color blue Ambilight 129
hscan 85.0 100
vscan 7.0 14.0
 
[light]
name right3
color red Ambilight 130
color green Ambilight 131
color blue Ambilight 132
hscan 85.0 100
vscan 14.0 21.0
 
[light]
name right4
color red Ambilight 133
color green Ambilight 134
color blue Ambilight 135
hscan 85.0 100
vscan 21.0 28.0
 
[light]
name right5
color red Ambilight 136
color green Ambilight 137
color blue Ambilight 138
hscan 85.0 100
vscan 28.0 35.0
 
[light]
name right6
color red Ambilight 139
color green Ambilight 140
color blue Ambilight 141
hscan 85.0 100
vscan 35.0 42.0
 
[light]
name right7
color red Ambilight 142
color green Ambilight 143
color blue Ambilight 144
hscan 85.0 100
vscan 42.0 49.0
 
[light]
name right8
color red Ambilight 145
color green Ambilight 146
color blue Ambilight 147
hscan 85.0 100
vscan 49.0 56.0
 
[light]
name right9
color red Ambilight 148
color green Ambilight 149
color blue Ambilight 150
hscan 85.0 100
vscan 56.0 63.0
 
[light]
name right10
color red Ambilight 151
color green Ambilight 152
color blue Ambilight 153
hscan 85.0 100
vscan 63.0 70.0
 
[light]
name right11
color red Ambilight 154
color green Ambilight 155
color blue Ambilight 156
hscan 85.0 100
vscan 70.0 77.0
 
[light]
name right12
color red Ambilight 157
color green Ambilight 158
color blue Ambilight 159
hscan 85.0 100
vscan 77.0 84.0
 
[light]
name right13
color red Ambilight 160
color green Ambilight 161
color blue Ambilight 162
hscan 85.0 100
vscan 84.0 91.0
 
[light]
name bottom7
color red Ambilight 163
color green Ambilight 164
color blue Ambilight 165
hscan 92.0 100.0
vscan 85.0 100
 
[light]
name bottom8
color red Ambilight 166
color green Ambilight 167
color blue Ambilight 168
hscan 84.0 92.0
vscan 85.0 100
 
[light]
name bottom9
color red Ambilight 169
color green Ambilight 170
color blue Ambilight 171
hscan 76.0 84.0
vscan 85.0 100
 
[light]
name bottom10
color red Ambilight 172
color green Ambilight 173
color blue Ambilight 174
hscan 68.0 76.0
vscan 85.0 100
 
[light]
name bottom11
color red Ambilight 175
color green Ambilight 176
color blue Ambilight 177
hscan 60.0 68.0
vscan 85.0 100
 
[light]
name bottom12
color red Ambilight 178
color green Ambilight 179
color blue Ambilight 180
hscan 52.0 60.0
vscan 85.0 100

Vous allez donc me dire mais qui et comment vont être envoyées les informations à Boblight ? Et ben il suffit tout simplement d’utiliser XBMC  et son plugin Boblight.

Alors pour ceux qui ne sont pas trop geek, sachez que XMBC (Xbox Media Center) est probablement le meilleur logiciel MediaCenter multi-plateforme complètement gratuit. Je vous invite donc à le télécharger et à le configurer. Vous verrez XBMC on ne sait plus s’en passer  🙂

Alors ne perdez plus de temps et téléchargez XMBC ici.

Il ne vous restera plus qu’à installer le plugin Boblight, brancher votre Arduino et lancer Boblight et XBMC.

Petite astuce: pour configurer Boblight, vous pouvez utiliser ce configurateur en ligne.

Arduino et les Leds Strip RGB

Il existe de nombreux type de rubans RGB. Pour notre système Ambilight nous allons utiliser des rubans dont toutes les leds sont addressables individuellement.

Cela va donc nous permettre d’entourer notre télévision de ce fameux ruban de leds rgb et de les allumer chacune avec une coloration différente.

Lorsque vous acheterez votre led strip pensez àfaire attention à l’alimentation requise. Personnellement j’ai décidé d’utiliser un ruban RGB basé sur le chipset WS2812B. Ce chipset à la particularité d’être peu onéreux, facilement pilotable et peux consommateur. Il fonctionne sous 5V et propose 30 leds RGB différentes par mètre.

rgb led strip ws2812b

rgb led strip ws2812b

L’autre intérêt de ce led strip est qu’il ne nécessite que 3 pins:

  • 1 pour l’alimentation 5V
  • 1 pour la masse (GND)
  • 1 pour la Data

Nous allons voir que piloter et contrôler le ruban led est relativement facile grâce à la librairie FastSPI.

Pilotage du ruban led avec FastSpi

La librairie FastSpi permet de piloter et contrôler toute sorte du ruban de led de manière relativement facile. Je vous invite donc à télécharger FastSpi sur leur site.

Pour utiliser la librairie FastSpi, il faut importer la bibliothèque dans votre code Arduino et préciser le pin qui  enverra les données:

#include <FastSPI_LED2.h>
#define NUM_LEDS 60
#define DATA_PIN 13
#define EVERY_NTH 1
CRGB leds[NUM_LEDS];

Puis déclarer le type de ruban de leds utilisé:

void setup()
{
  // sanity check delay - allows reprogramming if accidently blowing power w/leds
  delay(2000);
 
  LEDS.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS);
 
  // Start with all LEDs off
  memset(leds, 0, NUM_LEDS * sizeof(struct CRGB));
}

Puis on lui précise quelles leds allumer et quelle couleur leur affecter:

void loop()
{
 
  // set all the LEDs to white
  for(int i = 0; i < NUM_LEDS; i++) {leds[i].r = 255; leds[i].g = 255; leds[i].b = 255;}
  LEDS.show();
  delay(1000);
 
  // set all the LEDs to red
  for(int i = 0; i < NUM_LEDS; i++) {leds[i].r = 255; leds[i].g = 0; leds[i].b = 0;}
  LEDS.show();
  delay(1000);
 
  // set all the LEDs to green
  for(int i = 0; i < NUM_LEDS; i++) {leds[i].r = 0; leds[i].g = 255; leds[i].b = 0;}
  LEDS.show();
  delay(1000);
 
  // set all the LEDs to blue
  for(int i = 0; i < NUM_LEDS; i++) {leds[i].r = 0; leds[i].g = 0; leds[i].b = 255;}
  LEDS.show();
  delay(1000);
 
  // Set all LEDs off
  for(int i = 0; i < NUM_LEDS; i++) {leds[i].r = 0; leds[i].g = 0; leds[i].b = 0;}
  LEDS.show();
}

Et voilà c’est fini. Comme  vous voyez ce n’est pas très compliqué du contrôler un strip  de leds RGB avec Arduino et FastSpi.

Schéma pour faire un Ambilight avec Arduino

Le schéma suivant illustre comment mettre en place le montage afin de réaliser un système Ambilight avec votre Arduino:

Ambilight Arduino

Ambilight Arduino

Code Arduino pour le système Ambilight

Une fois les soudures effectuées et le montage terminé, nous allons mettre à jour le code de notre Arduino afin qu’il mette à jour les leds RGB. Le code Arduino va communiquer sur le port série avec le logiciel Boblight afin de récupérer les couleurs à afficher sur chaque led.

#include <FastSPI_LED2.h>
 
#define NUM_LEDS 60
#define DATA_PIN 13
// If its's too bright with all the LEDS you can skip every nth led
#define EVERY_NTH 1
 
CRGB leds[NUM_LEDS];
 
// specified under `rate` in the `[device]` section of /etc/boblight.conf
#define serialRate 115200
 
// boblightd sends a prefix (defined in /etc/boblight.conf) before sending the pixel data
uint8_t prefix[] = {0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA};
 
void setup()
{
  // sanity check delay - allows reprogramming if accidently blowing power w/leds
  delay(2000);
 
  LEDS.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS);
  Serial.begin(serialRate);
 
  // Start with all LEDs off
  memset(leds, 0, NUM_LEDS * sizeof(struct CRGB));
 
  // set all the LEDs to white
  for(int i = 0; i < NUM_LEDS; i++) {leds[i].r = 255; leds[i].g = 255; leds[i].b = 255;}
  LEDS.show();
  delay(1000);
 
  // set all the LEDs to red
  for(int i = 0; i < NUM_LEDS; i++) {leds[i].r = 255; leds[i].g = 0; leds[i].b = 0;}
  LEDS.show();
  delay(1000);
 
  // set all the LEDs to green
  for(int i = 0; i < NUM_LEDS; i++) {leds[i].r = 0; leds[i].g = 255; leds[i].b = 0;}
  LEDS.show();
  delay(1000);
 
  // set all the LEDs to blue
  for(int i = 0; i < NUM_LEDS; i++) {leds[i].r = 0; leds[i].g = 0; leds[i].b = 255;}
  LEDS.show();
  delay(1000);
 
  // Set all LEDs off
  for(int i = 0; i < NUM_LEDS; i++) {leds[i].r = 0; leds[i].g = 0; leds[i].b = 0;}
  LEDS.show();
}
 
void loop() {
 
  // wait until we see the prefix
  for(int i = 0; i < sizeof prefix; ++i) {
    waitLoop: while (!Serial.available()) ;;
    // look for the next byte in the sequence if we see the one we want
    if(prefix[i] == Serial.read()) continue;
    // otherwise, start over
    i = 0;
    goto waitLoop;
  }
  memset(leds, 0,  NUM_LEDS * sizeof(struct CRGB));
  // read the transmitted data
  for (int iLed = 0; iLed < NUM_LEDS; iLed++) {
    byte r, g, b;    
    while(!Serial.available());
    r = Serial.read();
    while(!Serial.available());
    g = Serial.read();
    while(!Serial.available());
    b = Serial.read();
    if(!(iLed % EVERY_NTH)) {
      leds[iLed].r = r;
      leds[iLed].g = g;
      leds[iLed].b = b;
    }
  }
  LEDS.show();
 
}

Et voilà, il ne reste plus qu’à scotcher le ruban de leds derrière votre télévision, et lancer un film via XBMC 🙂

Démonstration de mon Ambilight sous Arduino

Petite vidéo du résultat final de mon  système Ambilight sous Arduino  et Boblight. Désolé pour la qualité vidéo :p

37 Responses to Ambilight avec Arduino et Boblight

  1. Dany says:

    Bonjour
    Je trouve votre page très instructif.
    Sauf que je suis novice en la matière.

    Je voudrais mettre un capteur ultrason hc-sr04 en bas d’un escalier pour allumer la bande strip en partant du bas.
    et mettre un segond capteur ultrason hc-sr04 en haut de l’escalier pour allumer la bande en partant du haut
    adressable 5050 smd 5050 30 pcs/m Model Number:SW-2811RGB30W je cherche depuis plusieurs jour .
    reste un peu dur dur !! .
    Les capteur sont ‘ils bien adapté ?? j’ai besoin d’aide merci d’avance vos conseils sont la bienvenu. Cdt Dany

    • jhd says:

      les capteurs sont pas mal et pas cher. tu en trouveras sur la baie pour quelques euros. Essayes quand meme de te renseigner pour voir si tu trouves des capteurs plus petits.

  2. Gautier says:

    Merci pour cette page!
    Je vais me lancer dans l’aventure! J’ai un Xbmc sous Windows depuis des années avec toute ma vidéothèque, une TV 55″ et un Arduino uno rev2 que je ne me suis jamais vraiment servies!
    Il me manque plus que les WS2812B! par contre, j’ai vu qu’il des bandes avec plus de LED au mètre, cela ne pose pas de problème ?

    Si je rencontre des problèmes, je pourrais vous solliciter ?

    • jhd says:

      Vous pouvez utiliser des rubans a 30 leds par metre ou a 60 leds par mettre, çà ne change rien.

      Evidemment on est là pour vous aider 🙂

  3. FF_Ouiss says:

    Bonjour et merci pour toutes ces infos.
    Pouvez vous me dire a combien revient un tel équipement.

    Je suis intéressée mais ne veux pas dépenser une fortune.
    Ou avez vous acheté tout le necessaire? (liens bienvenu en MP si vous voulez)
    Merci de vos réponse.

    • jhd says:

      J’ai acheté tous le matériel (arduino et ruban led) sur Ebay et j’en ai eu pour moins de 50€ en tout, ce qui est très raisonnable pour faire son propre ambilight 🙂

  4. Fred says:

    Bonjour,
    merci pour le tuto,
    je viens de commander le kit, maintenant plus qu’a attendre…

    Je viens de changer de tv pour passer d’un Philips Ambilight 42″ à une Samsung 55″, l’ambilight manque, donc je me suis tourner vers cette solution.

    J’ai commandé :
    – 4M WS2812B Black board LED strip,240 LED 240 pixel matrix LED strip
    – un Arduino UNO
    – une alim de 5v 20A (il parait qu’elles consomment les petites)

    J’espere que je ne vais pas trop galerer à programmer tout ça.

    • jhd says:

      Oui c est pas mal gourmand mais une DC alim et toutes les petites les vont s éclairées. Hésite pas si tu as des soucis.

  5. Florian says:

    Hello, bravo et merci pour le tuto!
    Sur la plupart des tutos que j’ai vu, le système à LED possède 4 cannaux: 5v, Gnd, Data et Clock. Je vois que dans ton tuto tu n’as pas le canal Clock.
    Sais-tu à quoi il sert et ce qu’il apporte en plus ou en moins au système?
    Note: j’ai commandé une bande 3 cannaux comme toi, j’attend l’arduino pour faire des tests…

    • jhd says:

      Le clock n’est pas nécessaire. L’intéret d’une bande led a 3 canaux est de limiter le nombre de gpio à utiliser.

      • Florian says:

        Merci, arduino reçu, ça fonctionne (après 3h de taff)!
        Alors je me permet d’apporter quelques précisions concernant l’installation pour les débutants en hardware et programmation, notamment sur windows:
        -utiliser le serveur boblightd windows (celui cité sur google code est pour linux)
        -pour la conf:
        –bien vérifier le port (com1,3,7…)
        –récupérer prefix, rate et interval de l’exemple et non du générateur
        –channels=nb couleurs x nb leds (ex: 3×30=90)

        C’est sur ces points que j’ai perdu le plus de temps, le reste se trouve facilement sur le net.

        Enjoy!

  6. Mickael says:

    Pour info il possible de faire le même système avec un Raspberry Pi(qui lui servira de lecteur XBMC), et traitera directement avec la rampe de led par ses ports GPIO.
    Matériel: alim 5V 2A, raspberryPi, rampe de Led (WS2801 par exemple) trois cable dupont male/femelle.
    En terme de config software, il est préférable d’utiliser hyperion à boblight (moins performant a mon gout). Jpeux fournir un tuto si ça interesse.

    • jhd says:

      J’avais essayé avec raspberry pi + raspbmc + boblight et je trouvais çà un peu limite au niveau des ressources.
      Ton tutoriel avec hyperion m’intéresse car je ne connais pas du tout ce logiciel. Si tu veux tu peux m’envoyer un article et je le posterai 🙂

      • Mickael says:

        Je suis d’accord, j’ai essayé boblight, pas très percutant comme soft, mais Hypérion relève le niveau … Je vais voir pour le tuto (Je ne peux le récupérer pour l’instant. Je suis en rebuid RAID sur mon NAS donc j’ai coupé tout les services histoire de gagner un peu de temps).
        En ce qui concerne le Rpi il est possible de considérablement améliorer ses performances : déport du storage sur une clef(High Perf)ainsi il est possible d’overclocker le Rpi sans corruption de Bdd, actuellement 1050 Mhz (50% de gain tout de meme !!)

      • Mickael says:

        J’ai failli oublier, bonne formation Bdd au C… à O.v..lt, et la biz à tes élèves. ^^
        PS: Merci à ien ien (Adrien L.) pour l’URL de ton site.

  7. gribs974 says:

    Bonjour et merci pour ces mines d’informations…mais il me manque quelques un lol.
    Sur la baie il y a plusieurs boîtier commande arduino…laquel prendre? R2? R3? En kit?

    J ai vu aussi avec la petite planche essai blanche….utile ou pas?

    Merci d avance?

    • jhd says:

      Tu peux prendre des clones chinois sur ebay. Perso j’utilise un clone de arduino pro mini.

      La planche blanche est pratique pour tout tester sans faire de soudure. c’est une plaque d’essai

  8. Mickael says:

    J’ai mis un peu de temps à fournir le dit tuto, pour info je suis très porté sur le rpi (rpi je t’aime ^^). Je pourrais fournir d’autres docs (serveur pyload, AP wifi avec DHCP relay, overclock rpi … )

    ————————————-
    —Ambilight du pauvre avec un Rpi—
    ————————————-

    Pre-requis :
    Raspberry pi
    Sd-card avec Openelec
    Rampe de LED WS2801
    Alimentation 5V – 2 A
    Connecteur Dupont Male/Femelle (ou récup de connecteur Carte Mère de sur vieux boitiers)
    Options : Clamps de fixation

    Installation matériel (Je passe la phase fixation guirlande):
    Sur le ruban de led vous avez deux connecteurs différent (mâle+femelle) avec trois fils de couleur (bleu = Ground, vert = Clock et blanc = Data) et deux fils libre pour l’alimentation (un rouge = +, un bleu = -).
    Connecter les deux fils d’alimentation au bloc 5V.

    Insérer trois jumpers dans la prise mâle pour les raccorder au Pi. Le cable bleu (gnd) au pin 9 du pi (pour éviter que les leds ne scintillent), le câble blanc sur le pin 19 et le vert sur le 23.
    Avec ce type de câblage il est possible de couper l’alimentation de la guirlande sans couper l’alimentation du Rpi.

    Installation logiciel (Je passe la phase restauration de l’img d’openelec:
    Se connecter en ssh sur openelec, root/openelec (par défaut)
    ————————en ssh sur le rpi ———————–
    curl -L –output install_hyperion.sh –get https://raw.githubusercontent.com/tvdzwan/hyperion/master/bin/install_hyperion.sh
    sh ./install_hyperion.sh
    —————————————————————–

    Configuration Logiciel :
    Le développeur a mis au point une interface très complète de configuration en java, disponible ici https://raw.github.com/tvdzwan/hypercon/master/deploy/HyperCon.jar

    Il faudra ensuite uploader le fichier de configuration dans ‘/storage/hyperion/effects’

    Il ne reste plus qu’a rebooter le Rpi.

    —————————————————————-
    –Options: start/stop ambilight avec la fonction CEC de la TV—
    —————————————————————-

    Pré-requis:
    Activer dans le menu Openelec, autoriser la gestion par télécommande, et activer le serveur web sur le 8080.
    Affecter une touche qui lancera le script python, par exemple la bleue, (a ma connaissance on peut pas lancer directement le bash)

    Modification du fichier remote.xml :
    Récupérer le fichier /usr/share/xbmc/system/keymaps/remote.xml (en ssh ou sftp)
    Modifier le fichier comme suit:
    ————————-remote.xml——————–

    CleanLibrary(video) // Epuration de la médiatgeque
    UpdateLibrary(video) // MAJ de la médiatheque
    AspectRatio // Modifier l’aspect ratio
    RunScript(/storage/.xbmc/userdata/script.py) //Lancer le script python

    ——————————————————-
    une fois le fichier modifié il faut l’uploader dans /storage/.xbmc/userdata/keymaps/

    Création du script python :
    Créer un fichier script.py dans /storage/.xbmc/userdata/
    —————/storage/.xbmc/userdata/script.py————
    import xbmc
    import sys
    import xbmcgui
    import subprocess
    subprocess.call([“/storage/hyperion-on-off.sh”], shell=True)
    ————————————————————

    Création du script bash :
    Créer dans le dossier /storage le bash appelé par le script python : hyperion-on-off.sh
    Le bash vérifie l’état d’hyperion et en fonction de son état exécute l’état inverse:
    —————-/storage/hyperion-on-off.sh—————
    if ! pidof hyperiond ;
    then
    curl -v -H “Accept: application/json” -H “Content-type: application/json” -X POST -d ‘{“id”:1,”jsonrpc”:”2.0″,”method”:”GUI.ShowNotification”,”params”:{“title”:”HyperionTV”,”message”:”Enabled”,”image”:”/storage/hyperion.png”}}’ http://127.0.0.1:8080/jsonrpc
    /storage/hyperion/bin/hyperiond.sh /storage/.config/hyperion.config.json > /dev/null 2>&1 &
    else
    curl -v -H “Accept: application/json” -H “Content-type: application/json” -X POST -d ‘{“id”:1,”jsonrpc”:”2.0″,”method”:”GUI.ShowNotification”,”params”:{“title”:”HyperionTV”,”message”:”Disabled”,”image”:”/storage/hyperion.png”}}’ http://127.0.0.1:8080/jsonrpc
    killall hyperiond
    fi

    —————————————————–

    Rendre exécutable les deux scripts hyperion-on-off.sh et script.py

    chmod +x /storage/hyperion-on-off.sh
    chmox +x /storage/.xbmc/userdata/script.py

    Uploader un fichier hyperion.png dans le dossier /storage celui ci sert au pop-up de notification, lors de l’utilisation du bouton.

    Rebooter le rpi

    PS: En espérant que le tuto soit lisible (j’ai peur pour la mise en page).

    • Mickael says:

      Pb de mise en page pour le script /storage/hyperion-on-off.sh
      ————————————————————
      if ! pidof hyperiond ;
      then
      curl -v -H “Accept: application/[…]127.0.0.1:8080/jsonrpc
      /storage/hyperion/[…]hyperion.config.json > /dev/null 2>&1 &
      else
      curl -v -H “Accept: application/[…]127.0.0.1:8080/jsonrpc
      killall hyperiond
      fi
      ———————————————————–

    • jhd says:

      Waouuhhhh j’ai pas encore essayé mais j’ai lu tout le tuto et ca semble pas mal du tout.

      Si ca t interesse d’écrire des articles je peux te créer un compte rédacteur comme ca tu pourra mettre en page.

      Avant que je mette en pratique ton tutoriel, tu saurais me dire si le raspberry est capable de décoder du 1080p mkv, tout en utilisant le ambilight ?

  9. Mickael says:

    Pour le décodage du 1080p, ça peut poser problème pour les vidéos avec DTS, ça lag un peu, un peu d’overclock du Rpi et puis le tour est joué, le problème de l’overclock c’est que ça a tendance a corrompre les données de la sd-card. L’astuce c’est de déplacer la partition storage sur une clef USB (formatée en ext4 -utiliser partition disk wizard par exemple) et modifier le cmdline.txt de la sd-card comme suit :
    boot=/dev/mmcblk0p1 disk=/dev/mmcblk0p2 quiet
    par
    boot=/dev/mmcblk0p1 disk=/dev/sda1 quiet

    Il faudra ensuite modifier le fichier config.txt. J’ai pu overclocker mon pi a 1050 Mhz (50% de gain)

    En ce qui concerne la consommation CPU d’hyperion, on tourne autour des 2%.

  10. Ben says:

    Bonjour,

    Merci pour ce tuto instructif !
    Je n’utilise pas XBMC, mais bien un WDTVLive (http://www.wdc.com/fr/products/products.aspx?id=330) connecté à un NAS où sont stocké mes films.

    Y-a-t il un moyen de récupérer l’info à partir du WDTV Live où ai-je absoolument besoin de XBMC ?

    Merci pour votre réponse
    Benoît

    • jhd says:

      Je ne crois pas qu’il existe un plugin Bobligh pour WD, du coup c’est mort.
      Sous windows / linux, XBMC n’est pas obligatoire car Boblight est indépendant

  11. Fred says:

    Moi aussi Hyperion m’interresse (au moins pour la détection des bandes noires) mais j’utilise un PC sous windows comme HTPC avec XBMC.

    Et je crois bien qu’Hyperion c’est uniquement sous linux ou rpi…

    • jhd says:

      J’ai pas encore essayé mais en effet si ca marche que sous Linux c’est un peu dommage.

      Je testerai tout ca en rentrant de congé

  12. Denis says:

    Bonjour , Lorsque je démarre XBMC sur mon PC Windows 8.1,il recherche l’addon Boblight et je reçois un message :
    “Failed to connect to Boblight” Que faire ?
    Merci.

  13. loic says:

    Bonjours, je n’arrive pas a faire le programme, je suis débutant première chose que je fait avec arduino je ne comprend rien :/ j’ai une bande led ws2812b de 3M. Avec 30led/m. Sur ma télé je compte mettre en dessous gauche 10led coter gauche 15led dessus 24led coter droit 15led dessous droit 10led. j’ai utiliser la bibliothèque fastLed en data pin 6. Brancher sur ordinateur en com3. Si quelqu’un peux m’écrire le programme sa serez hyper sympa 🙂

    • jhd says:

      tu peux utiliser Boblight si tu veux

      • loic says:

        Justement j’ai essayer mais c’est surtout sur arduino que je n’arrive pas. De même petite question j’ai essayer un croquis de le mettre sur mon arduino uno et le televersement ne se termine jamais. Vous sauriez pourquoi?

  14. seb says:

    salut tous le monde, meme souci,
    je comprend ce qu’ il faut injecter dans l’arduino

    je lance le bat une fenetre dos se lance,les leds ne s’allume pas et je lance xbmc et le plugin boblight demarre mais rien ne se passe.

  15. seb says:

    alors maintenant de souvenir
    process ambilight setting up
    setup succeed
    127.0.0.1 :49297 connect
    127.0.01:49297 said hello,
    le tx de mon arduino clignote

    dans kodi connected boblight apparait

    au branchement j’ai led qui s’allume en rouge puis bleu puis jaune et apres s’eteint

    pour l’alime externe j’ai pris comme dans le schema un pile 9v, et l’aduino brancher sur le pc

    j’ai mis le code a la fin du tuto dans une fenetre vierge de arduino et j’ai cliquer verifier et ensuite televerser

  16. mika says:

    bonjour,
    merci pour le tuto tout d’abord, j’ai rencontrer quelques soucis que j’ai pu régler mais il y en a un qui persiste et je n’arrive pas a comprendre d’ou ça viens.

    donc j’ai acheter le ruban led que tu as preconiser, j’ai 14 led a gauche, 14 a droite et 23 en haut, donc deja avec 51 led je n’arrive pas a trouver le prefixe correspondant sur boblight.

    j’ai fait comme si j’avais 52 leds du coup mais j’ai du mal avec la config boblight, quand j’appuie sur le start du boblight, ça m’envoie bien sur l’invit de commande, mais il me dise qu’il y a une erreur, et je ne voit pas ou!

    si tu peut m’aider ça serait super!

  17. JeanPierre says:

    J’ai la même config que toi et suis vraiment pas satisfait des ws2812b. Les blancs sont bleus et impossible de régler ça sans dérégler les autres couleurs. J’ai commandé des apa102 (http://www.ledlightinghut.com/apa102-digital-led-strip-144-led-per-meter.html ) sensé être plus fidèles dans les couleurs. Dès réception et installation je te dis s’il y a une amélioration.

Leave a Reply

Your email address will not be published. Required fields are marked *