Indholdsfortegnelse:

DIY 3D -controller: 8 trin (med billeder)
DIY 3D -controller: 8 trin (med billeder)

Video: DIY 3D -controller: 8 trin (med billeder)

Video: DIY 3D -controller: 8 trin (med billeder)
Video: Create Fury Bowser with Clay / Super Mario Bowser's Fury World [kiArt] 2024, November
Anonim
DIY 3D -controller
DIY 3D -controller

Lav en 3D -grænseflade ved hjælp af seks modstande, aluminiumsfolie og en Arduino. Tag det, Wii. Update: en meget mere grundig forklaring på dette projekt er tilgængelig fra Make Magazine. Det kan være lettere at følge deres instruktioner, og jeg tror, at deres kode er mere opdateret. Det grundlæggende mål her var at lave et 3D håndpositionssensor-system, som de fleste mennesker kan bygge, mens de stadig bevarer en vis funktionalitet. For at få en idé om mulige applikationer, kan du tjekke demovideoen. Hvis du tror, du kan bygge en, der er mere enkel og lige præcis eller lidt mere kompleks og mere præcis, kan du dele i kommentarerne! DIY 3D -grænseflade: Tic Tac Toe fra Kyle McDonald på Vimeo.

Trin 1: Materialer

Materialer
Materialer
Materialer
Materialer

Værktøjer

  • Arduino
  • Forarbejdning
  • Trådskærere
  • Loddekolbe
  • Hobbykniv

Materialer

  • (3) 270k modstande
  • (3) 10k modstande
  • Lodde
  • Tråd
  • Sølvpapir
  • Pap

Valgfri:

  • Tape (f.eks.: Scotch)
  • Afskærmet ledning (f.eks.: koaksialkabel, ~ 3 ')
  • (3) krokodilleklip
  • 3-benet header
  • Lynlås
  • Krympfolierør eller varm lim

Trin 2: Lav tallerkenerne

Lav tallerkenerne
Lav tallerkenerne
Lav tallerkenerne
Lav tallerkenerne

Denne sensor fungerer ved hjælp af enkle RC -kredsløb, hvor hvert kredsløb registrerer afstand i en dimension. Jeg fandt ud af, at den letteste måde at arrangere tre kapacitive plader til dette formål er i hjørnet af en terning. Jeg skar hjørnet af en papkasse i en 8,5 terning, og skar derefter noget aluminiumsfolie til, så det passede som lidt mindre firkanter. Tape på hjørnerne holder dem på plads. Tape ikke ned i hele omkredsen, vi skal bruge det senere til fastgørelse af krokodilleklemmerne.

Trin 3: Lav stikkene

Lav stikkene
Lav stikkene
Lav stikkene
Lav stikkene
Lav stikkene
Lav stikkene

For at forbinde Arduino til pladerne har vi brug for noget afskærmet ledning. Hvis ledningen ikke er afskærmet, fungerer ledningerne i sig selv tydeligere som en del af kondensatoren. Jeg har også fundet ud af, at krokodilleklip gør det virkelig let at forbinde ting til aluminium - men der er sikkert også mange andre måder.

  • Klip tre ens længder af afskærmet kabel. Jeg valgte cirka 12 ". Jo kortere jo bedre. Koaksialkabel virker, men jo lettere/mere fleksibelt jo bedre.
  • Strip den sidste halve tomme eller deromkring for at afsløre afskærmningen, og den sidste kvart tomme for at afsløre tråden.
  • Drej krokodilleklemmerne til ledningerne på ledningerne og lod dem sammen.
  • Tilføj noget varmekrympeslange eller varm lim for at holde tingene sammen.

Trin 4: Lav kredsløbet

Lav kredsløbet
Lav kredsløbet
Lav kredsløbet
Lav kredsløbet
Lav kredsløbet
Lav kredsløbet
Lav kredsløbet
Lav kredsløbet

"Kredsløbet" er kun to modstande pr. Stykke aluminium. For at forstå, hvorfor de er der, hjælper det at vide, hvad vi laver med Arduino. Hvad vi vil gøre med hver pin, sekventielt, er:

  • Indstil stiften til udgangstilstand.
  • Skriv en digital "lav" til nålen. Dette betyder, at begge sider af kondensatoren er jordet, og det vil aflade.
  • Indstil stiften til input -tilstand.
  • Tæl hvor lang tid det tager for kondensatoren at oplade ved at vente på, at stiften bliver "høj". Dette afhænger af værdierne for kondensatoren og de to modstande. Da modstandene er faste, vil en ændring i kapacitans være målelig. Afstanden fra jorden (din hånd) vil være den primære variabel, der bidrager til kapacitansen.

De 270k modstande giver spændingen til at oplade kondensatorerne. Jo mindre værdien er, jo hurtigere vil de oplade. De 10k modstande påvirker også timingen, men jeg forstår ikke helt deres rolle. Vi laver dette kredsløb i bunden af hver ledning.

  • Lod lod 10k modstanden til enden af tråden modsat krokodilleklemmen
  • Lod den 270k modstand mellem skærmen og ledningen (pladen). Vi skærmer ledningen med de samme 5 V, som vi bruger til at oplade kondensatorerne

Trin 5: Afslut og fastgør stikket

Afslut og fastgør stikket
Afslut og fastgør stikket
Afslut og fastgør stikket
Afslut og fastgør stikket
Afslut og fastgør stikket
Afslut og fastgør stikket

Når de 3 stik er færdige, kan du tilføje varmekrympeslange eller varm lim for at isolere dem fra hinanden, fordi du lodder afskærmningen/5 V -punkter sammen.

For mig var det nemmest at lodde de to yderste stik sammen og derefter tilføje det tredje. Når du har loddet de tre stik, skal du tilføje en fjerde ledning til forsyning af skærmen/5 V.

Trin 6: Tilslut og upload kode

Tilslut og upload kode
Tilslut og upload kode
Tilslut og upload kode
Tilslut og upload kode
  • Sæt stikket i Arduino (ben 8, 9 og 10)
  • Fastgør krokodilleklipperne på pladerne (8: x: venstre, 9: y: bund, 10: z: højre)
  • Giv strøm ved at tilslutte den fjerde ledning (min røde ledning) til Arduino's 5 V
  • Tilslut Arduino, start Arduino -miljøet
  • Upload koden til tavlen (Bemærk: hvis du er uden for Nordamerika, skal du sandsynligvis ændre #define net til 50 i stedet for 60).

Arduino -koden er vedhæftet som Interface3D.ino og behandlingskoden er vedhæftet som TicTacToe3D.zip

Trin 7: Gør noget fedt

Hvis du ser på det serielle vindue i Arduino -miljøet, vil du bemærke, at det spytter rå 3D -koordinater ud på 115200 baud, ved cirka 10 Hz = 60Hz / (2 fulde cyklusser * 3 sensorer). Koden tager målinger så mange gange som muligt på hver sensor i løbet af to cyklusser af netfrekvensen (som er overraskende stabil) for at annullere enhver kobling. Den første ting jeg gjorde med dette var at lave en simpel 3D Tic Tac Toe -grænseflade. Hvis du vil starte med en fungerende demo, er koden tilgængelig her, bare slip mappen "TicTacToe3D" i mappen Processing sketches. Tre nyttige ting, som Tic Tac Toe -koden demonstrerer:

  • Lineariserer de rådata. Opladningstiden følger faktisk en strømlov i forhold til afstand, så du skal tage kvadratroden af en over tiden (dvs. afstand ~ = sqrt (1/tid))
  • Normaliserer data. Når du starter skitsen, skal du holde venstre museknap nede, mens du bevæger din hånd rundt for at definere grænserne for det rum, du vil arbejde med.
  • Tilføjelse af "momentum" til dataene for at udjævne eventuelle rystelser.

I praksis kan jeg ved hjælp af denne opsætning med aluminiumsfolie få en rækkevidde af den største dimension af folie (det største stykke, jeg har testet, er 1,5 kvadratfod).

Trin 8: Variationer og noter

Variationer

  • Byg massive sensorer
  • Optimer modstande og kode for ting, der vibrerer hurtigt, og brug det som en pickup/mikrofon
  • Der er sandsynligvis andre tricks til afkobling af systemet fra vekselstrøm (en enorm kondensator mellem pladerne og jorden?)
  • Jeg har eksperimenteret med at afskærme pladerne på bunden, men det ser kun ud til at forårsage problemer
  • Lav en RGB- eller HSB -farvevælger
  • Styr video- eller musikparametre; sekvens et beat eller melodi
  • Stor, let bøjet overflade med flere plader + en projektor = "Minority Report" interface

Noter

Arduino -legepladsen har to artikler om kapacitiv berøringsfølelse (CapSense og CapacitiveSensor). Til sidst gik jeg med en inversion af et design, jeg faldt over i en vens kopi af "Physical Computing" (Sullivan/Igoe), der beskrev, hvordan man bruger RCtime (kredsløbet havde kondensatoren og en modstand rettet, og målte værdien af en Mikrosekundstimingen blev opnået ved hjælp af en lidt optimeret kode fra Arduino -forummet. Igen: lige fra at starte med tonsvis af thereminschemaer forstår jeg ikke helt, jeg er godt klar over, at der er bedre måder at udføre kapacitiv afstandsregistrering, men jeg ville lave noget så enkelt som muligt, der stadig er funktionelt. Hvis du har et lige så enkelt og funktionelt design, kan du skrive det i kommentarerne! Tak til Dane Kouttron for at tolerere alle mine grundlæggende elektroniske spørgsmål og hjælpe mig med at forstå, hvordan et simpelt heterodyne theremin -kredsløb fungerer (oprindeligt ville jeg bruge disse - og, hvis den er indstillet korrekt, ville den sandsynligvis være mere præcis).

Første præmie i The Instructables Bogkonkurrence

Anbefalede: