Conducting energy through people to stimulate tangible public interactions

(this is an updated & revised version of this instructable:

Project Description:
By interacting, not just with an installation, but with also with each other, people are able to transform their environment through connection. Undertaken as an entry in the 2012 Urban Prototyping Festival organized by GAFFTA.


Two metal hands are mounted to the wall. When two or more individuals complete the circuit they provoke audiovisual responses. The level of interactivity is determined by the flow of current through the individuals.


Instructables Design Competition: 2nd place

Realität Microsonic Landscape competition: Winner (For the purpose and execution of the processing sketch)

Artpad 2013.05 / San Francisco Autodesk Design Night 2013.03 / San Francisco Urban Prototyping Festival 2012.10 / San Francisco A Temporary Offering 2012.10 / San Francisco Off the Grid 2012.12 / San Francisco

Team Credits

Yael Braha: Hand Holder + Processing Hacker + Visual Designer

Tosh Chiang: Hand Holder + Arduino Hacker + Concept Melody Donoso: Hand Holder + Visual Design

Ellen Keith: Hand Holder + Visual Design Jasdeep Garcha: Hand Holder + Sound Engineer + Programmer


Step 1: Bill of Materials

I Just Wanna hold your Hand - part 2
I Just Wanna hold your Hand - part 2

1) Arduino (any board will do, we had a MEGA)

2) Computer (we used a mac mini)

3) Projector

4) Small PC speaker (ours came from a street fighter 2 arcade!)


1) Processing

2) Arduino Compiler

3) FTDI drivers (just in case)


1) An Aluminum Sheet, or other conductive metal.

2) 20-50 feet of 18AWG wire

3) Double-sided tape

4) A 4"x6" project box (not necessary, but it keeps it neat!)

5) Zener Diode x2

6) 20K resistor x2

7) Breadboard


1) Water-Jet Cutter

2) 3D printer


1) Precision screwdriver

2) Wire strippers

3) Wire Cutters

4) Scissors

Step 2: Program and Configure Arduino Circuit

I Just Wanna hold your Hand - part 2

Assemble the Circuit:

1) Take the Zener Diode and the resistor and hook them up on the breadboard according to the diagram. For now, just use bare wires to represent the hands. Initially we used 25k potentiometers instead of the single-value resistor. This allowed us to "dial-in" our signal level.

2) The Schematic shows only 1 pair of hands. To do two, simply duplicate the circuit, but have R1 & D1 connected to A1 on the Arduino.****these next two steps are optional, but help with debugging. SO YOU BETTER DO THEM.

3) Hook-up an LED to pin 13 (don't forget to observe polarity...anode to the arduino, cathode to ground)

4) Hook-up the PC speaker to pin 12 (the other end to ground)

5) Download our code with the pitches file. too (includes processing code too): Open the code (hands_sound_integrate2b.ino) in the complier and check that the "analogReference" line matches your Arduino. We set it to 1 volt. Make sure that pitches.h is included in the same folder too.7) Now open the serial monitor in the compiler. Everytime the bare wires touch, you should hear a beep, and the led should light up! If you hold the wires, you should also get non-zero readings. Hopefully the tighter you hold the wires, the higher the numbers! ***optional8) Modify a project box to hold the arduino and breadboard. This makes set-up a snap!

Step 3: Integrate Arduino and Processing

I Just Wanna hold your Hand - part 2

Download the Processing sketch:

1) Close the arduino compiler program.

2) Download the processing sketch

github link:

Open the code in processing (UPanimation.pde)...."personalizedFunctions.pde" should be in the same folder.

4) Ensure the Arduino is hooked-up via usb to your computer

5) Ensure that the processing line with "myPort = new Serial(this, Serial.list()[0], 9600);" is correct, where Serial.list()[0] is your serial port. For us it was usually 0, but sometimes it was 1. This is the port that talks to your arduino. You'll get an error if this is not configured.

6) Run the sketch. Hopefully, whenever you touch the bare wires, you'll see changes on the screen.

7) Note the if-then-else structure of the Processing code. You can edit this to make different RGB color blooms or add more thresholds to get a larger span of colors...

pasted code:

/*************************** by Ellen Keith, Yael Braha, Marc Roth, Tosh Chiang and Jasdeep Garcha for SF UP festival 2012 ***********************/

#include "pitches.h"

///audio int melody[] = { NOTE_E5, NOTE_B6}; int melody2[] = { NOTE_F5, NOTE_C6}; int noteDurations[] = { 8, 8, 2};

//sampling and io int pairOne = A0; int pairTwo = A1; int led = 13; int aOut = 12;

//the rest

int triggerThresh = 50; //sets the trigger foroutput boolean stopMusic = true; int countOut = 0;

void setup() { //configures inputs and outputs

Serial.begin(9600); pinMode(pairOne, INPUT); pinMode(pairTwo, INPUT); pinMode(led, OUTPUT); //on arduino pinMode(aOut, OUTPUT); }

void loop() { int handShakeReadFinal1;//for final int handShakeReadFinal2; analogReference(INTERNAL1V1); //command varies between arduinos // analogReference(INTERNAL); // read the input on analog pin 0 and 1: int handShakeRead1 = analogRead(pairOne); delay(10); //resample pin 0! int handShakeRead1b = analogRead(pairOne); int handShakeRead2 = analogRead(pairTwo); delay(10); //resample pin 1! int handShakeRead2b = analogRead(pairTwo);

//output value only if both samples are greater than threshold and non-zero if (handShakeRead1 > triggerThresh and handShakeRead1b > triggerThresh){ handShakeReadFinal1 = handShakeRead1; } else { handShakeReadFinal1 = 0; }

if (handShakeRead2 > triggerThresh and handShakeRead2b > triggerThresh){ handShakeReadFinal2 = handShakeRead2; } else { handShakeReadFinal2 = 0; }

//print values to serial port Serial.print('A'); Serial.println(handShakeReadFinal1); Serial.print('B'); Serial.println(handShakeReadFinal2);

// delay(50);


if(handShakeReadFinal1>triggerThresh || handShakeReadFinal2>triggerThresh) { digitalWrite(led, HIGH); if (stopMusic) { tune(); } } else { countOut = 0; stopMusic = true; digitalWrite(led, LOW); //delay(1000); } }

void tune(){ for (int thisNote = 0; thisNote < 2; thisNote++) { int noteDuration = 1000/noteDurations[thisNote]; tone(aOut, melody[thisNote], noteDuration); delay(noteDuration +30); } stopMusic=false; }

Step 4: Make Some Hands

I Just Wanna hold your Hand - part 2

Keeping in mind that you may not have all of these tools at your disposal. Most people do not. This should not stop you from doing this project. Until you move near a TechShop you could just as easily cut this out of cardboard with an exacto knife, decorate the negative with something non-conductive and wrap the cutout hands in household aluminum foil, put them back together then run leads to your homemade hands. Between that and our version there are a million more possibilities and we are seriously excited to hear how you iterate on this design.

Here is how we did it:

Take a slab of 6061 Aluminum (we found ours in a junk pile), slap it on a WaterJet, vector out a pair of hands, realize that you have enough slab left over for kids sized hands, shrug your shoulders, tweak the file on the fly to be 60% of the original and run the job again. Poof, you've got two sets of human sized metal hands that you can run wire to and create connectivity.

Then what:

Well, we've got these cool hands, wouldn't it be cooler if we had hand sockets to put them in? Yeah! Where can we find a giant 3D printer that has nothing to do? Just look in the backyard, I'm sure someone has idle time and plenty of material to spare (okay we got a killer deal from a great company that went out of their way to make sure that we had what we wanted inside of our budget Thanks Autodesk).

Where are those files:

See attachments- The DWG and DXF files were edited with FlowPath which is the WaterJet software used at TechShop.

The STL files are the cutouts of the hands that we 3D printed using a Connex 500

A little more detail please:

Be aware that using these files separately without checking the dimensions could have a negative outcome. Different 3D printer software likes to do funny things. To err on the side of caution I even increased the file size to 101% on the 3D print to make sure that we could get the much less pliable aluminum hands to fit happily inside. They fit like a glove (I know I couldn't help myself).

Once you have all of your adult sized hands the way you want them, simply reduce everything to 60% or .6 of actual size and you've got your kids sized everything.

Our Adult sized hands are exactly 6.233" x 7.0585"

that is if you were to draw a box around a single hand that goes from the tip of the finger to the bottom of the palm and left to right from the furthest point of the pinky to the furthest point on the thumb, it would encompass the entire hand those would be the measurements of your box.

So to create your Wall outlets, assuming that all of the math stays the same (it doesn't have to, only the proportions do) then your looking at plates that are the Exact dimensions for the rectangle enclosing the hands

x =9.521 y = 12.708

Then children's sizes

x = 5.7126 y = 7.6248


What's better than the unlimited free coffee and popcorn at TechShop SF? The WaterJet!

If you reach the end of this and you "have to have" WaterJet 6061 3/8" aluminum WaterJet hands, but you don't know how to get your hands on them, let us know. Someone will forward me the request and I'd be glad to make you a set as long as you cover the costs and shipping (assuming we don't get over run with requests for this). I also have the hands files in an Autodesk Inventor 2012 Professional assembly file that I'd be glad to send along since it cannot be uploaded here.

Why are you still reading? Go make awesome hands and then come back for the next step :-)

I Just Wanna hold your Hand - part 2
AdultHands.stl251 KB

Step 5: Put It All Together

I Just Wanna hold your Hand - part 2
I Just Wanna hold your Hand - part 2
I Just Wanna hold your Hand - part 2

1) Remember the bare wires from the arduino circuit? Give each hand a generous lead of 18 AWG wire. We attached the wire to the hands simply by stripping the wire and then taping it to the underside of the hands. Terminate the other end of the wire where the bare wires were in the step 2. The schematic represented this as "hand one" and "hand two." A 2nd pair would be added the same way as described in step 2. Then attach the hands to a wall with double-sided tape. Place the 3d printed "light switches" over the hands, and attach with double-sided tape as well. Make sure that the gap between hands is larger than one person can span--this way you need two people!

2) Set-up a table, or pedestal with your cpu and projector.

3) Hook up the Arduino circuit to the computer, and the computer video output the the projector.

4) Open the processing sketch and select "Present." This will fullscreen the application.



Tag cloud

make build easy simple arduino making homemade solar laser printed portable cheap mini building custom cardboard wooden create super lego turn paracord chocolate your paper light intel