Here is a short video of the updated version of Bright Words, which I’ve dubbed take.too. This version includes a three main updates.
First, the color controls have been changed from RGB to HSB (here is a post about the Arduino library that converts HSB values in to RGB). HSB is a much more intuitive and enjoyable way to control the colors. It easy to cycle through colors of the same brightness and saturation.
Second, the device is now wireless. I’ve added a bluetooth module that enables me to connect the bright words light box wirelessly to my laptop. I’ve written a simple processing sketch that enables me to control the color (using HSB), the strobe speed, and the scroll speed, direction and width. I’ve also included a feature that provides real time control of each individual led so that I can make the lights synch to music.
Third, and last, I have added scrolling functionality to the bright lights. It supports scrolling in either direction, as well as from the inside out and from the outside in. It also makes it possible to control the width of the scrolling lights. Check out the video to see the scrolling in action.
The first version of the firmware that I created for Bright Words only supported changing the color of the lights by controlling the RGB values – red, green, and blue. From a coding perspective this is an easy approach since it is consistent with the physical set-up of the device (the red, green and blue lights are each controlled individually).
Unfortunately, this is not a very intuitive way to cycle through colors. The HSB color model (hue, saturation, and brightness) provides a much more natural approach.
By supporting direct control of the hue, users are able to cycle through all colors that are of the same saturation and brightness. Users can use the saturation setting to select the appropriate tint of a color. Tints are essentially mixtures of a color with white. The brightness setting enables users to select the appropriate shade of a color. Shades are mixtures of a color with black.
Higher saturation and brightness levels resolve to stronger colors. A color with no saturation will be achromatic, or in other words, it will have no color. Such a color will range between white, grey and black. A color with no brightness will always resolve to black.
After deciding to take this route I searched online to find existing code samples that I could use to guide my own work. I found a few examples that were written for the Arduino, though in the end I decided to create my own code from scratch so that it would be structured in my own way. I’ve formatted my code into a simple library that you can download from the github repository.
Here is a brief overview of how to use this simple library. It features two methods that do the exact same thing, they just take different input parameters. Both of them accept 4 different parameters: hue, saturation, and brightness values, and a pointer to an integer array that can hold at least 3 elements (the r, g, and b values).
The difference is that method HSBtoRGB accepts hue integer values ranging from 0 to 360, and saturation and brightness integer values ranging from 0 to 100. The method HSBtoRGBfloat accepts hue, saturation and brightness float values ranging from 0 to 1.
It all started with an 80s themed party. We wanted to go all out, music, costumes, drinks, and decoration. We were talking about lighting when the movie cocktails came up in conversation. I happen to have a bunch of rgb leds lying around looking for something to do. So I decided to create a multi-colored neon-styled strobe light, called bright words.
Here is a video that showcases the current prototype. This is a work in progress, as I have plans to play around with connecting this device wirelessly to a computer or mobile device via bluetooth or wifi.
This is a DIY project that can be recreated using a laser cutter, some microcontrollers, electronic components, and circuits. This project is a bit complex than my other DIY projects, so I will need to create a separate material lists with instructions. Production files for the box will be available in Adobe Illustrator and svg formats. Schematics will be provided for the circuits, along with a list of materials. I will post a link here when the project is uploaded to thingiverse.