Drummer Fountain

Kaushik Murali and Gladstone Butler

12/6/2017

 

Abstract

The main goal of the drummer fountain is to provide an interactive platform between a set of drums and a water fountain that could invoke interest and wonder in younger children. There was also an added game element, with suspended colorful objects that the water from the fountain would hit if the drums were hit in the right manner.

Our results for this project were largely successful, with the fountain being operational but with a few technical faults. The insect objects were stable but did not add in the element of intrigue that we had intended. We had issues with implementation during the final demonstration, with plumbing failure causing our valves to not eject water as intended. Our drums were still operational and this acted as a source of interest for younger children that wanted to hit the drum pads.

Objectives

The main idea is to allow users to control water flow depending on the pressure and speed at which they hit the drum pads. There was an added game element, where we placed colorful insect objects in the path of the stream from the valves, allowing the objects to slightly swing around when hit with the water. This was the main goal but in order to accomplish this, we needed to set sub-goals that would allow us to build up to our final project.

The first sub-goal we had was to create an operational drum mechanism. The drum pads used force-sensors that lay under drum heads that we cut out. These sensors relayed information to the Arduino.

The next sub-goal was to implement a functional water fountain. Upon certain drum pads being hit, a certain valve opens and this allows water to eject from the valve.

Implementation

For the drum pads, we opted to not use pre-built drum sensors because of cost and also because our needs for the drums were simple. The drums were meant to take physical force as input and output electrical signal to the Arduino, which would allow us to undertake further computation for the fountain. To implement this, we constructed a box that had three rings on the top surface. We cut out circles from a drum head and attached them to each of the wooden rings. Under these drum heads, we placed the force sensors that would activate upon contact, allowing us to read it via the Arduino. An interesting and useful design choice we made for the drum heads was to place a metal bolt on the inner side of the drum head. This ensured that the force sensor would receive contact from the whole drum head surface. This proved to be crucial for us as it contributed significantly to the activation of the valve.

For the fountain, we made use of a 12V water pump and two solenoid valves. These valves were connected to the pump via flexible transparent tubing. This allowed us to monitor the water level and helped us troubleshoot when necessary. This setup was placed in a waterproof acrylic tank. The valves were placed on a wooden mount, elevating the valves and protecting the valve connections from water damage. We cut holes in the tank to facilitate the wiring of the valves and pump, and to improve the aesthetic of the tank. We suspended our colorful objects from a thin piece of acrylic sheet, using wire to secure the objects to the sheet.

Our software portion was relatively simple. We read input values from each of the force sensors and implemented logic that would open the corresponding valves, which were powered externally using a 12V adaptor.

Outcomes

We had originally planned for a more extravagant demonstration, with LED strobe lights and sound that would correspond to the hitting of the drums. This combined with the fountain would have been more attractive to viewers. However, after assembling our project together, we decided that due to the nature of our wiring and the dimensions of the drum box, it would be best to simplify the demonstration to just a fountain display. This turned out to be a good decision on our part as it allowed us to focus on the functionality of the fountain.

Video we took attempting to incorporate LED lights into our project

 

The choices we made in constructing the drum box turned out to be successful, with the box remaining sturdy and the drum rings staying firmly attached to the top of the drums. One area for improvement in the construction of the drums would have been material for the drum head. Since it was an authentic drum head, we were unable to laser cut it and thus, could not get a perfect circle to fit our drum ring. Furthermore, the material was white and flimsy, resulting in it becoming dirty and constantly getting separated from the drum rings. We could have improved on this by using a studier material, one that would also attach better with Epoxy glue to the drum ring.

For the construction of the fountain, the dimensions of the acrylic tank and the valve mount turned out to be ideal for the flow of water through the tube while keeping the connections away from water. We water-proofed the connections on the valve, which helped us significantly when working with water. However, the effort we put into protecting our connections and stabilizing the valves worked against us when we had to troubleshoot plumbing problems. During the final demonstration, we were unable to trouble shoot the plumbing problems and we could not truly analyze the circuits for faults due to the manner in which we had set up the valves. There is not a clear way to fix this problem, as one solution led to another problem but more frequent and consistent testing of the demo could have helped us mitigate this issue.

The straightforward nature of our software helped us immensely in troubleshooting code troubles and as a result, we did have trouble with the relaying of information from the drums to the fountain.

 

Contribution

Kaushik Murali

  • Designed the specifications for the drum box and acrylic tank.
  • Combined and wrote code for final demonstration
  • Physical work for the assembly of the drum box and fountain tank
  • Project Ideation
  • Documentation and reports

 

Stone Butler

  • Identified required pieces of software for valve and LED operation
  • Circuitry work for connecting the valves for fountain
  • Acquired key components for assembly of valve
  • Fabrication work (Soldering and Laser cutting)

 

Final Demonstration at the Children’s Museum

 

Demonstration Video

Demonstration for the drummer fountain

Supporting Material

CAD DRAWINGS

https://drive.google.com/open?id=1emJCBybPEvG61-zQ06g3dsT849uLimqJ

CODE

int fsrAnalogPin0 = 0; // FSR is connected to analog 0
int reading0;
int fsrAnalogPin1 = 1;
int reading1;
int fsrAnalogPin2 = 2;
int reading2;
int solenoidPin1 = 4;
int solenoidPin2 = 5;

void setup(void) {
Serial.begin(9600);   // We’ll send debugging information via the Serial monitor
pinMode(LEDpin0,OUTPUT);
pinMode(LEDpin1,OUTPUT);
pinMode(LEDpin2,OUTPUT);
pinMode(solenoidPin1,OUTPUT);
pinMode(solenoidPin2,OUTPUT);
}

void loop(void) {
reading0 = analogRead(fsrAnalogPin0);
reading1 = analogRead(fsrAnalogPin1);
reading2 = analogRead(fsrAnalogPin2);
// we’ll need to change the range from the analog reading (0-1023) down to the range
// used by analogWrite (0-255) with map!

// Check the readings and activate solenoid accordingly
// reading 0 and 2 for solenoid 1 and 2 respectively; reading 1 for both

if (reading1 > 500) {
digitalWrite(solenoidPin1,HIGH);
digitalWrite(solenoidPin2,HIGH);
} else if (reading0 > 40) {
digitalWrite(solenoidPin1,HIGH);
digitalWrite(solenoidPin2,LOW);
} else if (reading2 > 500) {
digitalWrite(solenoidPin2,HIGH);
digitalWrite(solenoidPin1,LOW);
} else {
digitalWrite(solenoidPin1,LOW);
digitalWrite(solenoidPin2,LOW);
}
}

 

References

  1. https://courses.ideate.cmu.edu/16-223/f2017/text/ex/mechanism/laser-tolerance/laser-tolerance.html#exercise-laser-tolerance
  2. https://courses.ideate.cmu.edu/16-223/f2017/text/ex/Arduino/WS2801-LED-SPI/WS2801-LED-SPI.html#exercise-ws2801-led-spi
  3. https://www.bc-robotics.com/tutorials/controlling-a-solenoid-valve-with-arduino/