Make a 3D interface using an six resistors, aluminum foil, and an Arduino. Take that, Wii.

Update: a much more thorough explanation of this project is available from Make Magazine. It might be easier to follow their instructions, and I think their code is more up to date.

The basic goal here was to make a 3D hand-position sensing system that most people can build, while still preserving some semblance of functionality. To get an idea of possible applications, check out the demo video. If you think you can build one that is simpler and equally accurate, or slightly more complex and more accurate, share in the comments!

DIY 3D Interface: Tic Tac Toe from Kyle McDonald on Vimeo.

Step 1: Materials



  • (3) 270k resistors
  • (3) 10k resistors
  • Solder
  • Wire
  • Aluminum foil
  • Cardboard


  • Tape (e.g.: scotch)
  • Shielded wire (e.g.: coaxial cable, ~3')
  • (3) alligator clips
  • 3-pin header
  • Zip-tie
  • Shrink wrap tubing or hot glue
<p>I completed this project. I also made some additional programs with this same setup like a musical instrument, hand controlled 3D camera, drawboard (which recognizes touch input). <br>Most importantly I was able to register touch using this same setup.So, it acted like a motion and touch tracking interface. One advice to people attempting to make this please add an extra ground plate as shown in the image and use this place during calibration only it helps improve accuracy.<br>Check out the code and explanation at:<br><a href="https://github.com/prasadchelsea33/3D-Interface" rel="nofollow">https://github.com/prasadchelsea33/3D-Interface</a></p>
<p>to which pin have you connected the ground plate to..</p>
In arduino serial port I am always getting only 0 0 0 values even after moving my hands, Does it mean that connections are faulty or some other problem.
<p>I used your code and little bit of schematics for my project of theremin on arduino</p>
<p>Hey guys,</p><p>I used this awesome system making something fun which is a abduction game of sucking people by UFO. You can move your hand to control the UFO position.</p><p>Here is project's github. Enjoy it!:</p><p><a href="https://github.com/kevinphys/3Dtracking-AbductionGame" rel="nofollow">https://github.com/kevinphys/3Dtracking-AbductionG...</a></p>
<p>I used your code of UFO game in my project. Thanks and keep up the good work.</p>
<p>That's sweet.</p>
<p>Sir, I have an error &quot; sensors cannot be resolved to a variable&quot; wat to do to clear this error</p>
<p>sir the link you have provided for the code is not opening. can you plz provide me the code to the mail anantapalivenkatesh01@gmail.com </p>
<p>The .ino file? If you're not opening with the arduino software have you tried opening with a text editor like Notepad or Wordpad? That should also show you the code.</p>
<p>The link for make magazine wasn't working. I think this is what you meant to link:</p><p>http://makezine.com/projects/a-touchless-3d-tracking-interface/</p>
<p>I made it but the pressing sct\etch does not move the ball, i see the cubes but not the ball</p>
<p>i did it </p><p>but the machine didn't show me my hand position </p><p>what's wrong ? </p><p>show the picture i added,,,</p>
<p>I have the same problem too</p>
<p>Nothing will EVER be better than the keyboard and mouse. Nobody wants to <br> hold their arms out for minutes at a time. Nobody who actually does <br>anything productive on their computer, that is.</p>
<p>Sorry, were you looking for a better-engineered mouse, or were you looking for a neat, feasible, applicable project and demonstration of physics and electrical engineering at work?<br>Don't knock cool projects just because they are not good for daily use.</p>
Hi all, <br>I&rsquo;m testing this with just one panel and using the test program (_3DInterface) <br>if I&rsquo;m shorting pin 8+9+10 it&rsquo;s working but reports three outputs,I would like just one output and that pins 9 and 10 (on the arduino) will be disconnected. <br>tried changing line for(inti=8;i&lt;11;i++) pinmode(i,input), to for(inti=8;i&lt;9;i++) pinmode(i,input) <br>but it didn't work, each time i remove the short line between pins 8+9+10 the output stops. <br> <br>Please advise <br>rami
<p>You have 3 Serial.print instructions, which print data from all 3 pins.</p><p>You should replace this code from the loop function:</p>Serial.print(time(8, B00000001), DEC); Serial.print(&quot; &quot;); Serial.print(time(9, B00000010), DEC); Serial.print(&quot; &quot;); Serial.println(time(10, B00000100), DEC);<p>With this code:</p> Serial.println(time(8, B00000001), DEC);
<p>Hi, I'm trying to downscale this to a 2D module (X and Y), but simply removing the third pin from the code everywhere - doesn't seem to work. It just sends out 0 0 from the arduino. Do you have any advice on how to do this? That would be much appreciated. Thank you. Regards, S&oslash;ren</p>
<p>I am getting error in the processing software keeps showing me this.</p><p>Error :-- &quot;type string[] of the last argument to method println(object....) doesn't exactly match the vararg parameter type. cast to object[] to confirm the non-varargs invocation, or pass individual arguments of type object for a varargs invocation.'</p><p>do i need to connect arduino while runing processing software??</p><p>This is my 1st time working on processing software.</p>
<p>hey this is cool !<br>but can this DIY 3D Controller work with android phone?</p>
<p>why don't you use the capsense library? It's quite good, and you'll need only one resistor per foil...</p>
<p>the extra R is for just incase shock go back to Receive pin it will bring voltage down, cap library ur talking about uses one becasuse is a smmall foil</p>
<p>could you improve this size by additional pannels... you said something about the largest you being able to do was only a foot or so and i think that may be just because of the limits of the capacsitance of the aluminum if we add say another set of say 9 panels could we make this a 2 foot cube and better yet could it be extended by using strips i could glue to my walls and ceiling to give me a full 3d cube to interact in...maybe add streamers to get me a 3d display with projectors.....</p>
<p>can someone tell me what roll does the shield wires plays in this? seem unnecessary as it is not being connected from one end</p>
<p>the processing software keeps showing errors ArrayIndexOutOfBoundsException:</p>
<p>Can you please explain the math in the code? I want to use this a bit differently, it will be a great help! Thanks! And thumbs up for the project!</p>
<p>This project only works on the processing 1.5.1.</p>
<p>ArrayIndexOutOfBoundsException: 2 is the error and the TicTacToe 3d is not responding.</p>
<p>hey when i upload the code in processing it says can not find anything named &quot;sensors&quot;</p>
<p>Has anyone been able to figure out the problem where the grid shows with the ball in the top back cube? It says its calibrating but nothing .</p>
<p>When I run TicTacToe on processing I get a white screen... Processing highlights this line</p><p>serial = new Serial(this, Serial.list()[serialPort], 115200);</p><p>any ideas?</p>
<p>try to write &quot;int serialPort = 0&quot;</p>
Hi I have got the thing up and running with the problem that when running the processor the gray box appears instead of the cubes and when I move my hand the grey box moves with my hand instead. Any solution for this?
<p>It's been quite a long time since you built this, propably. But did you figuered it out? I still got the same &quot;problem&quot;. Quite nice to move objects with this controller. But i want to fully finish this project and hammer the &quot;I Made it!&quot;. Thanks</p>
<p>guys i m really new to this stuff and i want to learn on how to do this... i have no idea why i cant run this program??? my tic tac toe prog shows me that its not responding every time.. help please?! </p><p>thanks in advance.</p>
<p>i changed my serial port to 0, &quot;int serialPort =0;&quot; , and sensor to sen and i still cant get it to run. help anyone?</p>
<p>did u ever get this to work? i have the same problem.</p>
<p>could you improve this size by additional pannels... you said something about the largest you being able to do was only a foot or so and i think that may be just because of the limits of the capacsitance of the aluminum if we add say another set of say 9 panels could we make this a 2 foot cube and better yet could it be extended by using strips i could glue to my walls and ceiling to give me a full 3d cube to interact in...maybe add streamers to get me a 3d display with projectors.....</p>
<p>I cant seem to get it to work :(</p><p>The sketch runs and in Processor i can see that it says &quot;defining boundaries&quot; whenever I left mouse click</p><p>But nothing after that!</p><p>HELPPPPP</p><p>(I am using Make:'s code btw)</p>
<p>Awesome project! I love it</p>
<p>I followed the Make instructions that used 220K resistors and if I watch the Serial Monitor, all I get are 0 0 0. Is anyone else having this problem? I'm not sure if the resistors are the problem or something else.</p>
<p>i'm still unsure what this is, can some one explain please?</p>
<p>sir can u pls send me the tit tac toe code to this email: anandchidambaram2007@yahoo.co.in</p><p>i have made the senser cube and finished the connection but i dont have the program. </p>
<p>When I run the processing program, the window is brought up. It has the cubes and the sphere, but the sphere is in the upper back cube, and my hand doesn't affect it, even if I calibrate. Anyone have a solution?</p>
<p>Did you ever get it figured out? I am having the same problem.</p>
<p>Hi, I realize this comment may be a bit late, but I'm a bit new to Arduino and I was trying to get this to work. I'm using an Arduino Uno, which Make Magazine used, and I fixed the processing code and got everything uploaded and running. When I run the TicTacToe3D program from processing I am able to see the grey cubes and the red ball, but when I place my hand in while left click holding the window, nothing happens except for the program saying &quot;defining boundaries&quot;. Any help? </p>
<p>look to the video</p>
<p>If their problem is the same as mine, the video's instructions do not work. The &quot;defining boundaries&quot; message shows up, yet the ball never moves.</p>

About This Instructable




More by kylemcdonald:Structured Light 3D Scanning Nandhopper 1-Bit Noise Synth Lo-fi Arduino Guitar Pedal 
Add instructable to: