Talaan ng mga Nilalaman:

3D AIR Mouse - Pagpoproseso ng Arduino +: 5 Hakbang
3D AIR Mouse - Pagpoproseso ng Arduino +: 5 Hakbang

Video: 3D AIR Mouse - Pagpoproseso ng Arduino +: 5 Hakbang

Video: 3D AIR Mouse - Pagpoproseso ng Arduino +: 5 Hakbang
Video: Create a 3D model Jet using Code! A Tinkercad Codeblocks Creation 2024, Hulyo
Anonim
3D AIR Mouse | Pagproseso ng Arduino +
3D AIR Mouse | Pagproseso ng Arduino +

3D AIR mouse | Arduino + Pagproseso Ako ay isang mag-aaral sa disenyo ng Industrial, at noong nakaraang taon bilang bahagi ng kurso na tinatawag na "Teknolohiya bilang materyal na RAW" itinayo ko ang proyektong ito bilang aking panghuling gawain. Nagtatrabaho ako ng halos lahat ng oras sa SolidWorks, isang CAD software para sa disenyo at paggawa ng. Ang pag-ikot ng isang solidong katawan sa screen ay tapos na gamit ang gitnang pindutan ng mouse. Naghahanap ako para sa isang bagay na mas madaling maunawaan. Ganito ko natapos ang paggawa ng 3D air mouse, kung saan ang aktwal na pag-ikot ng isang bagay ay ginagawa sa pamamagitan ng paglipat ng mouse sa gitna ng hangin sa lahat ng 3 axis - sa parehong paraan mo paikutin ang bagay kung hinawakan mo ito sa iyong kamay. Ginamit ko ang Arduino, isang pares ng mga sensor at isang Pagguhit ng sketch. TANDAAN: - Tulad ng ngayon, ito ay isang pagpapakita lamang ng konsepto, dahil walang aktwal na plug-in upang gumana sa SolidWork (ngunit syempre, huwag mag-atubiling sumulat ng isa kung alam mo kung paano:) - Dahil ang lahat ng mga hardware ay hindi sa akin, ang aktwal na 3D mouse ay matagal na nawala, at gumagamit ako ng ilang mga larawan at isang video upang subukan at magkaroon ng kahulugan sa lahat ng ito, at bigyan ka ilang ideya kung nais mong subukan at bumuo ng isa sa iyong sarili … Masiyahan ito … (Ito ang aking unang Maituturo) Narito ang isang video demo ng natapos na proyekto

Hakbang 1: Hardware at Stuff

Hardware at Bagay-bagay
Hardware at Bagay-bagay
Hardware at Bagay-bagay
Hardware at Bagay-bagay
Hardware at Bagay-bagay
Hardware at Bagay-bagay
Hardware at Bagay-bagay
Hardware at Bagay-bagay

Hindi ito ang murang Makatuturo dahil batay ito sa isang 3 axis accelerometer + compass sensor. Stuff na kakailanganin mo: * Isang mouse - ang isang ginamit ay mas mahusay (dahil lamang sa ginagamit ito at mas mura), dapat gawin ng anumang mouse. Kailangan mong magkaroon ng ilang puwang upang mapuntahan ang mga sensor at ilang sobrang mga wire, kaya huwag pumunta para sa labis na manipis / labis na maliliit na daga. * Module ng Compass na may Tilt Compensation - HMC634 - Ito ang 3 axis sensor, binili sa SpurkFun para sa ~ $ 149 * Logic Level Converter - DAPAT! Dahil ang Arduino ay 5V at ang 3 axis sensor ay 3.3V, kailangan mo ang isa sa mga iyon upang i-convert ang 5V sa 3.3V. Mayroon itong malaking pangalan, ngunit nagkakahalaga lamang ng $ 1.95 sa SpurkFun. * Malaking Optical Detector / Phototransistor - Ito ay isang simpleng sensor na optikal, ginamit sa proyektong ito upang matukoy kapag ang mouse ay inaangat mula sa ibabaw ng trabaho. Nabili sa SpurkFun sa halagang $ 2.25 Kung wala kang sapat na puwang upang maitaguyod ang isang ito sa loob ng iyong napiling mouse, maaari mong gamitin ang isang ito, mas maliit at mas mura. * Isa (1) LED - hindi alintana ang kulay, ang sobrang maliwanag ay gagana nang mas mahusay. * 2 Mga Resistor - Isa (1) x 100Ω at Isa (1) x 100KΩ (Para sa optical sensor) * Arduino board - DA! Ginamit ko ang modelo ng Diecimila. Ang isang mas bagong Duemilanove ay magagamit sa SpurkFun para sa halos $ 29.95 (Dapat ding gumana) + Arduino software na naka-install. * Na-install ang Processingsoftware. * Ang source code ng proyekto (Huwag mag-alala, mai-download mo ito sa isang seg.) Dagdag pa: Ang ilan mainit na pandikit (upang ayusin ang mga bagay sa lugar) Isang pares ng mga maliliit na tornilyo. Tungkol sa 10cm ng isang 6mm (Dia.) na kahoy na angkla. Ilang sobrang mga wire. Nag-iinit na bakal. Isang bagay upang maputol ang plastik, gumamit ako ng isang kutsilyong pagputol at isang file (PARA sa paghubog). ("Ok, huwag mo akong kamuhian para sa hakbang na ito, Ingles ang aking pang-2 na wika, kung nagkamali ako ng isang ito, Humihingi ako ng pasensya, sigurado akong mauunawaan mo kung ano ang aking kinukuha sa isang segundo. Kailan makikita mo ito sa mga larawan ")

Hakbang 2: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika

Ang lahat ay kailangang soldered magkasama… Sa isang paraan… TANDAAN: Ang sensor ng 3 axis ay isang mamahaling maliit na bagay na i-double check ang mga kable bago paandarin ang lahat … Tingnan ang mga iskema na nakakabit para sa lahat ng mga kable na ginamit sa proyektong ito. gagana lamang kung gagamit ka ng parehong mga pin number na ginawa ko, ngunit huwag mag-atubiling baguhin ang mga iyon kapag kumokonekta hangga't binago mo ang naaangkop na mga numero sa code. Pagkonekta ng 3 axis sensor sa converter level ng lohika: Sensor VCC -> Arduino 3V3Sensor GND -> Arduino GndSensor SDA -> Converter TXI (Chan1) Converter TXO (Chan1) -> Arduino ANALOG SA 4Sensor SCL -> Converter TXI (Chan2) Converter TXO (Chan2) -> Arduino ANALOG SA 5Converter GND (kahit isa sa mga ito) -> Arduino GndConverter HV -> Arduino 5VConverter LV -> Arduino 3V3Opical sensor sa Arduino: Tingnan ang nakalakip na imaheDigital in = Pin 11 sa ArduinoLED: GND sa ilang GND (Gumamit ako ng isa sa mga optical sensor) + sa Arduino PIN 13 (Ginawa ito dahil ang pin na ito ay mayroon nang isang on-board resistor, kung gagamit ka ng iba, siguraduhing gumamit ng isang risistor upang hindi mo masusunog ang LED)

Hakbang 3: Paghahanda ng Mouse

Paghahanda ng Mouse
Paghahanda ng Mouse
Paghahanda ng Mouse
Paghahanda ng Mouse
Paghahanda ng Mouse
Paghahanda ng Mouse

Dito matatagpuan ang mga sensor ng kanilang lugar sa loob ng pabahay ng mouse. Hanapin ang pinakamagandang lugar upang ayusin ang 3 axis sensor. Siguraduhin na leveled ito at isipin ang oryentasyon (Malalaman mo kung magkakaroon ka ng sensor) Maaari mong ayusin ito sa anumang paraang gusto mo, Gumamit ako ng 2 maiikling piraso ng kahoy na angkla, nag-drill upang tanggapin ang 2 maliliit na turnilyo, at maiinit na nakadikit sa pangunahing board ng mouse. Para sa optical sensor, hugis ng isang hugis-parihaba na butas sa ilalim ng mouse, ang ideya ay upang "makita" ng sensor ang talahanayan sa lahat ng oras. Kapag ang mouse ay itinaas at ang estado ng sensor ay "bukas" (walang talahanayan upang makita) ang mouse ay lumipat sa 3D mode (pinapatakbo ang Pagproseso ng sketch) Hugis ng isa pang butas para sa pagruruta ng labis na mga wire (mula sa mga sensor hanggang sa Arduino) palabas ng pabahay ng plastik. Ang minahan ay matatagpuan sa kanang bahagi ng mouse. Ayusin ang LED kung nasaan ang ipapakita. Sa proyektong ito ang LED ay ang tagapagpahiwatig ng 3D-mode. Inilalagay ko ang aking katabi ng silicone mouse wheel. Kapag ang mouse ay itinaas, ang gulong ay may magandang asul na glow.

Hakbang 4: Ang Source Code

Ang code para sa Arduino ay isinulat ni Shachar Geiger, aking guro, At binago ko para sa proyektong ito. Ang 3D cube code ay ang pangunahing code na matatagpuan sa web site ng Pagproseso. Medyo binago ko ito. Sa code, pinapalitan ng tipak na ito ang hilaw na impormasyon na nagmumula sa sensor (karaniwang -180 hanggang 180 x 10) sa 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. magsulat (z); Ang impormasyon mula sa sensor at Arduino ay papunta sa Processing sketch para sa bawat magkakahiwalay na axis, ngunit may isang naunang letra ng axis (para sa exp X12 Y200 Z130), ang sumusunod na code ay nahuhulog ng titik at iniiwan lamang ang mga halagang maipapadala sa COM port habang (port.available () == 0) {} char pagbabasa = 0; habang (pagbabasa! = 'x') {habang (port.available () == 0) {} pagbabasa = (char) port.read ();} X = port.read (); habang (nagbabasa! = 'Y') {habang (port.available () == 0) {} nagbasa = (char) port.read ();} Y = port.read (); habang (nagbabasa! = 'z') {habang (port.available () == 0) {} nagbasa = (char) port.read ();} Z = port.read (); Ang tipak ng code na ito ay nahuhulog ang lahat ng mga negatibong halaga … kung ((X! = -1) && (Y! = -1) && (Z! = -1)) {rotateZ (- (float) Y / 25.0); rotateX ((float) X / 25.0); paikutinY ((float) Z / 25.0); pX = X; pY = Y; pZ = Z;} iba pa {rotateZ (- (float) pY / 25.0); rotateX ((float) pX /25.0);rotateY((float)pZ/25.0);} Ang nakalakip na ZIP file ay naglalaman ng parehong Arduino at Processing code

Hakbang 5: Video

Iyon lang … Ito ang natapos na proyekto sa isang video. Mayroong isang menor de edad na glitch (Maaari mong makita na ang kubo minsan "tumatalon" sa video), Ito ay dahil sa Z axis, maaaring hindi mangyari sa iyo …

Inirerekumendang: