Kazalo:

3D AIR miška - Arduino + obdelava: 5 korakov
3D AIR miška - Arduino + obdelava: 5 korakov

Video: 3D AIR miška - Arduino + obdelava: 5 korakov

Video: 3D AIR miška - Arduino + obdelava: 5 korakov
Video: Octopus Max EZ v1.0 - EZ5160 2024, November
Anonim
3D AIR miška | Arduino + obdelava
3D AIR miška | Arduino + obdelava

3D AIR miška | Arduino + Processing Sem študent industrijskega oblikovanja in lani sem v okviru tečaja z naslovom "Tehnologija kot RAW material" ta projekt izdelal kot svoje zadnje delo. Večino časa delam s programsko opremo CAD za oblikovanje in oblikovanje SolidWorks.. Vrtenje trdnega telesa na zaslonu poteka s srednjim gumbom miške. Iskal sem nekaj bolj intuitivnega. Tako sem na koncu naredil 3D zračno miško, pri kateri se dejansko vrtenje predmeta izvede s premikanjem miške v zraku na vseh 3 osi - na enak način, kot bi predmet zavrteli, če bi ga držali v roki. Uporabil sem Arduino, nekaj senzorjev in skico obdelave. OPOMBE:- Zaenkrat je to le demonstracija koncepta, saj ni dejanskega vtičnika za delo s SolidWorkom (seveda pa vas prosimo, da napiši eno, če veš, kako:))- Ker vsa strojna oprema ni bila moja, je dejanska 3D miška že zdavnaj manjkala in uporabljam nekaj fotografij in videoposnetka, da poskušam vse to narediti smiselno in ti dati nekaj zamisli, če ga želite sami poskusiti zgraditi … Uživajte … (To je moj prvi Instructable) Tukaj je video predstavitev dokončanega projekta

1. korak: Strojna oprema in stvari

Strojna oprema in stvari
Strojna oprema in stvari
Strojna oprema in stvari
Strojna oprema in stvari
Strojna oprema in stvari
Strojna oprema in stvari
Strojna oprema in stvari
Strojna oprema in stvari

Ni najcenejši Instructable, saj temelji na 3 -osnem merilniku pospeška in senzorju kompasa. Potrebne stvari:* Miška - rabljena je boljša (samo zato, ker je rabljena in cenejša), to bi morala narediti vsaka miška. Za namestitev senzorjev in nekaj dodatnih žic morate imeti nekaj prostora, zato ne posegajte po vitkih / zelo drobnih miškah.* Kompasni modul s kompenzacijo nagiba - HMC634 - To je 3 -osni senzor, kupljen pri SpurkFunu za ~ 149 USD* Pretvornik logične ravni - OBVEZNO! Ker je Arduino 5V in 3 -osni senzor 3.3V, potrebujete enega od teh, da pretvorite 5V v 3.3V. Ima veliko ime, a pri SpurkFunu stane le 1,95 USD.* Veliki optični detektor / fototranzistor - To je preprost optični senzor, ki se v tem projektu uporablja za zaznavanje, ko se miška dvigne z delovne površine. Kupljeno pri SpurkFunu za 2,25 USD Če nimate dovolj prostora za namestitev te v izbrano miško, lahko uporabite to, manjšo in cenejšo. * Ena (1) LED - ne glede na barvo, ultra svetla bo delovala bolje.* 2 upora - en (1) x 100Ω in en (1) x 100KΩ (za optični senzor)** Arduino plošča - DA! Uporabil sem model Diecimila. Novejši Duemilanove je na voljo v SpurkFunu za približno 29,95 USD (tudi to bi moralo delovati) + nameščena programska oprema Arduino.* Nameščena programska oprema za obdelavo.* Izvorna koda projekta (Ne skrbite, v nekaj sekundah jo boste lahko prenesli.) vroče lepilo (za popravilo stvari) Nekaj drobnih vijakov. Približno 10 cm lesenega sidra 6 mm (Dia.). Nekaj dodatnih žic. Spajkalnik. Nekaj, s čimer lahko režemo plastiko, sem uporabil rezalni nož in pilico (ZA oblikovanje). ("V redu, ne sovraži me za ta korak, angleščina je moj drugi jezik. Če sem to naredil narobe, se opravičujem, prepričan sem, da boste v nekaj sekundah razumeli, o čem govorim. to boste videli na slikah ")

2. korak: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika

Vse je treba spajati skupaj … Na nek način … OPOMBA: 3 -osni senzor je draga malenkost, preden še enkrat vklopite vse stvari, preverite ožičenje … Oglejte si priložene sheme za vsa ožičenja, uporabljena v tem projektu. lahko deluje le, če uporabljate iste številke PIN kot jaz, vendar jih lahko pri povezovanju spremenite, dokler spremenite ustrezne številke v kodi. Priključitev 3 -osnega senzorja na pretvornik logične ravni: Senzor VCC -> Arduino 3V3Sensor GND -> Arduino GndSensor SDA -> Pretvornik TXI (Chan1) Pretvornik TXO (Chan1) -> Arduino ANALOG IN 4Sensor SCL -> Pretvornik TXI (Chan2) Pretvornik TXO (Chan2) -> Arduino ANALOG V 5 Pretvornik GND (vsaj eden od njih) -> Arduino GndConverter HV -> Arduino 5V Pretvornik LV -> Arduino 3V3 Optični senzor za Arduino: glej priloženo sliko Digitalno v = Pin 11 na ArduinoLED: GND nekaterim GND (uporabil sem enega od optičnih senzorjev)+ do Arduino PIN 13 (To je bilo storjeno, ker ima ta pin že vgrajen upor, če uporabljate drugega, uporabite upor, da LED ne zažgete)

3. korak: Priprava miške

Priprava miške
Priprava miške
Priprava miške
Priprava miške
Priprava miške
Priprava miške

Tukaj senzorji najdejo svoje mesto v ohišju miške. Poiščite najboljše mesto za pritrditev 3 -osnega senzorja. Prepričajte se, da je izravnan in upoštevajte orientacijo (vedeli boste, ko boste imeli senzor v roki) Lahko ga popravite, kakor želite, uporabil sem 2 kratka kosa lesenega sidra, izvrtana, da sprejmete 2 drobna vijaka, in vroče prilepljen na glavno ploščo miške. Za optični senzor oblikujte pravokotno luknjo na dnu miške, ideja je, da senzor ves čas "vidi" mizo. Ko je miška dvignjena in je stanje senzorja "odprto" (tabela ni vidna), miška preklopi v način 3D (izvede skico obdelave). Oblikujte drugo luknjo za usmerjanje dodatnih žic (od senzorjev do Arduina) iz plastično ohišje. Moj je bil na desni strani miške. Popravite LED, kjer je prikazano. V tem projektu je LED indikator načina 3D. Svojega postavim ob silikonsko kolo miške. Ko je miška dvignjena, je kolo imelo lep modri sijaj.

4. korak: izvorna koda

Kodo za Arduino je napisal moj učitelj Shachar Geiger, jaz pa sem jo za ta projekt spremenil. Koda 3D kocke je osnovna koda, ki jo najdemo na spletnem mestu Processing. Nekoliko sem ga spremenil. V kodi ta kos pretvori surove informacije, ki prihajajo iz senzorja (običajno od -180 do 180 x 10) v 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); Podatki iz senzorja in Arduina gredo na skico obdelave za vsako ločeno os, vendar s prejšnjo črko osi (za primer X12 Y200 Z130) naslednja koda izpusti črko in pusti le vrednosti, ki jih je treba poslati v COM vrata while (port.available () == 0) {} odčitavanje znakov = 0; medtem ko (branje! = 'x') {medtem ko (port.available () == 0) {} branje = (char) port.read ();} X = port.read (); while (branje! = 'Y') {while (port.available () == 0) {} reading = (char) port.read ();} Y = vrata.read (); while (branje! = 'z') {while (port.available () == 0) {} reading = (char) port.read ();} Z = port.read (); Ta kos kode izpusti vse negativne vrednosti … if ((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);} Priložena datoteka ZIP vsebuje Arduino in kodo za obdelavo

5. korak: Video

To je to … To je končan projekt v videoposnetku. Obstaja manjša napaka (lahko vidite, da kocka včasih "skoči" v videoposnetku), to je zaradi osi Z, se vam morda ne bo zgodilo …

Priporočena: