Download code here: [LINK]
Video: (disclaimer: for the purpose of this video, and to show everything clearer, I made the background black consistently)
For my final project, I am creating a light/lamp controlled by a processing sketch via bluetooth communication.
My original idea was to create a processing sketch where users can input three numbers (rgb values) to change the color of the rgb leds, but I received feedback from Scott and classmates encouraged me to think carefully about the way I wanted the user to interact with the lamp.
For my first iteration I used very basic sliders, where three lines were tracks and three small squares were the toggle for the slider, and the lamp color would be changed every time the user released the mouse. I consulted this instructable: [LINK]. However, during user testing, it seemed that this was not an organic way to change the color, nor was the interface intuitive enough upon first interaction. It was easy to use once you realized how to move around, but many users either expected a fluid change, or didn’t know what the interface was at all.
I then moved to controlp5, which is a library that helps you create controls with processing. I used their built-in sliders, changing the background and foreground to reflect the rgb value that the slider would be changing, as well as changing the background of the sketch to reflect the combined/mixed effect fluidly. I feel like this is a better designed interface that would allow more intuitive interaction.
For the physical component, I used three well-sanded rgb leds attached to an arduino with a bluetooth module. This was relatively straightforward, and the bluetooth connection was reliable and stable. Once I was sure that the circuit worked, I moved it to a perf board for a cleaner and more compact circuit, and used an external battery to power the arduino.
I also worked on the exterior shape of the lamp by first experimenting with paper, but the paper was too thick to let the light shine through. I then used white acrylic to create a exterior shape for the light. I tested the design with cardboard, and made small adjustments (e.g. size of the shape, size and placement for the small tabs used to attach the panels) and made a couple of prototypes before cutting the shape in white acrylic.
During testing it was clear to see that there was a discrepancy in the color mixed on the screen and the color of the led. I didn’t really think this was an issue that could be fixed (like when different computer screens display the same colors slightly differently), but then Scott introduced “gamma correction” in class, which helps color correct the visuals of the LEDS to what our eyes would expect them to look like.
Link to article: https://learn.adafruit.com/led-tricks-gamma-correction/the-issue
slightly better calibrated lights:
Code: