My experience in Interface Lab concludes with our final project presentation and blog post. The last week has been awesome exploring multiple sensors and getting feedback on our work in progress.
Abstract
My Arduino powered p5.js painter is a simple handheld device that controls a mapped color pattern than the user can drag across a canvas to create a customized pattern wallpaper. It is inspired by the color and circular patterns by Kandinsky paintings.
The physical controller features an LCD screen to alert the user of when the program is running and the cursor placement and brush size in pixels. This is useful since the potentiometer controls both brush (circle) size and and opacity. There is a joystick that controls the brush movement and two buttons to reset the canvas or save a screenshot of your final masterpiece. It is meant as a playful device that can potentially be scaled for additional interactions and pattern designs.
Materials
The device uses the following materials
- Breadboard x 2
- Arduino Nano 33 IoT
- X, Y, Button Joystick
- LCD 16×2 display
- Mini push buttons x 2
- Potentiometer
Building Process
This project progressed pretty well from its original idea to current iteration. While I tried to create an experience using an FSR and HX711, there wasn’t enough time to fully understand the calibration needs. I also developed a separate project using PoseNet.js but my code wasn’t playing nicely. While I’ve fixed it for better accuracy, to reconfigure my board would potentially mean missing our class deadline.
Much of the build has not changed since my previous blog. The system works excellent for control though I wish I had more time to fully code better color arrays. There is also an issue with p5 sometimes quitting but maybe its due to the serial selector and I still haven’t achieved stability with my save button.
Interaction
The device boots up and the LCD notifies you if your P5.js Serial is not open. If the serial app is running already, you can simply select the port of choice from the screen. Once open, the display switches to show feedback interaction with the joystick or potentiometer. On the P5 sketch’s canvas you can also select your port.
The device is pretty easy to get used to. It starts the script by selecting a specific hue and the brush produces a complimentary array of colors that are switched used the potentiometer. This results in circular patterns and colorful draggable lines.
My S/O served as tester and she found it incredibly easy to unboard unto the machine without issues. She was a bit confused when it booted up without anything on screen since the potentiometer was turned all the way down. I think a small “x” or crosshair indicator might address this issue. I had some additional ideas of color or shape swapping and even integrate a color sensor so as to make a “paint with what’s within reach” kind of game scenario but I did not have the required sensor.
Future plans
I will keep tracking and adding new iterations to this project where possible. I can definitely see an early childhood learning device where colors are taught throught interactive exercises. A device where a child can flash a color out of a choice of colors, and get a brush with different hues of that color. They can learn to spell the names of the colors.