Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Lag et 3D -grensesnitt med seks motstander, aluminiumsfolie og en Arduino. Ta det, Wii. Update: en mye mer grundig forklaring på dette prosjektet er tilgjengelig fra Make Magazine. Det kan være lettere å følge instruksjonene deres, og jeg tror koden deres er mer oppdatert. Det grunnleggende målet her var å lage et 3D håndposisjonssensorsystem som de fleste kan bygge, samtidig som det beholder en viss funksjonalitet. For å få en ide om mulige applikasjoner, sjekk ut demo -videoen. Hvis du tror du kan bygge en som er enklere og like nøyaktig, eller litt mer kompleks og mer nøyaktig, del i kommentarene! DIY 3D -grensesnitt: Tic Tac Toe fra Kyle McDonald på Vimeo.
Trinn 1: Materialer
Verktøy
- Arduino
- Behandling
- Avbitertang
- Loddejern
- Boksåpner
Materialer
- (3) 270k motstander
- (3) 10k motstander
- Lodding
- Metalltråd
- Aluminiumsfolie
- Kartong
Valgfri:
- Tape (f.eks.: Scotch)
- Skjermet ledning (f.eks.: koaksialkabel, ~ 3 ')
- (3) krokodilleklipp
- 3-pinners topptekst
- Glidelås
- Krympfolierør eller varmt lim
Trinn 2: Lag platene
Denne sensoren fungerer ved hjelp av enkle RC -kretser, med hver kretsavstandsavstand i en dimensjon. Jeg fant ut at den enkleste måten å ordne tre kapasitive plater til dette formålet er i hjørnet av en terning. Jeg kuttet hjørnet av en pappeske i en 8,5 terning, og kutter deretter noen aluminiumsfolie for å passe som litt mindre firkanter. Tape på hjørnene holder dem på plass. Ikke teip ned hele omkretsen, vi trenger det senere for å feste krokodilleklippene.
Trinn 3: Lag kontaktene
For å koble Arduino til platene trenger vi litt skjermet ledning. Hvis ledningen ikke er skjermet, fungerer ledningene i seg selv tydeligere som en del av kondensatoren. Jeg har også funnet ut at alligatorklemmer gjør det veldig enkelt å koble ting til aluminium - men det er sannsynligvis mange andre måter også.
- Skjær tre like lange skjermede ledninger. Jeg valgte omtrent 12 ". Jo kortere jo bedre. Koaksialkabel fungerer, men jo lettere/mer fleksibel jo bedre.
- Strip den siste halvdelen eller så for å avsløre skjermen, og den siste kvart tommer for å avsløre ledningen.
- Vrid alligatorklemmene til ledningene på ledningene og lodd dem sammen.
- Tilsett litt varmekrympeslange eller varmt lim for å holde ting sammen.
Trinn 4: Lag kretsen
"Kretsen" er bare to motstander per stykke aluminium. For å forstå hvorfor de er der, hjelper det å vite hva vi gjør med Arduino. Det vi skal gjøre med hver pin, sekvensielt, er:
- Sett pinnen til utgangsmodus.
- Skriv en digital "lav" til pinnen. Dette betyr at begge sider av kondensatoren er jordet, og den vil tømmes.
- Sett pinnen til inndatamodus.
- Tell hvor lang tid det tar for kondensatoren å lade ved å vente på at pinnen blir "høy". Dette avhenger av verdiene for kondensatoren og de to motstandene. Siden motstandene er faste, vil en endring i kapasitans være målbar. Avstanden fra bakken (hånden din) vil være hovedvariabelen som bidrar til kapasitansen.
270k motstander gir spenningen for å lade kondensatorene. Jo mindre verdi, desto raskere vil de lade. 10k -motstandene påvirker også timingen, men jeg forstår ikke helt deres rolle. Vi lager denne kretsen ved foten av hver ledning.
- Lodd 10k -motstanden til enden av ledningen overfor krokodillen
- Lodd 270k -motstanden mellom skjoldet og ledningen (platen). Vi vil skjerme ledningen med de samme 5 V som vi bruker til å lade kondensatorene
Trinn 5: Fullfør og fest kontakten
Når de tre kontaktene er ferdige, vil du kanskje legge til varmekrympeslange eller varmt lim for å isolere dem fra hverandre, fordi du skal lodde avskjermingen/5 V -punkter sammen.
For meg var det lettest å lodde de to ytterste kontaktene sammen og deretter legge til den tredje. Når du har loddet de tre kontaktene, legger du til en fjerde ledning for å forsyne skjoldet/5 V.
Trinn 6: Koble til og last opp kode
- Plugg kontakten i Arduino (pinne 8, 9 og 10)
- Fest alligatorklemmene på platene (8: x: venstre, 9: y: bunn, 10: z: høyre)
- Gi strøm ved å koble den fjerde ledningen (min røde ledning) til Arduino 5 V
- Koble til Arduino, start Arduino -miljøet
- Last opp koden til tavlen (merk: hvis du er utenfor Nord -Amerika, må du sannsynligvis endre #define strømnettet til 50 i stedet for 60).
Arduino -koden er vedlagt som Interface3D.ino og behandlingskoden er vedlagt som TicTacToe3D.zip
Trinn 7: Gjør noe kult
Hvis du ser på det serielle vinduet i Arduino -miljøet, vil du legge merke til at det spytter ut rå 3D -koordinater på 115200 baud, på omtrent 10 Hz = 60Hz / (2 hele sykluser * 3 sensorer). Koden måler så mange ganger som mulig på hver sensor i løpet av to sykluser av nettfrekvensen (som er overraskende stabil) for å avbryte en kobling. Det første jeg gjorde med dette var å lage en enkel 3D Tic Tac Toe -grensesnitt. Hvis du vil starte med en fungerende demo, er koden tilgjengelig her, bare slipp mappen "TicTacToe3D" i mappen Processing sketches. Tre nyttige ting som Tic Tac Toe -koden demonstrerer:
- Lineariserer rå data. Ladetiden følger faktisk en kraftlov i forhold til avstand, så du må ta kvadratroten til en over tid (dvs. avstand ~ = sqrt (1/tid))
- Normaliserer dataene. Når du starter skissen, holder du venstre museknapp nede mens du flytter hånden rundt for å definere grensene for rommet du vil jobbe med.
- Legger til "momentum" i dataene for å jevne ut uro.
I praksis kan jeg ved å bruke dette oppsettet med aluminiumsfolie få et utvalg av den største dimensjonen av folie (det største stykket jeg har testet er 1,5 kvadratmeter).
Trinn 8: Variasjoner og notater
Variasjoner
- Bygg massive sensorer
- Optimaliser motstandene og koden for ting som vibrerer raskt, og bruk den som en pickup/mikrofon
- Det er sannsynligvis andre triks for å koble systemet fra vekselstrøm (en stor kondensator mellom platene og bakken?)
- Jeg har eksperimentert med å skjerme platene på bunnen, men det ser bare ut til å forårsake problemer
- Lag en RGB- eller HSB -fargevelger
- Kontroller video- eller musikkparametere; sekvens et slag eller melodi
- Stor, litt bøyd overflate med flere plater + et prosjektor = "Minority Report" -grensesnitt
Merknader
Arduino -lekeplassen har to artikler om kapasitiv berøringsfølelse (CapSense og CapacitiveSensor). Til slutt gikk jeg med en inversjon av et design jeg snublet over i en venns kopi av "Physical Computing" (Sullivan/Igoe) som beskrev hvordan man bruker RCtime (kretsen hadde kondensatoren og en motstand fast, og målte verdien av en Mikrosekund -timingen ble oppnådd ved hjelp av litt optimalisert kode fra Arduino -forumene. Igjen: bare fra å begynne med tonnevis med theremin -diagrammer, forstår jeg ikke helt, jeg er godt klar over at det finnes bedre måter å gjøre kapasitiv avstandsregistrering, men jeg ønsket å gjøre noe så enkelt som mulig som fremdeles er funksjonelt. Hvis du har et like enkelt og funksjonelt design, legg det ut i kommentarene! Takk til Dane Kouttron for å tolerere alle mine grunnleggende elektroniske spørsmål og hjelpe meg å forstå hvordan en enkel heterodyne theremin -krets fungerer (opprinnelig skulle jeg bruke disse - og, hvis den er riktig innstilt, vil den sannsynligvis være mer nøyaktig).
Førstepremie i The Instructables Book Contest