This blog post explains the technical details of my Ambient Light project. If you don’t know what this project is about, watch the following video first:
Video summary: Sometimes a screen is just a light spot in a dark room. To make the entire scenery more appealing, I created my own, Arduino-powered ambient light. A PC software (written in C#) reads color information of the screen, performs some processing and forwards the color information to an Arduino, which is connected via USB. The microcontroller then regulates one or more RGB LEDs.
- The C# Program starts two threads: UI thread and “Screen color reading” thread
- The “Screen color reading” thread samples the average screen color.
- The average screen color’s saturation is being increased by a user-defined factor.
- The RGB value is being transmitted through the PC’s Serial Port.
- The Serial Port forwards the data to the a Microcontroller (e.g. an Arduino) via USB.
- The Microcontroller makes one or more RGB LEDs shine in the received color.