What is Ambight?
It is just and extension of your display panel. More so of a mechanism to enhance the viewing experience. The concept has been around for a few years but there have been only a very few implementation. One of them being “Philips Ambilight”. As of 2016, they are about to incorporate its advanced form – “Ambiflux”. It uses 6 projectors for dramatizing the effects.
When you are watching something on your Display panels, what seems to limit your viewing experience the most? One of the factors that limit the viewing experience is the fact that our vision is limited by the four edges of the display panel. Of course, we won’t be able to display anything beyond those edges, but we can minimize the impact of the sudden ending of our visual range. We could “Extend” the visual area with the help of a few background lights. Take this example.
The red shade ends abruptly at the right edge. If we could provide a slight gradient of that color that ends at the edges we could reduce the feeling of an abrupt ending to some extent. like this.
Similarly, if we extend all the edges accordingly, we could create a more extended experience. In short, this extension is what is achieved by Ambilight.
The above effect is created by placing two LEDs along each edge. As the number of LED’s increase, the more immersive the effect becomes.
How to Implement
As with the case of any DIY project, we could implement this in any number of ways. This is how I implemented it. Google Ambilight, and you will be able to find multiple ways to implement this.
We’ll consider the case of movies alone for now. While you are watching movies, we could take screenshots(50 of them) every second and analyze the color patterns along the four edges. Then we could relay this aggregate color information to a microcontroller, which can in turn light up corresponding LED’s.
- Led strip type WS2812B
- Arduino Uno R3 (Any arduino board will do!)
- Adafruit Neo Pixel library
- Arduino sketch for reading from serial and controlling LEDs
- Boblightd daemon for windows
- Boblight xbmc client(Download from within XBMC)
Load the script to Arduino board. It requires the neo pixel library to compile.
In the PC side, we could use any software. I am using a media player called XBMC. It has a plugin called Boblight that can calculate the aggregate values for us. Using the bobcat XBMC client, we can relay this information to the microcontroller.
VLC has a plugin called “Atmos Filter” that does the same purpose.
Note: Most tutorials would follow the TLC5940 method. These are Pulse Width Modulation(PWM) IC chips are used to extend the pins of Arduino. The advantage is that you can implement the same with any set of LED’s
by this approach.
Here is a quick glimpse of my first implementation. Excuse the poor quality. This was taken right after setting up!
Some of the links that I found useful.
- Using ULN2003 Driver
- LifeHacker ULN2003
- ULN2003 Indepth Explanation
- Using TLC5940 – I like it!
- Using ws2811 LEDs – What I did!