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.
Remove these ads by
Signing UpStep 1Materials
Tools
- Arduino
- Processing
- Wire cutters
- Soldering iron
- Box cutter
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
| « Previous Step | Download PDFView All Steps | Next Step » |
















































serial = new Serial(this, Serial.list()[serialPort], 115200);
Has anyone solved this yet?
If you were getting that error from the serial line, you have to make sure that the serial variable at the top is the correct serial port. If you look above the error, it should show the serial port that you are using. Mine was com4 so it showed:
[0] "COM4"
Therefore in my situation I had to change the serial variable to 0.
I also got that error randomly sometimes when I would run the program. I think that came from the board sending data before the program starts receiving it and then the program starting halfway through a line. To fix this I just made sure to hit the reset button at the same time I hit run on the processing code and it solved my problem.
Hope that helped :)
My readings are around 3500 an all plates and they rise if my hand is within 3 cm.
also experiment with the difference between leaving your computer plugged in versus not having it plugged in.
if your cable is unshielded, it makes a small difference, but maybe not the difference between 3 and 30 cm... so there might be something else going on.
I just made the 3d controller and im now trying to make it work. Im new to processing so when I tried to 'just drop the folder TicTacToe3D' in the folder I found under sketch->show sketch folder it wasnt opening. so i just dragged the 3 .pde files on the screen and pressed Run.
This gave an error
in line 54: if(parts.length == sensors) {
'Cannot find anythin named "sensors"'
Does anyone know what is the problem and what is the solution?
Thanks,
change "sensors" to "sen" and it should run.
If I understand this correctly, you got this to function as a 3d mouse? Is that correct?
But the change of capacitance is really big enough to be measured by micro controller? That is awesome!
I don't really understand how the hand can act as ground. The capacitor can be made by 2 conductive plates, right? but we have only one plate with hand here. Would you please clarify me?
Thank you for good work and
Thank you for reply in advance
one interpretation is that the hand acts as a virtual ground because the body is a large object (and the hand is the "second plate"). another interpretation is that the hand (mostly water) has a different dielectric constant than air, and that's the thing you're "sensing". i don't know enough to distinguish between these two things, or to say which is the "dominant" effect.
Does changing the aluminum foil to actual Aluminum plates work ?? I know they both conduct electricity but crinkled foil break easily unfortunately =/
WARNING: RXTX Version mismatch
Jar version = RXTX-2.2pre1
native lib Version = RXTX-2.2pre2
[0] "COM3"
Does anyone know how to fix the RXTX Version mismatch ???
I have built the board and everything but my problem is with the code. Where exactly is the code for the arduino ?? Or is the program " Processing" code suppose to upload the code into the arduino ?? Sorry if this question seems noob but im really new at this =(
Thank you soo much for any help !!
But shouldnt there be a camera in the code somewhere so i can interact with the TicTacToe game in 3d ??? Where would that code be ??
Sorry once again if my questions seems completely retarded , im really new at all this unfortunately =
there is no camera involved here -- you just need to look at your hand :)
if you want to get a camera involved, you'll have to hack the processing sketch.
for the video i posted, i recorded the camera separately and composited them afterwards, just for demoing how things worked.
It seem that there were two files " Interface" and "Tic Tac Toe " in the download section .
So the interface code goes into the Arduino board and the TicTacToe code goes into Processing ??
Sorry but could you clarify that a little bit ??? Many many thanks for your help !!
Cheers
Pierce
Now looking at the materials, I think I need to build this.
I'm doing it ruch better now. last time I made many mistakes, like the foil touching, the circuitry on the wrong side of the cable...
1/8-Watt 10K Ohm Carbon Film Resistors
10K Ohm 1/4-Watt Carbon Film Resistor
or
10K ohm 1/2W 5% Carbon Film Resistor
in every corner of a sheet and then get 2D resolution X , Y of the capitance of the sheet. etc like comparators are used to deside the direction of light by have four photoresistors and making a wall between everyone of them in a cross.
I think I'll try
The problem is that, even though i scrupulously followed your building instructions, i can't seem to have the device interact in any way with my hand.
I just finished building it, and i seem to have a problem. The code seems to be working fine, the TTT demo at least : the code compiles just fine on processing, i just had to change the value of the serial port. Processing lists and finds the serial ports, compiles OK, the Java windows opens on the TTT, but no matter how hard i wave my hand around, there seems to be no interaction at all.
I must confess that i suffer a double handicap : i'm french, and i don't know much either about electronics or about Processing ;-)
But i'm very eager to learn, believe me.
I have a intuition, though : i could not find a single hint about where to connect the shielding wire onto the plate's side (the alligator clip's side). I tried different combinations, like soldering the core wire and the shield wire together, leaving the shield wire unconnected, etc. But none of them work until now.
Since i obviously forgot something, somewhere, would you have a hint for me ?
Thanks a lot for your help, and again, Bravo !
Seb
When I built this I didn't understand the idea of shielding for capacitive sensing very well. So the shield is actually completely unconnected from anything. It does act slightly "shieldy", but it's more of an antenna. (For a real "shield", you need to use an opamp to sense the voltage on the wire and surround it with that same voltage.)
If the code isn't doing anything, there is one instruction I may have forgotten to include: you have to hold down the space bar while moving your hand from the furthest outside corner (most distant from all the plates) to the furthest inside. This acts as a calibration step (as shown in the video) to normalize the input.
Since writing this instructable two years ago, I've learned a bunch more about capacitive sensing and know better designs that also use very few components. I'm finishing my graduate degree right now, but when I'm done I'll come back and post a new instructable. For now, if you're interested in expanding your electronics knowledge a bit, check this out: thereminvision.com/version-2/TV-II-index.html
If you reduce it to two dimensions, yes. But using IR distance sensors are probably a better solution to that problem.