-==<XTBA>==-
https://forum.setiaddicted.com/

Ambilight maison / xbmc et arduino
https://forum.setiaddicted.com/viewtopic.php?f=4&t=1741
Page 1 sur 7

Auteur :  poulpito [ mar. 6 nov. 2012, 19:20 ]
Sujet du message :  Ambilight maison / xbmc et arduino

Donc je vais pousser sur le sujet complet :D

déjà les solutions existantes en matière de DIY tout dépend des résultats que l'ont veut obtenir

1- Ambilight dou monocouleur (dominance sur la totalité de l'écran)



2- Ambilight par pixel (leds) - adalight - représentants une portion de l'écran on peut monter à 120-130 leds sur le tour de l'écran max



===========================================================================

Pour ma part je pense faire un simple mix des deux avec 3 zones distinctes Left \ Bottom / Right puisque mon écran de vidéoproj est au plafond et que j'ai envie d'un éclairage diffus de chaque côté plutôt pour éclairer la pièces

Le principe est relativement simple :

- boblight / adalight etc analysent le contenu de l'écran et sortent des infos sur les couleurs suivant le réglage choisit - nombre leds et emplacements
Les infos sont envoyées via usb/serial sur la carte qui pilote l'électro

- l'arduino ou tout autre montage programmable reçoit les infos et pilote soit les bandes de leds RGB soit la rangée de leds dans le cas de l'adalight
directement ou via un interposer à transistor (pour les bandes RGB qui sont a anode commune de mémoire alors que les leds sont pilotées par des circuits dans le bandeau)

- Les leds
soit en bandes
Image

soit en fil à positionner pour l'adalight
Image

------------------------

Installation
[a remplir :p laissez moi respirer 2sec]

Auteur :  poulpito [ mar. 6 nov. 2012, 19:20 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

Des exemples de montages d'adalight

Image


Image

le principe d'adalight

Image

Auteur :  poulpito [ mar. 6 nov. 2012, 19:22 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

vu la taille de toute facon je peux pas installer d'adalight :)
mais avant j'avais des rangées de leds bleues de chaque côté c'était super reposant
la je vais voir avec l'ambi 3 zones au pire si ca rend bizarre je garderai qu'une seule zone de couleur comme la première vidéo

d'ailleurs la lumière d'ambiance c'est aussi une raison
a la base j'étais partis sur deux colonnes de plexi blanc quasi opaque avec des leds pour faire éclairage
puis je me suis dit que ca :D ca roxerai du kiki

Auteur :  Biour [ mar. 6 nov. 2012, 19:46 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

:lol:

Auteur :  poulpito [ mar. 6 nov. 2012, 20:50 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

Quoi mon tit biour tu veux tester :p
T

Auteur :  Biour [ mar. 6 nov. 2012, 21:02 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

Viiiiiiiiiiiii

Auteur :  poulpito [ mar. 6 nov. 2012, 22:11 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

juste ca n'a rien à voir mais je emt la pour garder au cas ou
comment fixer la freq à 23.976 pour xorg.conf avec une carte nvidia :D
http://forum.xbmc.org/showthread.php?tid=70068

Auteur :  Dodo29 [ dim. 18 nov. 2012, 22:44 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

Moi j'avais acheté des éclairages à Leds pour faire dans le même genre, mais pas dynamique : http://perso.photos.tokarz.fr/index.php ... TA0YWEwNTI
(Excusez la qualité médiocre des photos)

Par contre ça douille vite, ce type d'éclairage !

Auteur :  poulpito [ lun. 19 nov. 2012, 12:28 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

un petit tas de liens
http://hackhappy.org/linux/build-your-o ... -boblight/

http://forum.xbmc.org/showthread.php?tid=116331
http://arduino.cc/forum/index.php/topic,51873.0.html
http://siliconrepublic.blogspot.fr/2011 ... hting.html

http://sanya.tarhelyszolgaltato.eu/index.php --> calculateur pour fichier conf boblight

https://github.com/michaelficarra/ambil ... ilight.ino

http://www.cjo20.net/blog/

http://www.computerbase.de/forum/showpo ... stcount=10

pour ceux que ca intéresse :p

Auteur :  poulpito [ lun. 19 nov. 2012, 12:44 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

Code :
#include <SPI.h>
// LED pin for Arduino:
#define LED_DDR  DDRB
#define LED_PORT PORTB
#define LED_PIN  _BV(PORTB5)

// A 'magic word' (along with LED count & checksum) precedes each block
// of LED data; this assists the microcontroller in syncing up with the
// host-side software and properly issuing the latch (host I/O is
// likely buffered, making usleep() unreliable for latch).  You may see
// an initial glitchy frame or two until the two come into alignment.
// The magic word can be whatever sequence you like, but each character
// should be unique, and frequent pixel values like 0 and 255 are
// avoided -- fewer false positives.  The host software will need to
// generate a compatible header: immediately following the magic word
// are three bytes: a 16-bit count of the number of LEDs (high byte
// first) followed by a simple checksum value (high byte XOR low byte
// XOR 0x55).  LED data follows, 3 bytes per LED, in order R, G, B,
// where 0 = off and 255 = max brightness.

static const uint8_t magic[] = {'A','d','a'};
#define MAGICSIZE  sizeof(magic)
#define HEADERSIZE (MAGICSIZE + 3)

#define MODE_HEADER 0
#define MODE_HOLD   1
#define MODE_DATA   2

// If no serial data is received for a while, the LEDs are shut off
// automatically.  This avoids the annoying "stuck pixel" look when
// quitting LED display programs on the host computer.
static const unsigned long serialTimeout = 15000; // 15 seconds

void setup()
{
  // Dirty trick: the circular buffer for serial data is 256 bytes,
  // and the "in" and "out" indices are unsigned 8-bit types -- this
  // much simplifies the cases where in/out need to "wrap around" the
  // beginning/end of the buffer.  Otherwise there'd be a ton of bit-
  // masking and/or conditional code every time one of these indices
  // needs to change, slowing things down tremendously.
  uint8_t
    buffer[256],
    indexIn       = 0,
    indexOut      = 0,
    mode          = MODE_HEADER,
    hi, lo, chk, i, spiFlag;
  int16_t
    bytesBuffered = 0,
    hold          = 0,
    c;
  int32_t
    bytesRemaining;
  unsigned long
    startTime,
    lastByteTime,
    lastAckTime,
    t;

  LED_DDR  |=  LED_PIN; // Enable output for LED
  LED_PORT &= ~LED_PIN; // LED off

  Serial.begin(115200);

  SPI.begin();
  SPI.setBitOrder(MSBFIRST);
  SPI.setDataMode(SPI_MODE0);
  SPI.setClockDivider(SPI_CLOCK_DIV16); // 1 MHz max, else flicker

  // Issue test pattern to LEDs on startup.  This helps verify that
  // wiring between the Arduino and LEDs is correct.  Not knowing the
  // actual number of LEDs connected, this sets all of them (well, up
  // to the first 25,000, so as not to be TOO time consuming) to red,
  // green, blue, then off.  Once you're confident everything is working
  // end-to-end, it's OK to comment this out and reprogram the Arduino.
  uint8_t testcolor[] = { 0, 0, 0, 255, 0, 0 };
  for(char n=3; n>=0; n--) {
    for(c=0; c<25000; c++) {
      for(i=0; i<3; i++) {
        for(SPDR = testcolor[n + i]; !(SPSR & _BV(SPIF)); );
      }
    }
    delay(1); // One millisecond pause = latch
  }

  Serial.print("Ada\n"); // Send ACK string to host

  startTime    = micros();
  lastByteTime = lastAckTime = millis();

  // loop() is avoided as even that small bit of function overhead
  // has a measurable impact on this code's overall throughput.

  for(;;) {

    // Implementation is a simple finite-state machine.
    // Regardless of mode, check for serial input each time:
    t = millis();
    if((bytesBuffered < 256) && ((c = Serial.read()) >= 0)) {
      buffer[indexIn++] = c;
      bytesBuffered++;
      lastByteTime = lastAckTime = t; // Reset timeout counters
    } else {
      // No data received.  If this persists, send an ACK packet
      // to host once every second to alert it to our presence.
      if((t - lastAckTime) > 1000) {
        Serial.print("Ada\n"); // Send ACK string to host
        lastAckTime = t; // Reset counter
      }
      // If no data received for an extended time, turn off all LEDs.
      if((t - lastByteTime) > serialTimeout) {
        for(c=0; c<32767; c++) {
          for(SPDR=0; !(SPSR & _BV(SPIF)); );
        }
        delay(1); // One millisecond pause = latch
        lastByteTime = t; // Reset counter
      }
    }

    switch(mode) {

     case MODE_HEADER:

      // In header-seeking mode.  Is there enough data to check?
      if(bytesBuffered >= HEADERSIZE) {
        // Indeed.  Check for a 'magic word' match.
        for(i=0; (i<MAGICSIZE) && (buffer[indexOut++] == magic[i++]););
        if(i == MAGICSIZE) {
          // Magic word matches.  Now how about the checksum?
          hi  = buffer[indexOut++];
          lo  = buffer[indexOut++];
          chk = buffer[indexOut++];
          if(chk == (hi ^ lo ^ 0x55)) {
            // Checksum looks valid.  Get 16-bit LED count, add 1
            // (# LEDs is always > 0) and multiply by 3 for R,G,B.
            bytesRemaining = 3L * (256L * (long)hi + (long)lo + 1L);
            bytesBuffered -= 3;
            spiFlag        = 0;         // No data out yet
            mode           = MODE_HOLD; // Proceed to latch wait mode
          } else {
            // Checksum didn't match; search resumes after magic word.
            indexOut  -= 3; // Rewind
          }
        } // else no header match.  Resume at first mismatched byte.
        bytesBuffered -= i;
      }
      break;

     case MODE_HOLD:

      // Ostensibly "waiting for the latch from the prior frame
      // to complete" mode, but may also revert to this mode when
      // underrun prevention necessitates a delay.

      if((micros() - startTime) < hold) break; // Still holding; keep buffering

      // Latch/delay complete.  Advance to data-issuing mode...
      LED_PORT &= ~LED_PIN;  // LED off
      mode      = MODE_DATA; // ...and fall through (no break):

     case MODE_DATA:

      while(spiFlag && !(SPSR & _BV(SPIF))); // Wait for prior byte
      if(bytesRemaining > 0) {
        if(bytesBuffered > 0) {
          SPDR = buffer[indexOut++];   // Issue next byte
          bytesBuffered--;
          bytesRemaining--;
          spiFlag = 1;
        }
        // If serial buffer is threatening to underrun, start
        // introducing progressively longer pauses to allow more
        // data to arrive (up to a point).
        if((bytesBuffered < 32) && (bytesRemaining > bytesBuffered)) {
          startTime = micros();
          hold      = 100 + (32 - bytesBuffered) * 10;
          mode      = MODE_HOLD;
   }
      } else {
        // End of data -- issue latch:
        startTime  = micros();
        hold       = 1000;        // Latch duration = 1000 uS
        LED_PORT  |= LED_PIN;     // LED on
        mode       = MODE_HEADER; // Begin next header search
      }
    } // end switch
  } // end for(;;)
}

void loop()
{
  // Not used.  See note in setup() function.
}

Auteur :  IvanleFou [ lun. 19 nov. 2012, 12:55 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

poulpito a écrit :
http://hackhappy.org/linux/build-your-own-ambilight-system-ubuntu-xbmc-boblight/


Citation :
NOTICE: This domain name expired on 11/17/2012 and is pending renewal or deletion.

Auteur :  IvanleFou [ lun. 19 nov. 2012, 13:43 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

Ma TV fait 1232 x 707 mm. En supposant que je mette les LEDs 7 cm a l'interieur ca fait un cadre de 1125 x 700 mm et donc 3650 mm lineaire. avec une guirlande de 25 LEDs ca en fait une tous les 15 cm grosso modo... donc va me falloir 2 x 25 LED :D [as253.gif]

Auteur :  poulpito [ lun. 19 nov. 2012, 14:04 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

3*25 :D ca rendra mieux
moi je pars sur 4* ou 5* :D

Auteur :  Angel [ lun. 19 nov. 2012, 15:35 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

Pas besoin de faire le sapin de noel finalement! :mdr:

Auteur :  IvanleFou [ lun. 19 nov. 2012, 15:36 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

avec un mur blanc c'est peut etre pas forcement la peine. Et l'intensite lumineuse est aussi geree par soft?

Auteur :  IvanleFou [ lun. 19 nov. 2012, 15:39 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

Je pense que je vais prendre celle la Sam: http://www.adafruit.com/products/738
D'apres le site c'est les memes que les tiennent mais en plus fine, ce qui m'arrange car je voudrais les coller derriere la TV de facon a ce qu'elles eclairent le mur directement.

Auteur :  Biour [ lun. 19 nov. 2012, 15:41 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

:sol:

Auteur :  Dodo29 [ lun. 19 nov. 2012, 16:06 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

http://siliconrepublic.blogspot.fr/2011 ... hting.html

J'ai exactement le même bandeau de LEDs : Ikea

Elles sont assez puissantes (On peut les voir sur les photos que j'ai mises plus haut, derrière les écrans PC)

Auteur :  poulpito [ lun. 19 nov. 2012, 19:08 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

ouaip mais c'est une bande une seule couleur (que tu pilote) j'en ai aussid es comme ca pour l'éclairage d'ambiance derrière les enceintes :D

et ouai ivan ca rox aussi celles la mais moi je pouvais pas comme je dois éclairer sur les côtés et pas derrière :D

Auteur :  IvanleFou [ lun. 19 nov. 2012, 19:41 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

Ce soir faut qu'on cause serieusement :D

Auteur :  poulpito [ lun. 19 nov. 2012, 19:50 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

ouaip parceque 2*25 tu va pas aller loin :p pour ta téloch c'est 3*25 mini ou 4*25 :D ou alors faut faire un cadre plus petit a l'intérieur et en mettre que 50 ^^

Auteur :  IvanleFou [ lun. 19 nov. 2012, 20:56 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

une tous les 7 cm c'est pas bon??

Auteur :  Biour [ lun. 19 nov. 2012, 21:18 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

trop d'ecat tu aura un espace je pense entre les faisceaux

Auteur :  poulpito [ lun. 19 nov. 2012, 21:27 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

l'idéal c'est entre 3-5 cm semblerait m'enfin c'est vrai que les leds seront vers l'arrière avec pas mal de recul donc tu peux très bien commencer avec ca et en rajouter apres

Auteur :  Dodo29 [ lun. 19 nov. 2012, 21:58 ]
Sujet du message :  Re: Ambilight maison / xbmc et arduino

poulpito a écrit :
ouaip mais c'est une bande une seule couleur (que tu pilote) j'en ai aussid es comme ca pour l'éclairage d'ambiance derrière les enceintes :D

et ouai ivan ca rox aussi celles la mais moi je pouvais pas comme je dois éclairer sur les côtés et pas derrière :D



Ah non, chaque LED est "tri-color" après en fonction du courant que tu envoies dans chaque "pate" des leds tu affiches des couleurs différentes, fin je vais pas t'apprendre comment ça marche, tu le sais ^^

Après tu peux afficher la couleur que tu veux. là le truc est bridé parce que c'est ikea

Page 1 sur 7 Heures au format UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/