Cuprins:

Controler 3D DIY: 8 pași (cu imagini)
Controler 3D DIY: 8 pași (cu imagini)

Video: Controler 3D DIY: 8 pași (cu imagini)

Video: Controler 3D DIY: 8 pași (cu imagini)
Video: Ce înseamna semnul tau din nastere 2024, Noiembrie
Anonim
Controler 3D DIY
Controler 3D DIY

Realizați o interfață 3D utilizând șase rezistențe, folie de aluminiu și un Arduino. Luați asta, Wii. Update: o explicație mult mai amănunțită a acestui proiect este disponibilă de la revista Make. Ar putea fi mai ușor să le urmați instrucțiunile și cred că codul lor este mai actualizat. Scopul de bază aici a fost de a crea un sistem de detectare a poziției mâinii 3D pe care majoritatea oamenilor îl pot construi, păstrând în același timp o aparență de funcționalitate. Pentru a vă face o idee despre posibile aplicații, consultați videoclipul demonstrativ. Dacă credeți că puteți construi unul mai simplu și la fel de precis, sau puțin mai complex și mai precis, împărtășiți comentariile! Interfață 3D DIY: Tic Tac Toe de la Kyle McDonald pe Vimeo.

Pasul 1: Materiale

Materiale
Materiale
Materiale
Materiale

Instrumente

  • Arduino
  • Prelucrare
  • Freze de sârmă
  • Ciocan de lipit
  • Taietor de cutii

Materiale

  • (3) rezistențe de 270k
  • (3) rezistențe de 10k
  • Solder
  • Sârmă
  • Folie de aluminiu
  • Carton

Opțional:

  • Bandă (de ex.: scotch)
  • Sârmă ecranată (de exemplu: cablu coaxial, ~ 3 ')
  • (3) cleme de aligator
  • Antet cu 3 pini
  • Fermoar
  • Tuburi termoizolante sau lipici fierbinte

Pasul 2: Realizați plăcile

Faceți plăcile
Faceți plăcile
Faceți plăcile
Faceți plăcile

Acest senzor va funcționa folosind circuite RC simple, cu fiecare circuit detectând distanța într-o singură dimensiune. Am constatat că cel mai simplu mod de a aranja trei plăci capacitive în acest scop se află în colțul unui cub. Am tăiat colțul unei cutii de carton într-un cub de 8,5 , apoi am tăiat o folie de aluminiu pentru a se potrivi ca niște pătrate ușor mai mici. Banda de pe colțuri le menține la locul lor. Nu lipiți întregul perimetru, vom avea nevoie de ea mai târziu pentru atașarea clipurilor de aligator.

Pasul 3: Faceți conectorii

Faceți conectorii
Faceți conectorii
Faceți conectorii
Faceți conectorii
Faceți conectorii
Faceți conectorii

Pentru a conecta Arduino la plăci, avem nevoie de o sârmă ecranată. Dacă firul nu este protejat, firele în sine acționează mai evident ca parte a condensatorului. De asemenea, am constatat că clipurile de aligator facilitează conectarea lucrurilor la aluminiu - dar există și multe alte modalități.

  • Tăiați trei lungimi egale de cablu ecranat. Am ales aproximativ 12 ". Cu cât este mai scurt, cu atât mai bine. Cablul coaxial funcționează, dar cu cât este mai ușor / mai flexibil, cu atât mai bine.
  • Îndepărtați ultimul jumătate de centimetru pentru a dezvălui ecranarea, iar ultimul sfert de centimetru pentru a dezvălui firul.
  • Răsuciți clemele de aligator de fire pe fire și lipiți-le împreună.
  • Adăugați niște tuburi termocontractabile sau lipici fierbinte pentru a menține lucrurile împreună.

Pasul 4: Faceți circuitul

Faceți circuitul
Faceți circuitul
Faceți circuitul
Faceți circuitul
Faceți circuitul
Faceți circuitul
Faceți circuitul
Faceți circuitul

„Circuitul” este doar două rezistențe pe bucată de aluminiu. Pentru a înțelege de ce sunt acolo, ajută să știm ce facem cu Arduino. Ceea ce vom face cu fiecare pin, secvențial, este:

  • Setați pinul în modul de ieșire.
  • Scrieți un „low” digital pe pin. Aceasta înseamnă că ambele părți ale condensatorului sunt împământate și se vor descărca.
  • Setați pinul în modul de intrare.
  • Numărați cât timp este necesar pentru încărcarea condensatorului, așteptând ca pinul să ajungă "la înălțime". Acest lucru depinde de valorile pentru condensator și cele două rezistențe. Deoarece rezistențele sunt fixe, o modificare a capacității va fi măsurabilă. Distanța de la sol (mâna ta) va fi variabila primară care contribuie la capacitate.

Rezistoarele de 270k asigură tensiunea pentru încărcarea condensatoarelor. Cu cât valoarea este mai mică, cu atât se vor încărca mai repede. Rezistențele de 10k afectează și sincronizarea, dar nu înțeleg complet rolul lor. Vom realiza acest circuit la baza fiecărui fir.

  • Lipiți rezistorul de 10 k până la capătul firului opus clemei de aligator
  • Lipiți rezistorul de 270k dintre scut și fir (placa). Vom proteja firul cu același 5 V pe care îl folosim pentru a încărca condensatorii

Pasul 5: Finalizați și atașați conectorul

Finalizați și atașați conectorul
Finalizați și atașați conectorul
Finalizați și atașați conectorul
Finalizați și atașați conectorul
Finalizați și atașați conectorul
Finalizați și atașați conectorul

Odată ce cei 3 conectori sunt terminați, vă recomandăm să adăugați tuburi termocontractabile sau adeziv fierbinte pentru a le izola unul de celălalt, deoarece veți lipi ecranarea / punctele de 5 V împreună.

Pentru mine, a fost cel mai ușor să lipiți împreună cei doi conectori externi și apoi să adăugați al treilea. După ce ați lipit cei trei conectori, adăugați un al patrulea fir pentru alimentarea scutului / 5 V.

Pasul 6: conectați și încărcați codul

Conectați și încărcați codul
Conectați și încărcați codul
Conectați și încărcați codul
Conectați și încărcați codul
  • Conectați conectorul la Arduino (pinii 8, 9 și 10)
  • Fixați clemele de aligator pe plăci (8: x: stânga, 9: y: jos, 10: z: dreapta)
  • Asigurați alimentarea prin conectarea celui de-al patrulea fir (firul meu roșu) la 5 V de la Arduino
  • Conectați Arduino, porniți mediul Arduino
  • Încărcați codul pe tablă (notă: dacă vă aflați în afara Americii de Nord, va trebui probabil să schimbați #define mains la 50 în loc de 60).

Codul Arduino este atașat ca Interface3D.ino și codul de procesare este atașat ca TicTacToe3D.zip

Pasul 7: Faceți ceva cool

Dacă vă uitați la fereastra serială din mediul Arduino, veți observa că scuipă coordonate 3D brute la 115200 baud, la aproximativ 10 Hz = 60Hz / (2 cicluri complete * 3 senzori). Codul efectuează măsurători de câte ori este posibil pe fiecare senzor pe durata a două cicluri ale frecvenței de alimentare a rețelei (care este surprinzător de stabilă), pentru a anula orice cuplare. Primul lucru pe care l-am făcut a fost să fac un Tic 3D simplu. Interfață Tac Toe. Dacă doriți să începeți cu o demonstrație de lucru, codul este disponibil aici, trebuie doar să introduceți folderul „TicTacToe3D” în folderul Schițe de procesare. Trei lucruri utile pe care le demonstrează codul Tic Tac Toe:

  • Linearizează datele brute. Timpul de încărcare urmează de fapt o lege a puterii în raport cu distanța, deci trebuie să luați rădăcina pătrată a uneia de-a lungul timpului (de exemplu, distanța ~ = sqrt (1 / timp))
  • Normalizează datele. Când porniți schița, țineți apăsat butonul stâng al mouse-ului în timp ce mișcați mâna pentru a defini limitele spațiului cu care doriți să lucrați.
  • Adăugarea „impulsului” la date pentru a atenua orice nervozitate.

În practică, folosind această configurație cu folie de aluminiu pot obține o gamă de cea mai mare dimensiune a foliei (cea mai mare piesă pe care am testat-o este de 1,5 metri pătrați).

Pasul 8: Variații și note

Variații

  • Construiți senzori masivi
  • Optimizați rezistențele și codul pentru lucrurile care vibrează rapid și folosiți-le ca pickup / microfon
  • Probabil că există și alte trucuri pentru decuplarea sistemului de zumzet de curent alternativ (un condensator uriaș între plăci și sol?)
  • Am experimentat cu ecranarea plăcilor de pe partea inferioară, dar pare să provoace doar probleme
  • Realizați un selector de culori RGB sau HSB
  • Controlul parametrilor video sau muzicale; secvențați un ritm sau o melodie
  • Suprafață mare, ușor îndoită, cu mai multe plăci + un proiector = interfața „Minority Report”

Note

Terenul de joacă Arduino are două articole despre senzor tactil capacitiv (CapSense și CapacitiveSensor). În cele din urmă, am mers cu o inversare a unui design pe care l-am întâlnit într-o copie a unui prieten de la "Physical Computing" (Sullivan / Igoe), care descrie modul de utilizare a RCtime (circuitul avea condensatorul și un rezistor fixați și am măsurat valoarea unui Momentul microsecundelor a fost realizat folosind un cod ușor optimizat de pe forumurile Arduino. Din nou: doar de la începutul de la o mulțime de scheme teremice nu înțeleg complet, știu foarte bine că există modalități mai bune de a face distanță capacitivă, dar am vrut să fac ceva cât se poate de simplu, care să funcționeze. Dacă aveți un design la fel de simplu și funcțional, postați-l în comentarii! Mulțumesc lui Dane Kouttron pentru că mi-a tolerat toate întrebările electronice de bază și m-a ajutat să înțeleg modul în care funcționează un simplu circuit terem heterodin (inițial, aveam să le folosesc - și, dacă ar fi reglat corect, probabil că ar fi mai precis).

Premiul I în Concursul de cărți Instructables

Recomandat: