# Use the "Force" to drive a Remote Controlled Device with a DIY 3D capacitor!

For our electronics class project, we made our own version of the 3D capacitive controller described here:

http://www.instructables.com/id/DIY-3D-Controller/?ALLSTEPS

and here:
http://blog.makezine.com/2012/08/10/build-a-touchless-3d-tracking-interface-with-everyday-materials/

The controller is made up of a cardboard support, 3 "plates" of aluminum foil, shielded wire, resistors, an arduino, and a computer with a charger and the proper software.

By putting your fist in the space between the plates, you are creating a capacitor between your fist and the plates, with the plates at some voltage and your body at ground (don't worry - this is safe!)

By changing the distance between your fist and the plates, you are changing the capacitance.  The Arduino can measure this by grounding the plates, then letting them recharge from a constant 5V source, and measuring how long it takes to recharge to a certain threshold.  This time is determined by the RC constant (equivalent resistance of the circuit times the capacitance), and since the resistance is constant, it's a measure of the capacitance.

The Arduino can measure the changes in this recharging time relative to an initial calibration, and through the Processing code, it figures out the location of your hand.

A quick overview of the steps:

1. Build the cardboard support structure pictured with 3 (non-touching) pieces of aluminum foil

2. Construct the circuit that we will discuss later using shielded wire, alligator clip heads, and resistors.

3. Plug the circuit into the Arduino (download Processing 1.5 if you don't already have it) and run the code found here: https://github.com/Make-Magazine/3DInterface

4. Run the Processing sketch and make sure that the capacitor can sense the location of your hand as shown in the videos from the guides we linked above

5. Modify the code in the Processing sketch so that it sends information about the location of your hand to the Arduino through the serial port

6. Modify the Arduino code to use that information to drive a device of your choice!  You'll need to take apart the device and wire some inputs from the Arduino into its circuitry.  We chose to drive the throttle of a remote controlled helicopter, varying rotor speeds (and thus the height that the helicopter flies at) depending on the position of your hand.

This project could still use some improvements and fun add ons!  Because of this, we'll try to describe some of the major problems we encountered during the making of the project, how we debugged them, and managed to fix them (or not.)
Remove these ads by Signing Up
digipup11 year ago
My jumper wire connecting to 5v is acting up and the ball that shows where my hand is gets stuck at the top of the invisible corner what do I need to do?
May i shield the wires with some foil revestiment? One pal said once that he isolates the electronic of his guitar putting alunimium sheets around. ¿would it work for wire?
scci1 year ago
(guess) You probably connected the pad straight to ground when before it was first influenced by a resistor. The ardunio might not have offered enough internal resistance to stop the curcuit from overloading. Therefore frying it. Next time id put a few ohms of resistence in
ku5e1 year ago
The Theremin Remote Control. I love IT!
tcase61 year ago
here's one for you,,, I have a friend from back in ohio that made a head band, connected to a keyboard port, and was able to put text into notepad with this headband,,,,,the power of thinking.....lol... he came to my wife and I to see if we could help with finances to get it off the ground, and patented.... had the lawyer and everything,,,, unfortunately, we couldnt, so he found someone that could, but before he knew it, the other guy he went with, went behind his back, and had everything written up in his own name, no co-inventor, and sold it to IBM, who now has it just sitting on a shelf... kind of,,, i did see it again though,,, they had this game on a tv commercial, I think it was like basketball... using air to push the ball into the hoop.... but, yet, was the same headband, using your mind to power how much air pushes the ball into the hoop...... such a powerful invention being placed into a game... guess at least they used it,,, many things just sit, and dont even get that... but, the other guy took 1 million dollars for it, and bought a restaurant with it,,, which also went under in 1 year......good luck and keep up the good work....
jimgrace631 year ago
looks like a good project. I think I will work on it with my 10 year old grandson. He's a bright kid and this project will introduce him to a multitude of ideas and possibilities. Thanks for sharing and I hope you received high marks for your effort.
lnorooz1 year ago
oh wow! we did the same exact thing (using a kinect) and also called it "the force" in our class as well! check it out :) (skip to 1:40 to see the actual demo) )http://www.youtube.com/watch?feature=player_embedded&v=p9AV_Ws96Aw
Pretty neat!
A video of the project in action would be nice.
gschoppe1 year ago
really simple change, but I suggest covering each plate with a piece of paper... That way, you don't get strange readings if your hand brushes the foil, and you can get a clean zero-distance calibration... as for cleanly calibrating the other dimensions, I'd add a distance scale to each sheet of paper, so you can effectively gauge distance. from each plate

As for a more complicated edit, the plates don't have to be at 90 degree angles to each other. at the cost of "resolution", you could theoretically get a much wider "field of view" for the sensor, by making triangular plates with an angle of 110 degrees where they meet (110|35|35), and joining them to form a shallow dish shape that sits below the hand.
SarahandDillon (author)  gschoppe1 year ago
Huh interesting. I'll have to try the paper out.

Varying the degrees seems like it would mess with the cube visualization in the processing sketch, but you could probably get used to it. For now though, the field of view isn't the problem - we have plenty of space to move a hand around. Accurate "resolution" is the main problem so far.
SarahandDillon (author)  SarahandDillon1 year ago
If we were to really improve this, it would also be nice to get a rough but quantitative measurement of how the recharging times read by the Arduino vary with hand distance, and whether or not different hands / arms create different capacitances (maybe due to some dielectric effect?) Making marks on the paper would be a good start to getting a handle on that.
straight1 year ago
veeeeery nice
SarahandDillon (author)  straight1 year ago
:)
naw29831 year ago
could I use 220k resistor instead of a 270k
SarahandDillon (author)  naw29831 year ago
Yep, that would work too. It would make the charging of the plates faster, which could possibly make tracking a little bit smoother, but might make it marginally less accurate.
simplebotics1 year ago
That's awesome!
SarahandDillon (author)  simplebotics1 year ago
Thanks!

A TON of credit should go to http://www.instructables.com/member/kylemcdonald/
who as far as I know came up with the original implementation of this controller!
GraphixS61 year ago
Is it possible to use something else as the medium for the capacitor? If so, this could have great potential as an accurate 3d or 2d pen computer controller.
SarahandDillon (author)  GraphixS61 year ago
I'm not 100% sure what you mean by medium for the capacitor - use some other material besides foil, or something else? We did experiment with 1/4 inch aluminum plates, but they seemed to not work as well as the foil (although it may have been due to the size of the plates rather than their thickness.)

I think the Arduino program should work as long as you

1) Have 3 perpendicular plates
2) Have a movable conductor connected to ground in the space between the plates to act as the other part of the capacitor.

We also tried using a styrofoam ball wrapped in aluminum foil with a metal skewer connected to the foil that we'd hold on to. This, we thought might minimize the effect of our arms (which we think might be the cause of some of the imperfect sensitivity we were getting - because our arm angles were changing depending on where our fists were.) The results were similar to what we had with just our fists, though.