Sadržaj:

3D AIR miš - Arduino + obrada: 5 koraka
3D AIR miš - Arduino + obrada: 5 koraka

Video: 3D AIR miš - Arduino + obrada: 5 koraka

Video: 3D AIR miš - Arduino + obrada: 5 koraka
Video: SKR 1.4 - SKR 1.4 Turbo Firmware load 2024, Juli
Anonim
3D AIR miš | Arduino + obrada
3D AIR miš | Arduino + obrada

3D AIR miš | Arduino + ProcessingJa sam student industrijskog dizajna, a prošle godine sam u sklopu kursa pod nazivom "Tehnologija kao RAW materijal" izgradio ovaj projekt kao svoj završni rad. Većinu vremena radim sa SolidWorks -om, CAD softverom za dizajn i inženjering. Rotiranje čvrstog tijela na ekranu vrši se srednjim dugmetom miša. Tražio sam nešto intuitivnije. Ovako sam završio 3D zračni miš, gdje se stvarna rotacija objekta vrši pomicanjem miša u zraku na sve 3 osi - na isti način na koji biste rotirali objekt da ga držite u ruci. Koristio sam Arduino, nekoliko senzora i skicu obrade. NAPOMENE:- Za sada je ovo samo demonstracija koncepta, jer ne postoji stvarni dodatak za rad sa SolidWorkom (ali, naravno, slobodno napišite jedan ako znate kako:))- Budući da sav hardver nije bio moj, stvarni 3D miš je odavno nestao, a ja koristim neke fotografije i video kako bih pokušao u svemu ovome imati smisla i pružiti vam neka ideja ako želite sami pokušati izraditi jednu … Uživajte … (To je moj prvi Instructable) Evo video demo gotovog projekta

Korak 1: Hardver i stvari

Hardver i stvari
Hardver i stvari
Hardver i stvari
Hardver i stvari
Hardver i stvari
Hardver i stvari
Hardver i stvari
Hardver i stvari

Nije najjeftiniji Instructable jer se temelji na troosnom akcelerometeru + senzoru kompasa. Potrebne stvari:* Miš - rabljeni je bolji (samo zato što se koristi i jeftiniji), svaki miš bi to trebao učiniti. Morate imati malo prostora za smještaj senzora i neke dodatne žice, stoga nemojte se baviti ekstra tankim / ekstra sićušnim miševima.* Modul kompasa s kompenzacijom nagiba - HMC634 - Ovo je troosni senzor, kupljen na SpurkFunu za ~ 149 USD* Pretvarač logičkog nivoa - MORA! Budući da je Arduino 5V, a troosni senzor 3.3V, potreban vam je jedan od njih za pretvaranje 5V u 3.3V. Ima veliko ime, ali košta samo 1,95 USD na SpurkFunu.* Veliki optički detektor / fototranzistor - Ovo je jednostavan optički senzor, koji se koristi u ovom projektu za otkrivanje kada se miš podiže s radne površine. Kupljeno u SpurkFunu za 2,25 USD Ako nemate dovoljno mjesta za smještaj ovog u miš koji ste odabrali, možete koristiti ovaj, manji i jeftiniji. * Jedna (1) LED - bez obzira na boju, ultra svijetla će bolje raditi.* 2 otpornika - jedan (1) x 100Ω i jedan (1) x 100KΩ (za optički senzor)* Arduino ploča - DA! Koristio sam model Diecimila. Noviji Duemilanove dostupan je na SpurkFunu za oko 29,95 USD (Trebalo bi i raditi) + instaliran Arduino softver.* Instaliran softver za obradu.* Izvorni kod projekta (Ne brinite, moći ćete ga preuzeti za koju sekundu.) Plus: Neke vruće ljepilo (za popravljanje stvari) Nekoliko sićušnih vijaka. Oko 10 cm drvenog sidra od 6 mm (promjera). Neke dodatne žice. Lemilica. Nešto za rezanje plastike, upotrijebio sam nož za rezanje i turpiju (ZA oblikovanje). ("U redu, nemoj me mrziti zbog ovog koraka, engleski je moj drugi jezik, ako sam ovaj pogriješio, žao mi je, siguran sam da ćeš razumjeti o čemu govorim u sekundi. vidjet ćeš to na slikama ")

Korak 2: Elektronika

Elektronika
Elektronika
Elektronika
Elektronika

Sve treba lemiti zajedno … Na neki način … NAPOMENA: Troosni senzor je skupa sitnica, provjerite ožičenje prije nego što sve uključite … Pogledajte priložene sheme za sve ožičenje koje se koristi u ovom projektu. Priloženi izvorni kod može funkcionirati samo ako koristite iste pin brojeve kao i ja, ali slobodno ih promijenite pri povezivanju sve dok promijenite odgovarajuće brojeve u kodu. Spajanje troosnog senzora na pretvarač logičkog nivoa: Senzor VCC -> Arduino 3V3Sensor GND -> Arduino GndSensor SDA -> Pretvarač TXI (Chan1) Pretvarač TXO (Chan1) -> Arduino ANALOGNI ULAZ 4Sensor SCL -> Pretvarač TXI (Chan2) pretvarač TXO (Chan2) -> Arduino ANALOG U 5Converter GND (barem jedan od njih) -> Arduino GndConverter HV -> Arduino 5VConverter LV -> Arduino 3V3Optički senzor za Arduino: Pogledajte priloženu slikuDigitalno u = Pin 11 na ArduinoLED: GND nekim GND (koristio sam jedan od optičkih senzora)+ do Arduino PIN 13 (To je učinjeno jer ovaj pin već ima ugrađeni otpornik, ako koristite neki drugi, svakako upotrijebite otpornik da ne biste zapalili LED)

Korak 3: Priprema miša

Priprema miša
Priprema miša
Priprema miša
Priprema miša
Priprema miša
Priprema miša

Ovdje senzori nalaze svoje mjesto unutar kućišta miša. Pronađite najbolje mjesto za pričvršćivanje troosnog senzora. Provjerite je li poravnat i vodite računa o orijentaciji (znat ćete kad budete imali senzor u ruci) Možete ga popraviti kako god želite, upotrijebio sam 2 kratka komada drvenog sidra, izbušeno da prihvatim 2 sitna vijka, i vruće zalijepljen na glavnu ploču miša. Za optički senzor, oblikujte pravokutnu rupu na dnu miša, ideja je da senzor "vidi" tablicu cijelo vrijeme. Kad je miš podignut i stanje senzora je "otvoreno" (nema tablice za vidjeti) miš prelazi u 3D način rada (pokreće skicu obrade) Oblikujte drugu rupu za usmjeravanje dodatnih žica (od senzora do Arduina) iz plastično kućište. Moj se nalazio na desnoj strani miša. Popravite LED gdje će se prikazati. U ovom projektu LED je indikator 3D načina rada. Svoje stavljam pored silikonskog točkića miša. Kada se miš podigne, točak je imao lijep plavi sjaj.

Korak 4: Izvorni kod

Kod za Arduino napisao je Shachar Geiger, moj učitelj, a ja sam ga izmijenio za ovaj projekt. 3D kôd koda je osnovni kod koji se nalazi na web stranici Processing. Malo sam ga izmijenio. U kodu ovaj komad pretvara sirove informacije koje dolaze sa senzora (obično -180 na 180 x 10) u 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); Podaci sa senzora i Arduina idu na skicu obrade za svaku zasebnu os, ali sa prethodnim slovom osi (za primjer X12 Y200 Z130), sljedeći kod ispušta slovo i ostavlja samo vrijednosti koje se šalju u COM port while (port.available () == 0) {} očitavanje znakova = 0; while (čitanje! = 'x') {while (port.available () == 0) {} čitanje = (char) port.read ();} X = port.read (); while (čitanje! = 'Y') {while (port.available () == 0) {} čitanje = (char) port.read ();} Y = port.read (); while (čitanje! = 'z') {while (port.available () == 0) {} reading = (char) port.read ();} Z = port.read (); Ovaj komad koda ispušta sve negativne vrijednosti … 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;} inace {rotateZ (-(float) pY/25.0); rotateX ((float) pX /25.0);rotateY((float)pZ/25.0);} Priložena ZIP datoteka sadrži i Arduino i kod za obradu

Korak 5: Video zapis

To je to … Ovo je gotov projekt u videu. Postoji manji propust (možete vidjeti da kocka ponekad "skoči" u videu), to je zbog osi Z, možda vam se neće dogoditi …

Preporučuje se: