Académique Documents
Professionnel Documents
Culture Documents
A Touchless 3D TrackingInterface
Create a 3D computer interface using little more than an Arduino, six resistors, and some
aluminum foil!
By Steve Hobley Time Required: 2 hours Difculty: Moderate
Page Saved
Add Tags
877
269
In61this project, well take a very simple idea the length of time it takes a capacitor to charge
and make something rather amazing with it: a 3D interface that can track the position of
7 hand. The original implementation of this project comes from media artist Kyle
your
McDonald.
7
PARTS
STEPS
PROJECT STEPS
1. Making the sensor cube.
877
ADVERTISEMENT
Page Saved
Add Tags
877
269
61
Page Saved
Add Tags
For this project we'll need some cardboard squares (mine are approximately 12" square, but anything from
about 8-12" is ne), alligator clips, an Arduino, shielded wire, aluminum foil, spray glue, and some wide
tape. (3) 10K and (3) 220K resistors are also required (not shown).
Additionally, we'll need a soldering iron to connect the resistors to the cable.
Spray the glue onto the cardboard and smooth the foil onto one side. Work slowly and try to leave a small
gap around the edge of the foil. It is important that the foil plates do not touch each other when we tape
the three sides together. In a pinch you can use a glue stick.
I cut a small notch in the inside edge of the rightmost plate to make it easier to connect the alligator clips
later on (see second photo).
Using tape, assemble the plates to form one half of a cube (see the third photo).
CONCLUSION
In this guide, we introduced the concept of capacitive sensing. Nearly all sensing of this kind
depends upon how long it takes a capacitor to charge (known as the time constant). Placing an
object within the electric eld of a capacitor will affect the capacitance value and the
corresponding time constant. See the RC time constant entry on Wikipedia for more information.
We 877
hope you appreciate the cleverness of this project as much as we did and how relatively easy
it is to get a very 21st century interface (however crude) out of some aluminum foil and a
cardboard
box! We'd love to hear of your experiences with the build (in the comment section
269
below).
61
Page Saved
877
269
61
Add Tags
STEVE HOBLEY
This week, I have been mostly working on...
I've been tinkering around with bits of technology since I was ve years old. I used to take the telephone
apart at home, just to see how it worked.
After a couple of years I could even put it back together again - and sometimes it would continue to work.
Steve's Blog
44Comments
Recommend 2
MAKE
Share
Login
SortbyBest
Jointhediscussion
Guest 2yearsago
HiIhavebeenworkingonacodethatitookfromtheinternetandIhavebeengettingthissameerror"
ArrayOutOfBoundsException"nomatterwhatCOMportIchangeto.PleasehelpmeIhavebeenstuckof
thisproblemforweeks.Anyone?
//
importprocessing.serial.*
importprocessing.opengl.*
Serialserial
intserialPort=1//<<SetthistobetheserialportofyourArduinoieifyouhave3ports:COM1,COM2,
COM3
//andyourArduinoisonCOM2youshouldsetthisto'1'sincethearrayis0based
877
269
61
intsen=3//sensors
intdiv=3//boardsubdivisions
Normalizen[]=newNormalize[sen]
MomentumAveragecama[]=newMomentumAverage[sen]
MomentumAverageaxyz[]=newMomentumAverage[sen]
seemore
13
Reply Share
GarrettDavidson>Guest 2yearsago
7
Ihadthesameproblematfirst.IrealizedthateventhoughmyportwaslistedasCOM3,Ionlyhad
oneportsetuponmycomputer.Thus,IchangedtheserialPortto0andeverythingworkedfine.
Hopethishelpssomebody.
5
Reply Share
Zoom 2yearsago
Heywherecanidownloadthecode?
11
Page Saved
Reply Share
Add Tags
FaridLopez 2yearsago
Hello,IamrunningMacBookPro(2013)OSXMountainLion.IpullupthesketchesforNormalizeand
MomentumAveragejustfinebuttheTicTacToe3Dwillnotrun.Processingreturnsanerrormessage"Can
notfindclassortypeNormalize"(italsohighlightsthelinewhereacalltotheNormalizesketchis.I
commentoutthislineandthecallstotheothersketchesreturnthesameerrormessage,anyideaswhy?
4
Reply Share
OscarEspinosa 2yearsago
Hi,Iminterestingintheproyectthatyoudid,Iwanttotryit,butIdon'tknowtheorderoftheProcessing
programs,ifyoucanhelpmeIwillappreciate:)
OscarEspinosa
2
Reply Share
RyanWestcott>OscarEspinosa 2yearsago
HelloOscar,allthatyouneedtodoisputthethreedifferentprogramsinthreedifferentprocessing
tabs,andrunthe3dtictactoeprogramandtheyshouldwork.
Goodluck.
Reply Share
MinhQuc 2yearsago
HiItlooksveryinteresting,Iwouldtobuildmyownprogramlikethis,Iwanttoknowhowyoureadthe
HiItlooksveryinteresting,Iwouldtobuildmyownprogramlikethis,Iwanttoknowhowyoureadthe
signaldata,didyouuseADCpin?Andhowtodeterminethepositionin3D?
Hopeyouhelpmeanswertheseabovequestion.
MinhQuoc
1
Reply Share
MinhQuc>MinhQuc 2yearsago
Youuselikethecapturefeatureandmeasurethetimetogettherisingedgeorfallingedgesignalto
determinetheposition,isthisright?
Reply Share
877
JahaalMordeth>MinhQuc ayearago
Checkoutthecode.Essentiallyhedoesthefollowing(notexactlybuthere'sthegist):
269
pinMode(pin,OUTPUT)
digitalWrite(pin,0)
delay(1000)
pinMode(pin,INPUT)
unsignedlonginit=micros()
while(digitalRead(pin)==0){}
unsignedlongend=micros()
Serial.print(endinit)
61
Putthatcodeintoyourvoidstart(){}method.Makesureyouconnectthewiresproperlyand
chooseavaluefor"pin"(you'reusingtheGPIOpins.8,9,and10aregoodbets).Connect
acapacitortothepieceoftheschematicthatissupposedtogototheplate.Connectthe
groundleadtothegroundpinonyourArduino.Theserialmonitorshouldthendisplayhow
longittookforthiscapacitortocharge.He'sessentiallydoingthisrepeatedly.
Page Saved
Reply Share
Add Tags
arjun 2monthsago
whereisthecodesforthisproject
Reply Share
Harshit 2monthsago
Thecodeforprpcessingsketchgiveninthelinkaboveisshowingerrors.Myoperatingsystemiswindows
10.cananybodyfixthisformeplease
Reply Share
AbelRamos 5monthsago
Canyoudowiththetights?
Reply Share
AGAMTYAGI 5monthsago
heyiamworkingonthisproject...willsomeonegivemecodefor3Dtictactoeplzz
Reply Share
GaneshHosur 7monthsago
GaneshHosur 7monthsago
idontgetanyresultswhenimovemyhandintothex,y,zaxesboards.Butwhenitakemyhandcloserto
thearduinoboardthetheserialmonitorshowsupsomereadingsandthecubemovesonlytillitreaches
thecenter.
Reply Share
8monthsago
Whatwrongewiththispleasehelpme
877
269
61
Reply Share
alokb 8monthsago
whichistheshieldwire&signalwiresinshieldedwire??alsoicutoutanoldlaptopchargerwirewillit
work?icanseeared&awhitewire,whichdoiuseassignalwire&shieldwire?
Reply Share
Sl 9monthsago
Page Saved
Add Tags
Iamgettingerrorintheprocessingsoftwarekeepsshowingmethis.
Error:"typestring[]ofthelastargumenttomethodprintln(object....)doesn'texactlymatchthevararg
parametertype.casttoobject[]toconfirmthenonvarargsinvocation,orpassindividualargumentsoftype
objectforavarargsinvocation.'
Iamjustnewtoprocessingsoftware.So,idontknowmuchaboutit.
Canplzanyonehelp??
Reply Share
AakashJaiswal>Sl 2monthsago
Iamalsogettingthesameerror.
Couldyoupleasetellmehowtoremovethiserror.
Reply Share
Sl>AakashJaiswal 2monthsago
Thecodeiscompletelyperfect.Theproblemiswiththecomportsofthepc/laptop.
Asforallpc/laptoporduetodifferentbrands.Soujusthavetojustknowwhichcomwork
foru.
ConnecturarduinotourpcorlaptopthengotoTicTacToe3D.pde.
Inthatgoto4thlinethatis"intserialPort=1"changethat1toanyvaluefrom0to4.
Formecom0worked.Hopethiswillhelp.
Reply Share
AakashJaiswal>Sl 2monthsago
Thanksforthehelp.Mycodeisnowworkingfine.Ichangedthevalueto0andused
Processing2.2.1insteadofProcessing3.0b3.
Reply Share
Sl>AakashJaiswal 2monthsago
Urwelcome.
Reply Share
877
imherenowwhatnow 10monthsago
269
61
cansomeonetellmewhatrolldoestheshieldwiresplaysinthis?seemunnecessaryasitisnotbeing
connectedfromoneend
Reply Share
Alex 10monthsago
7
Hi!
Congratulations!Isagreatproject!
Ihaveaquestionaboutit:
Iwouldliketouseittotrackmyhandinlabview.ThesoftwaregivestheX,Y,Zvaluesoftheposition?
Reply Share
Malvino ayearago
hiihavebeenworkingonthisexperiment.itisawesome.buticantruntheprocessingtictactoe3d.iam
Page Saved
gettingthiserror.cananyonehelpme,please?
Add Tags
Reply Share
SchauneHannibal ayearago
Hi,agroupofusaretryingtobuildthetouchless3Dtrackinginterface.Itsaverycoolprojectthatweare
tryingtogetdoneforaschoolproject.Weranintotheproblemwherewewereonlygettingawhitescreen
fortheprocesspartbutwegotthatresolved.Nowitshowingtheimageofthetictactoewiththesquares
andtheballbuttheballisstuckatthebackcornerwhenweruntheprocessprogramtryingtocalibrateit.
WesawthatsomeotherpeoplehavehadthisproblembutIhaven'tseenanyposthowtheyhavegotthis
resolved.Cansomepleaseinformmeastowhatwecandotosolvethisplease.
Reply Share
AdamWhite>SchauneHannibal ayearago
didyoueverfindasolution?Iamhavingthesameproblem.
Reply Share
Sumit>AdamWhite ayearago
samehere...
didugetanyfix???
Reply Share
Reply Share
MihaiGna ayearago
Thisisacompletebullhist,youcannotmeasurethecharge/dischargetimeaslongasthe5Vpinisalways
on(anditis)
Reply Share
SrenAndreasen>MihaiGna 8monthsago
IhadzeroreactionatalluntilIremovedthe5vconnectionontheshields...what'supwiththat?
Reply Share
877
ramakrishna ayearago
269
plzhelpmesolvethejava.runtime.exeption....whichihavefacedwhilerunningtheprocessingsketchof
3dinterface.......
61
Reply Share
Malvino>ramakrishna ayearago
Helloramakrishna.igotthesameproblem.canuhelp?
canutellmewatudidtoremovethiserror??
Reply Share
gauravrajput ayearago
Page Saved
iamtryingtomakethe3Dinterfaceprojectbutiamfaacingtheprobleminrunningtheprocessingcodein
processing2asiamgettinganerrorascannotfindaclasstypeornamed"Normalized".
Add Tags
pleasehelpmeout.
thanx
rajput.gaurav51@gmail.com
Reply Share
YuriKravchik ayearago
Youcanusesimplerandcheaperwaytogetbetterresultshttps://github.com/paperpointe...
Reply Share
Lysia 2yearsago
HiIamtryingtomakethisproject.AnewbietoArduinoandcoding.
Idon'tgetit,whichcodeshouldIuse?Just3DInterface.ino?
Andwhydotheyhavea3dtictactoecodetoo?
Reply Share
Sumit>Lysia ayearago
uneedtouploadthe3DinterfacecodeintoArduino.Thenruntheprocessingappandopenthe3d
TicTacToecodeinthat.
Reply Share
Jennifer 2yearsago
ICan'tseemtogetthistowork.Thecoordinatessentarejust000.Isanyoneelsehavingthisissue?
ICan'tseemtogetthistowork.Thecoordinatessentarejust000.Isanyoneelsehavingthisissue?
Reply Share
JahaalMordeth>Jennifer ayearago
YeahI'mhavingthatissueaswell.Didyoueverfindafix?
Reply Share
SrenAndreasen>JahaalMordeth 8monthsago
itseemsextremelyshakyhereaswell...getting00andthensomelargerandomnumber
forthelastcoordinate
877
269
Reply Share
daivya 2yearsago
hey,I'mliketodotheprojectyoudid.Caniknowthepurposeofthisproject??
61
Reply Share
OckerOlivier 2yearsago
7
WhyamIgettingtheerror?ThenestedtypeMomentumAveragecannothideanenclosingtype?
Reply Share
AdrianSantillan 2yearsago
itsays"Cannotfindaclassortypecalled"Normalize"andsomeelseintheforumssaidsomethingabout
threeprograms,isn'tprocessingandarduinotheonlyones?
Reply Share
EvanGreally 2yearsago
HiIwasjustwonderingwoulditbepossibletosendthisdatatoPureData
Page Saved
Reply Share
Add Tags
chetanmistry 2yearsago
heyiwanttousethistouchlessinterfaceasmyprojecttopic.butiwantsomeapplicationthaticanbuild
usingthis.asitisaoneyearprojectpleasesuggestmesometopicsinwhichicanuse3dinterface
Reply Share
GiulioAmmendola ayearago
doesn'twork.theserialissending000valueshenceprocessiongisdoingnothing.anyfix?
Subscribe
Reply Share
AddDisqustoyoursiteAddDisqusAdd
Privacy
877
269
61
Page Saved
Add Tags