Have you ever encountered an object and wondered what its color would be if translated into a series of bytes? Christine Farion, who goes by the name CMoz, thought it would be cool to do exactly this by making a device that allows the wearer to simply grab a color from the surrounding environment and display it in a distinctive way. Even better, this color can then be sent to a host computer over USB for use in an image editing program or web design.
Due to this being a wearable project, Farion went with small and light components that would blend easily with a piece of fabric. For the microcontroller, an Adafruit Flora board was selected since its ATmega32u4 has USB keyboard functionality. The Flora Color Sensor has a white LED for illuminating dark surfaces, and the TCS34725 RGB color sensor gives enough accuracy for this application. Finally, a 4x4 grid of NeoPixels and 128 x 64 OLED screen display the resulting color picked up by the sensor while a single 400mAh lithium polymer battery powers everything.
The TCS34725, like many other similar sensors, works by using a three-by-four grid that consists of twelve individual photodiodes. To measure the level of a specific color, such as red, masks are applied to all other photodiodes and leaving just the red ones exposed to light. From here, the sensor takes ADC readings, performs some filtering, and stores the result for later retrieval over the I2C bus. This process can be repeated three more times for the two other color channels and the clear light channel.
After writing a simple sketch that gets the four raw color values from the TCS34725 and converts them into the more common 8-bit RGB values (values from 0 to 255), Farion then moved onto figuring out the best way to show this data. Her selected 128 x 64 OLED is controlled by the SSD1306 IC, meaning that it can be easily used with the Adafruit graphics library and SSD1306 driver. When a new value is ready to be shown, the screen is cleared and then written with each R, G, and B number in hexadecimal format. As for the NeoPixels, they simply light up in the given color with a light wiping animation.
With the electronics assembled and tested, Farion took a large piece of felt and made a sketch that laid out where each component should be located. Wires were then soldered to the color sensor at the palm of the glove to the top and attached to the microcontroller. Finally, the OLED screen and NeoPixels were connected to the microcontroller as well. Color values are printed by tapping the capacitive touch sensor pad located near the pinky of the glove.
To see more details about how Farion created this glove, you can read her write-up here on Instructables.