Interactive Wall Art
This Project was done by Vinaya Gopi, Anuj Malviya, Josh Elias Joy, Krishna Sandilya, Srinivas Saladi, Bhargava Tadi, Venkat Sai and Poorna Chandra as a part of the Product Design Workshop course at IIIT Hyderabad. We would also like to thank our Professors Prakash Yalla, Raghu Reddy, and Guna Deepak.
Interactive art is when people engage with a piece of art and expect some response to any stimulus. It is a good way to create fun experiences, especially in public spaces like offices and university spaces. When people try to interact with such artworks and they get a different serendipitous outcome, they get amused and surprised.
In this project, we build a single interactive tile that is modular and can be scaled up to any dimension one desires. The Tile is electromechanical, it uses Servo motors to move RGB LEDs forward and backward. Each Tile consists of 16 servo motors controlled by 16-bit channel connector controlled by an Arduino Module. The Tiles can function individually or can be assembled and expanded to work together with other Tiles. Various visual effects and patterns can be created with this setup and this gets even more interesting as you scale up the Tile to multiple pieces. The interaction element has been added using a camera and Computer vision to track the palm of the hand. Here are some video demos.
Supplies
Electronics:
1) MG995 Servo Motors 180 degree x 16 pieces
2) 16 channel Servo Driver Board
3) 8 bit RGB Led Module x 16 pieces
4) Arduino UNO
5) Raspberry Pi 4GB Ram
6) Raspberry PI Camera
7) Raspberry PI power supply
6) 50W 5V Power Supply
Structure:
1) PVC Tube
2) Acrylic Sheet
3) MDF Board
Machinery and Tools:
1) Laser Cutting Machine
2) Hacksaw
Designing the Tile
Initially, a CAD model was designed which comprised of four individual tiles. The RGB LEDs would be attached at the end of cylinders which would be can be moved forward and backward using a servo motor. To convert the rotational movement of the Servos to linear movement, a rack and pinion mechanism is used.
Materials comprise of a base Board made up of acrylic sheet of 4.5 mm. This acrylic sheet is assembled with individual cylinders made of plastic as moving parts. Each cylinder has a coupled rack and pinion mechanism driven by metal Gear servo motors, which are fixed on the back side of the Body.
Rack and Pinion Mechanism Together, Rack and Pinion convert rotational motion into linear motion. Rotating the pinion causes the rack to be driven in a line. Conversely, moving the rack linearly will cause the pinion to rotate. We also explored other mechanisms such as a Lead Screw, Piston wheel, and Multi-link collapsible Mechanism. But Rack and Pinion was finally selected due to simplicity and easy to build with the laser cutter in the University Lab.
Building the Prototype
The first prototype was built using a laser cutting machine and built using MDF and acrylic. PVC pipes were used to make the cylinder. From the above image we can that housing was made using MDF. The Rack and Pinion were made by laser cutting Acrylic. The pipe is connected to the rear part of the wall with a provision for LED mounting and a diffuser to project the illumination effect to the viewer. The entire mechanism is enclosed in a 3-layered enclosure with front-side housing the wall, middle-part housing the mechanism, and the rear-part housing the electronics. By mounting the Servo motor we tested the mechanism and everything was working as per our expectations.
Downloads
Building the Tile
After successfully testing the mechanism for a single cylinder, we proceeded to build the whole tile that would house sixteen cylinders. Similar to the prototype, the housing was built by laser-cutting MDF. The Rack and Pinion were made by laser cutting acrylic. The PVC pipes were cut and had slots placed to mount the rack, they were also spray painted.
We chose MDF casing for the body of our Interactive Art because it was well within our budget & easily available in the market. Albeit less flexible, MDF made more sense to use because of its strength. Since we decided to use spray paint or tape to finish the body, we were of the opinion that it would affect the acrylic casing aesthetically.
The acrylic casing is flexible and water resistant. So, we decided to use acrylic sheets only where needed and not for the complete body
Wiring It Up
Given that the project involves 16 cylinders and 16 Motors, the main focus was to simplify the wiring as far as possible. Thus we are using 8 bit RGB LED module’s which can be connected in a daisy chain manner. For Actuating Servo motors we plan to use 16-channel servo motor drivers, these drivers can control the servo motors more accurately than an Arduino and also aid in keeping the wiring less complex. The RGB LEDs were placed in front of the cylinders.
The Gesture recognition is handled by the Raspberry PI based on inputs from the camera, which communicates with the Arduino to send actuation signals based on the gesture. We are using two power supplies to isolate motors and LEDs from raspberry PI and Arduino. 15W Raspberry Pi Official Power Supply for Raspberry PI and Arduino, and 50W SMPS for 16 LEDs modules + 16 Motor.
Bringing It Alive (Software)
We have used Arduino IDE for coding the Arduino UNO we used. The adafruit_PWMservo and Wire libraries were used to communicate with the 16-channel servo motors and send PWM signals. The FastLED library was used to control the RGB LEDs.
Python Libraries like Open CV, MediaPipe, CVzone, and PySerial were used for computer vision and in order to establish the communication between the microcontroller and the microprocessor.
The camera frame was divided into a 4 x 4 matrix (similar to the arrangement of the pipes)
Based on the position of the hand on the matrix, the specific cylinder would actuate. The cylinder would retreat back when the user would change to a fist.
For example: If the hand was on the first row and first column, then the first cylinder would actuate.
Finishing Touches
The front part of the housing was covered by black glossy acrylic. The sides were taped with a matte black sticker. The back was covered by a Transparent piece of acrylic which revealed the complexity of the wiring. Light Diffusers added in front of the RGB LEDs, this was made by etching a transparent piece of acrylic. The Arduino and Raspberry Pi were mounted inside the housing. The power supply was left outside the enclosure.
To be done:
Optimize the design to be more modular to easily stack up multiple tiles into a much larger piece.
Build a GUI interface to easily modify gestures and how the gesture interacts with the LEDs along with the motors.