Cuprins:

Mouse 3D AIR - Procesare Arduino +: 5 pași
Mouse 3D AIR - Procesare Arduino +: 5 pași

Video: Mouse 3D AIR - Procesare Arduino +: 5 pași

Video: Mouse 3D AIR - Procesare Arduino +: 5 pași
Video: Curs / Tutorial Arduino: Introducere 2024, Noiembrie
Anonim
Mouse 3D AIR | Procesare Arduino +
Mouse 3D AIR | Procesare Arduino +

Mouse 3D AIR | Arduino + Processing Sunt student la proiectare industrială, iar anul trecut, ca parte a unui curs numit „Tehnologie ca material RAW”, am construit acest proiect ca lucrare finală. Lucrez de cele mai multe ori cu SolidWorks, un software CAD pentru proiectare și inginerie. Rotirea unui corp solid pe ecran se face folosind butonul din mijloc al mouse-ului. Căutam ceva mai intuitiv. Așa am ajuns să fac mouse-ul 3D 3D, unde rotația efectivă a unui obiect se face mișcând mouse-ul în aer pe toate cele 3 axe - în același mod în care ați roti obiectul dacă l-ați ține în mână. Am folosit Arduino, câțiva senzori și o schiță de procesare. NOTE: - Deocamdată, aceasta este doar o demonstrație a conceptului, deoarece nu există un plug-in propriu-zis care să funcționeze cu SolidWork (dar, desigur, nu ezitați să scrieți unul dacă știți cum:) - Deoarece toate componentele hardware nu erau ale mele, mouse-ul 3D actual a dispărut de mult și folosesc câteva fotografii și un videoclip pentru a încerca să am sens în toate acestea și pentru a vă oferi o idee dacă doriți să încercați să construiți unul singur … Bucurați-vă de asta … (Este primul meu instructabil) Iată un demo video al proiectului finalizat

Pasul 1: Hardware și lucruri

Hardware și alte lucruri
Hardware și alte lucruri
Hardware și alte lucruri
Hardware și alte lucruri
Hardware și alte lucruri
Hardware și alte lucruri
Hardware și alte lucruri
Hardware și alte lucruri

Nu este cel mai ieftin instructabil, deoarece se bazează pe un accelerometru pe 3 axe + senzor de busolă. Lucruri de care aveți nevoie: * Un mouse - unul folosit este mai bun (doar pentru că este folosit și mai ieftin), orice mouse ar trebui să facă. Trebuie să aveți spațiu pentru adăpostirea senzorilor și a unor fire suplimentare, așa că nu mergeți la șoareci foarte subțiri / foarte mici. $ 149 * Convertor de nivel logic - O TREBUIE! Deoarece Arduino are 5V și senzorul cu 3 axe este de 3,3V, aveți nevoie de unul dintre acestea pentru a converti 5V în 3,3V. Are un nume mare, dar costă doar 1,95 USD la SpurkFun. * Detector optic mare / fototranzistor - Acesta este un senzor optic simplu, utilizat în acest proiect pentru a detecta când mouse-ul este ridicat de pe suprafața de lucru. Cumpărat la SpurkFun pentru 2,25 USD Dacă nu aveți suficient spațiu pentru a-l adăposti în mouse-ul ales, îl puteți folosi, mai mic și mai ieftin. * Un (1) LED - nu contează culoarea, ultra luminos va funcționa mai bine. * 2 rezistoare - Un (1) x 100Ω și unul (1) x 100KΩ (pentru senzorul optic) * Placă Arduino - DA! Am folosit modelul Diecimila. Un Duemilanove mai nou este disponibil la SpurkFun pentru aproximativ 29,95 USD (ar trebui să funcționeze și el) + software Arduino instalat. * Software de procesare instalat. * Codul sursă al proiectului (Nu vă faceți griji, veți putea să-l descărcați într-o sec.) Plus: Unele lipici fierbinte (pentru a fixa lucrurile la locul lor) Câteva șuruburi minuscule. Aproximativ 10cm dintr-o ancoră de lemn de 6 mm (Dia.). Câteva fire suplimentare. Fier de lipit. PENTRU modelare). („Ok, nu mă urăște pentru acest pas, engleza este a doua mea limbă, dacă am greșit-o, îmi pare rău, sunt sigur că veți înțelege despre ce mă ocup într-o secundă. o vei vedea în imagini )

Pasul 2: Electronică

Electronică
Electronică
Electronică
Electronică

Totul trebuie lipit împreună … Într-un fel … NOTĂ: Senzorul cu 3 axe este un lucru scump, verificați dublu cablajul înainte de a alimenta totul … Consultați schemele atașate pentru toate cablurile utilizate în acest proiect. poate funcționa numai dacă utilizați aceleași numere de pin pe care le-am făcut, dar nu ezitați să le schimbați atunci când vă conectați, atâta timp cât schimbați numerele corespunzătoare din cod. Conectarea senzorului de 3 axe la convertorul de nivel logic: senzor VCC -> Arduino 3V3Sensor GND -> Arduino GndSensor SDA -> Convertor TXI (Chan1) Convertor TXO (Chan1) -> Arduino ANALOG IN 4Sensor SCL -> Convertor TXI (Chan2) Convertor TXO (Chan2) -> Arduino ANALOG IN 5Converter GND (cel puțin unul dintre ele) -> Arduino GndConverter HV -> Arduino 5VConverter LV -> Arduino 3V3 Senzor optic către Arduino: vezi imaginea atașată Digital în = Pin 11 de pe ArduinoLED: GND la unele GND (am folosit unul dintre senzorii optici) + la Arduino PIN 13 (Acest lucru a fost făcut deoarece acest pin are deja un rezistor la bord, dacă utilizați unul diferit, asigurați-vă că utilizați un rezistor, astfel încât să nu ardeți LED-ul)

Pasul 3: Pregătirea mouse-ului

Pregătirea mouse-ului
Pregătirea mouse-ului
Pregătirea mouse-ului
Pregătirea mouse-ului
Pregătirea mouse-ului
Pregătirea mouse-ului

Acesta este locul în care senzorii își găsesc locul în carcasa mouse-ului. Găsiți cel mai bun loc pentru fixarea senzorului pe 3 axe. Asigurați-vă că este nivelat și aveți grijă de orientare (Veți ști când veți avea senzorul în mână) Puteți repara cum doriți, am folosit 2 bucăți scurte de ancoră din lemn, găurite pentru a accepta cele 2 șuruburi mici și lipit la cald de placa principală a mouse-ului. Pentru senzorul optic, formați o gaură dreptunghiulară în partea de jos a mouse-ului, ideea este ca senzorul să „vadă” tabelul tot timpul. Când mouse-ul este ridicat și starea senzorului este „deschisă” (nu se vede masă) mouse-ul trece în modul 3D (rulează schița de procesare) Formați o altă gaură pentru direcționarea firelor suplimentare (de la senzori la Arduino) din carcasă din plastic. Al meu a fost situat în partea dreaptă a mouse-ului. Fixează LED-ul unde se va afișa. În acest proiect, LED-ul este indicatorul în modul 3D. Îl așez pe al meu lângă roata de mouse din silicon. Când mouse-ul este ridicat, roata avea o strălucire albastră frumoasă.

Pasul 4: Codul sursă

Codul pentru Arduino a fost scris de Shachar Geiger, profesorul meu, și a fost modificat de mine pentru acest proiect. Codul cubului 3D este codul de bază găsit pe site-ul web Procesare. L-am modificat puțin. În cod, această bucată convertește informațiile brute provenite de la senzor (de obicei -180 la 180 x 10) la 0-255 getHeading (); Serial.write ('x'); x = (x +1800) / 14; Serial.write (x); Serial.write ('y'); y = (y + 1800) / 14; Serial.write (y); Serial.write ('z'); z = (z + 1800) / 14; Serial.write (z); Informațiile de la senzor și Arduino merg la schița de procesare pentru fiecare axă separată, dar cu o literă de axă precedentă (pentru exp. X12 Y200 Z130), următorul cod renunță la literă și lasă doar valorile care trebuie trimise către COM port while (port.available () == 0) {} char reading = 0; while (reading! = 'x') {while (port.available () == 0) {} reading = (char) port.read ();} X = port.read (); while (reading! = 'Y') {while (port.available () == 0) {} reading = (char) port.read ();} Y = port.read (); while (reading! = 'z') {while (port.available () == 0) {} reading = (char) port.read ();} Z = port.read (); Această bucată de cod scade toate valorile negative … dacă ((X! = -1) && (Y! = -1) && (Z! = -1)) {rotateZ (- (float) Y / 25.0); rotateX ((float) X / 25.0); rotateY ((float) Z / 25.0); pX = X; pY = Y; pZ = Z;} else {rotateZ (- (float) pY / 25.0); rotateX ((float) pX /25.0);rotateY((float)pZ/25.0);} Fișierul ZIP atașat conținea atât codul Arduino, cât și codul de procesare

Pasul 5: Video

Gata … Acesta este proiectul finalizat într-un videoclip. Există o problemă minoră (puteți vedea că cubul uneori „sare” în videoclip), asta din cauza axei Z, s-ar putea să nu vi se întâmple …

Recomandat: