You would think that there’s nothing to know about RGB LEDs: just buy a (strip of) WS2812s with integrated 24-bit RGB drivers and start shuffling in your data. If you just want to make some shinies, and you don’t care about any sort of accurate color reproduction or consistent brightness, you’re all set.
But if you want to display video, encode data in colors, or just make some pretty art, you might want to think a little bit harder about those RGB values that you’re pushing down the wires. Any LED responds (almost) linearly to pulse-width modulation (PWM), putting out twice as much light when it’s on for twice as long, but the human eye is dramatically nonlinear. You might already know this from the one-LED case, but are you doing it right when you combine red, green, and blue?
It turns out that even getting a color-fade “right” is very tricky. Surprisingly, there’s been new science done on color perception in the last twenty years, even though both eyes and colors have been around approximately forever. In this shorty, I’ll work through just enough to get things 95% right: making yellows, magentas, and cyans about as bright as reds, greens, and blues. In the end, I’ll provide pointers to getting the last 5% right if you really want to geek out. If you’re ready to take your RGB blinkies to the next level, read on!
Continue reading “RGB LEDs: How to Master Gamma and Hue for Perfect Brightness”
Everybody is busy these days, but sometimes it’s hard to tell. What with teleconferences being conducted over tiny Bluetooth headphones and Skype meetings where we seem to be dozing in front of the monitor, we’ve lost some of the visual cues that used to advertise our availability. So why not help your colleagues to know when to give you space with this shark themed WiFi-enabled meeting light?
Why a shark and not a mutated intemperate sea bass? Only [falldeaf] can answer that. But the particulars of the build are well-documented and pretty straightforward. A Photon runs the show, looking for an Outlook VFB file to parse. An RGB LED is used to change the color of the translucent 3D printed shark based on whether you’re in a meeting, about to step into one, or free. The case is 3D printed as well, although [falldeaf] farmed the prints out to a commercial printing outfit because of the size and intricacy of the parts. He did fabricate a nice looking wood base for the light, though.
There are plenty of ways to tell people to buzz off, but this is a pretty slick solution. For those in open floor plan workspaces, something like this IoT traffic light for you and your cube-mates might be in order.
Have you seen any loud sweaters this holiday season? Now there is a way to quantify their vibrancy and actually hear them at the same time. Cornell engineering students [Mengcheng Qi] and [Ryan Land] focused on the sonification of color and translated the visible spectrum into audible sounds.
They originally planned to use pixel samples from an OV7670 camera module, but weren’t able to extract any useful color data from it. We prefer their Plan B anyway, which was to use CdS photo resistors and the plastic color filters used for photography in red, blue, and green. The varying intensity of light falling on the photo resistors creates different patterns according to the voltage levels. The actual sound generation was done with FM sound synthesis.
There wasn’t a lot of natural sound variation between different RGB values, so in order to make it more fun, they created different instruments which play different patterns at variable speeds and pitch according to the colors. In addition to the audio feedback, the RGB values are displayed in real-time on a small TFT. Below those are dynamic bar graphs that show the voltages of each color.
Check out the demo after the break; they walk through the project and try it out on different things to hear their colors.
Continue reading “Color Sonification Could Be Key to Rainbow Connection”
Although graphical programming languages have been around for ages, they haven’t really seen much use outside of an educational setting. One of the few counterexamples of this is Pure Data, and Max MSP, visual programming languages that make music and video development as easy as dropping a few boxes down and drawing lines between them.
A few years ago, [Thomas] and [Danny] developed a very cool Pure Data audio-visual presentation. The program they developed only generated graphics, but though clever coding they were able to generate a few audio signals from whatever video was coming out of their computer. The project is called TVestroy, and it’s one of the coolest audio-visual presentations you’ll ever see.
The entire program is presented on three large screens and nine CRT televisions. With some extremely clever code and a black box of electronics, the video becomes the audio. Check it out below.
Although this is a relatively old build, [Thomas] thought it would be a good idea to revisit the project now. He’s open sourced most of the Pure Data files, and everything can be downloaded on the project page.
Continue reading “Video from Audio and Pure Data”
[Martin] recently purchased a Philips LivingColors lamp. It’s a commercial product that basically acts as mood lighting with the ability to change to many different colors. [Martin] was disappointed with the brightness of his off-the-shelf lamp. Rather than spend a few hundred dollars to purchase more lamps, he decided to modify the one he already had.
[Martin] started by removing the front cover of his lamp. He found that there were four bright LEDs inside. Two red, one green, and one blue. [Martin] soldered one wire to the driver of each LED. These wires then connected to four different N-channel MOSFET transistors on a piece of protoboard.
After hooking up his RIGOL oscilloscope, [Martin] was able to see that each LED was driven with a pulse width modulated signal. All he had to do was connect a simple non-addressable RGB LED strip and a power source to his new driver board. Now the lamp can control the LED strip along with the internal LEDs. This greatly extends the brightness of the lamp with minimal modifications to the commercial product. Be sure to check out the video below for a complete walk through. Continue reading “Increasing The Brightness Of A Philips LivingColors Lamp”
[Don] and his wife were looking for a way to teach their two-year old daughter how to tell time. She understood the difference between day and night, but she wasn’t old enough to really comprehend telling the actual time. [Don’s] solution was to simplify the problem by breaking time down into colored chunks representing different tasks or activities. For example, if the clock is yellow that might indicate that it’s time to play. If it’s purple, then it’s time to clean up your room.
[Don] started with a small, battery operated $10 clock from a local retailer. The simple clock had a digital readout with some spare room inside the case for extra components. It was also heavy enough to stay put on the counter or on a shelf. Don opened up the clock and got to work with his Dremel to free up some extra space. He then added a ShiftBrite module as a back light. The ShiftBrite is a high-brightness LED module that is controllable via Serial. This allows [Don] to set the back light to any color he wants.
[Don] already had a Raspberry Pi running his DIY baby monitor, so he opted to just hijack the same device to control the ShiftBrite. [Don] started out using a Hive13 GitHub repo to control the LED, but he found that it wasn’t suitable for this project. He ended up forking the project and altering it. His alterations allow him to set specific colors and then exit the program by typing a single command into the command line.
The color of the ShiftBrite is changed according to a schedule defined in the system’s crontab. [Don] installed Minicron, which provides a nice web interface to make it more pleasant to alter the cron job’s on the system. Now [Don] can easily adjust his daughter’s schedule via web page as needed.
[David] loves to watch football. After his preferred team lost the playoffs, he wanted another reason to watch the big game last Sunday. He ended up building himself a football-shaped lamp that changes color based on who scored last.
[David] started with a Spark Core and a Spark Button. The Spark is the primary microcontroller and includes WiFi. The Spark Button is essentially a shield for the Spark that includes an accelerometer, some LEDs, and a few push buttons. The other part of this build was the housing. [David] used a toy football he got for free as swag from a parade.
As for the code, [David] started by first learning how to control the LEDs on the Spark Button. Then he wrote his own touchdown function to illuminate the football a specific color. Since the Spark uses the REST API, [David] is able to trigger this function by simply visiting the URL of his Spark. This makes it very simple to trigger the event.
The final part of this build was made easy thanks to IfThisThenThat (IFTTT). This is a web service that allows you to monitor and interact with various online web services. It can monitor one service, and then interact with another based on events that happen in the first service. In this case, [David] is using a “channel” added to IFTTT by ESPN. This channel can trigger when certain events happen for whatever team you specify. For this project [David] is monitoring touchdowns.
After combining all of these various services, [David] had a working light that would change colors based on which team scored. He did notice that IFTTT has anywhere between a 1 and 15 minute delay, and he hopes to improve upon this design by hooking directly to an API and skipping the extra service altogether.