Introduction: Pressure Activated Light-Up Umbrella

***********************VIDEO: ******************************

Once upon a time, 2 girls greatly enjoyed walking in the rain with umbrellas. 
They decided the enjoyment of this experience could be maximized by building their own pressure-activated web of LEDs to install under their umbrella. 
Thus, with the help of an Arduino, some 4051 multiplexers, a lot of wire and a lot of solder, they set off on their path to success. 

Step 1: Materials List

Just based on size, we decided to use 24 LEDs to light our umbrella, with 8 strands of 3 LEDs each emanating out from the central hub. 

We used the following materials:

1 umbrella
1 Arduino Uno R3 microcontroller
1 9 V Battery
24 yellow LEDs (we advise that you use one with diffused light and a wide viewing angle, otherwise the size and color is up to you)
8 piezo sensor disks (we specifically ordered these from sparkfun: http://www.sparkfun.com/products/10293, though they are a bit fragile. You might want to look for something different.)
2 4051 multiplexers/demultiplexers
8 1 MΩ resistors (to be in parallel with the piezo sensors)
8 10 Ω resistors (to be in series with the LED strings)
LOTS of wire
LOTS of solder 
Hot glue/hot glue gun
Electrical tape
Duct tape


Step 2: Program Arduino Code

Program your Arduino with the following code:


/***************************************
Pressure Activated Light-up Umbrella
by Shannon Lubetich and Emily Yang
***************************************/

int sensorReading = 0;
int r0 = 0;
int r1 = 0;
int r2 = 0;
int w0 = 0;
int w1 = 0;
int w2 = 0;
int count = 0;

void setup() {
  Serial.begin(9600);

//initialize digital arduino pins as outputs to control the selecting process for our 4051 multiplexers
  pinMode(2, OUTPUT); //r0
  pinMode(3, OUTPUT); //r1
  pinMode(4, OUTPUT); //r2
  pinMode(8, OUTPUT); //w0
  pinMode(9, OUTPUT); //w1
  pinMode(10, OUTPUT); //w2
}


void loop(){

//cycle through each piezo disk and corresponding string of LEDs
  for(int i  = 0 ; i < 8; i++){

//read the analog value of the piezo disk pressure sensor
    reading(i);

//send the trigger from the pressure to the LEDs
    writing(i);
  }
}


void reading(int sensor){

//uses binary to select the correct input to read on the 4051 multiplexer
  sensorReading = 0;
  r0 = bitRead(sensor, 0);
  r1 = bitRead(sensor, 1);
  r2 = bitRead(sensor, 2);
  digitalWrite(2, r0);
  digitalWrite(3, r1);
  digitalWrite(4, r2);
  sensorReading = analogRead(A5);

//slowly prints results to the serial monitor
  count++;
  if(count % 1000 == 0){
    Serial.println(sensorReading);
  }
}


void writing(int LED){

//uses binary to select the correct output to write to on the 4051, here used as a demultiplexer 
  w0 = bitRead(LED, 0);
  w1 = bitRead(LED, 1);
  w2 = bitRead(LED, 2);
  digitalWrite(8, w0);
  digitalWrite(9, w1);
  digitalWrite(10, w2);

//if measured pressure above a certain threshold, trigger string of LEDs
  if (sensorReading >= 15){
    analogWrite(A0, sensorReading*25);
    delay(125);
  }

//otherwise, leave LEDs off
  else{
    analogWrite(A0,0);
  }
}

***We were inspired by the following project, and looked at the code for it, but ended up developing our own. However, if you are interested in making an umbrella that plays musical notes due to press, this is a great page: http://whyyesihaveawebsite.com/arduino/?p=6&fb_source=message


IMPORTANT: 4051 chips are TRICKY! Take heed!
For more information about the 4051 chip, used as a multiplexer or demultiplexer, refer to Arduino playground's page at http://www.arduino.cc/playground/Learning/4051

You should keep the schematic handy to reference all the input/output pins and where they need to be connected. 

Step 3: Mock-up

You should test out your circuit on a small scale before going crazy with wires and solder. 

We did this by using 2 bread boards, placing a 4051 multiplexer/demultiplexer in each, and then connected inputs/outputs to the correct places on the Arduino.

Once again, refer to the schematic at http://www.arduino.cc/playground/Learning/4051.

Here are some basic things to remember (all of the following pin numbers refer to the 4051 chip):

Attach the two Vcc inputs (pin 16) to the shared 5 V source of your Arduino. 
Attach E (pin 6), Vee (pin 7), GND (pin 8) of both chips to the shared ground of your Arduino.
Attach z (pin 3) to an Analog In of your Arduino. If you use our exact code, attach the chip with the piezos to A5, and the chip with LEDs to A0.
Attach S0 (pin 11), S1 (pin 10), S2 (pin 9) to Digital Outputs on your Arduino. Once again, if you use our exact code, attach the chip with piezos to 2, 3, and 4, and the chip with LEDs to 8, 9, 10. 


Ok! Now that you have a crazy mess of wires, you should connect your components to the remaining pins. 

At first, we just wanted to make sure it worked, so we only hooked up 2 piezo sensors and 2 strings of LEDs.
These go in any of the remaining I/O pins on the 4051. 

For the sensors:
Connect a wire from a 4051 pin to a piezo disk and 1 MΩ resistor, and then connect this to ground. (We advise making a shared strip of ground on your breadboard.) 

For the LED strings:
Ideally, connect a wire from a 4051 pin to a resistor, and then 3 LEDs in parallel, and then to ground. (This depends largely on the types of LEDs you have- you should look at the voltage drops across them and calculate what size resistor you need in order to moderate the 5V power supply from the arduino.)

***You should hook up the LED string to the same numbered pin on the 4051 as the pin its respective piezo disk is hooked up to. 

CAUTION: When we were trying to test this, we encountered some random, sporadic data. Then, we hooked up all our floating pins of the 4051 to ground, and everything worked fine. We're not quite sure why, when the pins aren't connected to anything, they give off random readings, but, in any case, connect every pin you're not using to GROUND.

Now, uploading and running the Arduino code, you should be able to tap the piezo disks and then see numbers on the serial monitor, as well as see the respective LEDs lighting up. 

(It's a great feeling when this works.)

Step 4: Make a Printed Circuit Board (optional)

This step is not extremely necessary, if you don't have the facilities to do it, but it is VERY helpful to make a printed circuit board instead of working with the mess of wires and breadboards from the mock-up. 

Using EAGLE software, we designed our own circuit board.
Here's our schematic and board layout.

We then printed this, cut it out, drilled holes, and attached pins to attach our board to the Arduino. 
The final product is really exciting and compact. So much better than the mess of breadboards, right? 

Step 5: SOLDER

Using your handy-dandy soldering iron, solder the following items:

NOTE: Before soldering lots and lots of wire to everything, you should measure how much wire you need. As in, figure out where you want to place your sensors and LEDs inside the actual umbrella, and how much wire you'll need to connect them to make it there. 

For piezo sensors:
Piezo disks in parallel with 10 MΩ resistors.
Wire to one side of resistor and pin of 4051.
Wire to other side of resistor and shared ground.
***Our piezo disks were really fragile. More like, the wires that came attached to them were really fragile and broke on us a few times. You should reinforce them with electrical tape. 

For LEDs:
Resistors to pins of 4051 associated with LEDs. 
Wire to resistors and LEDs.
LEDs to each other. (***make sure you hook up the LEDs in the same way, as in voltage source —> + end/ - end —> ground.)
End of LED string to shared ground. 

(Note: we hooked up our LEDs with 2 in parallel, and then one in series. that's why we have cute little triangle things.)

Step 6: Attach to Umbrella

I know you've been thinking "I thought this was a light-up umbrella, and I haven't even seen the umbrella referenced!" Well, impatient you, now is the time. Break out your umbrella. This requires a lot of opening umbrellas indoors, so I'm sorry if you believe this gives you bad luck. You do this at your own risk.

Open your umbrella, plug in your glue gun, and figure out where you want everything to be attached. 
Don't forget that you need to power your Arduino with a 9 V battery, and so you'll need somewhere to put that in your umbrella as well. 

Then, have at it. Be careful not to melt any components, or the umbrella, with the hot glue. 

Also, it is helpful to hold things in place with tape while you solder. Ordinary scotch tape didn't like to stick to our umbrella, so we ended up getting frustrated and then choosing packaging tape and duct tape, which both worked much better. 

***HINT: we spread out and glued all the piezo disks first, and then turned on the Arduino, tapped the sensors, and figured out what string of LEDs corresponded, so we could attach them to the correct panel. This is IMPORTANT.

Just for ease of organizing the wires, we fed each of them from the Arduino up to the top central hub/peak of the umbrella, and then out to their respective panels. The wires get pretty messy, so we suggest taping them together and gluing them down at strategic locations  so the wire doesn't get tangled or fall off. 

Step 7: Secure Electrical Connections

This is something we hadn't quite anticipated, but, after running into some difficulties, realized that we desperately needed to put electrical tape on all exposed wires, so as to prevent interference between randomly touching wires. 

So, we wrapped all exposed wires near each other with electrical tape as well as the soldered connection on the bottom of our shield. Our battery was previously touching some of the soldered areas, causing interference, but all we needed to do was cover the connections with electrical tape, THEN attach the 9 V battery, and we were good to go! 

We then placed the Arduino, shield, and battery in a plastic bag to semi-waterproof it. We took this pouch and attached it to our umbrella with a ridiculous amount of duct tape. 

Step 8: Singin' in the Rain

You may or may not be able to close and open your umbrella at this point, but unless you just got really angry and stabbed it, it should be usable in the rain. Just to be safe, you should wipe off excess rain before closing and storing it so that water doesn't get into the inside and fry any of your components. If we had more time, we would've sewn a layer of plastic sheeting over all our components. 

Now, wait for the rain, and go show off the BEST thing ever that will make all the neighbors jealous (especially at night). Yay!

And, if you like, you should name your umbrella. We suggest a name that rhymes with "umbrella" and means "star." (Hint: It's Stella. Stella the Umbrella.)

Comments

author
mehak2 (author)2017-01-05

I am in love with this project, can you please tell me how long it took?



author
GustavoW5 (author)2016-12-31

Nice work brother. I like to make one too. I wish I have the schematic of this project. Gustavo Woltmann.

author
m6255 (author)2016-03-22

Hello, You folks are incredible. I am so hoping I can gets some help/answers.

I have electric drums including snare, 4 toms, kick or bass drum,high hat and 3 cymbals. My cymbals are acrylic and Ive already embedded SMD LEDs into the edge so that 12 volts will fire them up. I would be creating a box with an input and equal output for every piece. The inputs would come from the Roland TD 15 sound module. Then I can jump right over to the other side where an equal amount of TRS jacks will allow the circuit to complete for the drum part. Then I thought I could steal the piezo signal and run it to one of these boards. Im hoping one of these boards can handle more than one drum. Then right next to each output TRS I would put some other type of jack depending on my wire requirements. Right now im single color which is fine. Each drum can be different, unless you know how I can make say a cymbal cycle colors RGB every time its struck? Please I build guitars so Im good at soldering pots in guitars but I am no way an electronics expert but I follow directions well. Ill gladly pay someone to write the program too. I have an apple IMac and no access to any windows computer. Thanks for your patients. My direct email if thats ok is mark@markscustomguitars.com.

author
DalvirK (author)2014-11-07

Hey

i am making this project for one of my courses.. But i am facing a problem making a mock up circuit on the breadboard. I am not sure where pin 1 to 5 goes and the other pins that are not being used

If anyone can send me a picture of the connections or send me a descriptive schematic, That would be great
I need it asap
THANKS A LOT :)

author
alexmac131 (author)2014-02-06

flora and their rgb flora would work well, random positions and colours with reduced wires

author
nechaus (author)2013-11-27

What a clever idea, I am thinking now i might make something similar.
Since it is such a low current application, you could get away with the smallest wiring, like tiny ribbon cable, it could be fed down the main pole of the umbrella, a small plastic 3d printed box could be used to waterproof the main electronics and act as a handle.

just cool idea, well done

author
alexmac131 (author)2013-10-12

Now think of this in reverse, the sensors on a car wind shield and you get the bug hit count when driving in the country. :) I have been looking for a means to record the data - now I know :)

author
equezada campos (author)2013-06-08

what if I want to put more LEDS per strand ?

author
xmacex (author)2013-05-26

Beautiful idea, this is what Arduino was made for!

author
LadyTron (author)2013-04-01

This is so cool!!! Where does someone go to learn how to do all this stuff? Engineering school?

author
snl017 (author)LadyTron2013-04-01

Not quite. We attend Pomona College. It's a liberal arts school in Southern California, and students are lucky enough to have classes and resources like this!

author
dionneobrien (author)2013-03-27

I am a student (15 years old) and I'm making one of these for my computing project! :D How would I go about printing a circuit board?

author
snl017 (author)dionneobrien2013-04-01

Hi there!

It's actually a pretty complicated process, and we are lucky enough to have the facilities to do that on campus. You might want to contact any local universities or engineering companies? Or google it? Sorry I can't be more help! Good luck!

author
Justdoofus (author)2012-10-17

Good Instructable! Really good idea!

A question though for anyone: Can I buy an identical chip to fit into the slot in the arduino mini and just program it, then remove it, and then plug it into a pcb or breadboard so that I can program many chips and still keep the arduino? For programming..

author
mimicotton (author)2012-05-29

good idea, will you please upload the image when the LED lights on?

rainbow-umbrella1.gif
author
yalin (author)2012-05-24

wow! nice one. would be better with conductive thread, smt leds and lilypad arduino.

author
Chico da Rave (author)2012-05-24

Nice project, but I think you dont need an arduino for that.

author
BrefelanDesigns (author)2012-05-20

Congratulations!
You are featured on Hack-a-Day!
http://hackaday.com/2012/05/20/rain-activated-light-show-in-an-umbrella/

Clipart-Congratulations.jpg
author
yadoo86 (author)2012-05-17

Great project. We really love it.

We also want to inform you that your instructable has been published on our arduino facebook page (https://www.facebook.com/faceuino). Feel free to join us and answer community questions.

Sincerely,
Faceuino team

author
BrownDogGadgets (author)2012-05-03

Thats awesome! I could have used one of those today!

author
Penolopy Bulnick (author)2012-05-02

That is very awesome! Great idea and great job making it!

author
Kiteman (author)2012-05-02

Brilliant project!

(You do know you can embed the YouTube video into your Instructable, don't you? Just remember to use the "old code".)

About This Instructable

58,034views

165favorites

License:

More by snl017:Pressure Activated Light-Up Umbrella
Add instructable to: