Sisällysluettelo:

3D AIR -hiiri - Arduino + käsittely: 5 vaihetta
3D AIR -hiiri - Arduino + käsittely: 5 vaihetta

Video: 3D AIR -hiiri - Arduino + käsittely: 5 vaihetta

Video: 3D AIR -hiiri - Arduino + käsittely: 5 vaihetta
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Heinäkuu
Anonim
3D AIR -hiiri | Arduino + käsittely
3D AIR -hiiri | Arduino + käsittely

3D AIR -hiiri | Arduino + ProcessingOlen teollisen suunnittelun opiskelija, ja viime vuonna osana kurssia nimeltä "Technology as RAW materiel" rakensin tämän projektin viimeiseksi työkseni. Työskentelen suurimman osan ajasta suunnittelun ja kehittämisen CAD -ohjelmiston SolidWorksin kanssa. Kiinteän kappaleen kääntäminen näytöllä tapahtuu hiiren keskimmäisellä painikkeella. Etsin jotain intuitiivisempaa. Näin päädyin tekemään 3D -ilmahiiren, jossa kohteen todellinen pyöriminen tapahtuu siirtämällä hiirtä ilmassa kaikilla kolmella akselilla - samalla tavalla kuin pyörittäisit objektia, jos pidät sitä kädessäsi. Käytin Arduinoa, paria anturia ja prosessiluonnosta HUOMAUTUKSIA:- Tämä on toistaiseksi vain havainnollistus konseptista, koska SolidWorkin kanssa ei ole varsinaista laajennusta (mutta tietysti voit kirjoita yksi, jos tiedät miten:) jotain ideaa, jos haluat yrittää rakentaa sellaisen itse … Nauti siitä … (Se on ensimmäinen Instructable) Tässä on videon demo valmiista projektista

Vaihe 1: Laitteisto ja tavarat

Laitteisto ja tavarat
Laitteisto ja tavarat
Laitteisto ja tavarat
Laitteisto ja tavarat
Laitteisto ja tavarat
Laitteisto ja tavarat
Laitteisto ja tavarat
Laitteisto ja tavarat

Se ei ole halvin Instructable, koska se perustuu 3 -akseliseen kiihtyvyysanturiin + kompassianturiin. Sinulla on oltava tilaa anturien ja ylimääräisten johtojen sijoittamiselle, joten älä käytä erityisen ohuita / erittäin pieniä hiiriä. 149 dollaria* Logiikan tasomuunnin - PITÄÄ! Koska Arduino on 5 V ja 3 -akselinen anturi 3,3 V. Sillä on suuri nimi, mutta se maksaa vain 1,95 dollaria SpurkFunissa.* Suuri optinen ilmaisin / valotransistori - Tämä on yksinkertainen optinen anturi, jota käytetään tässä projektissa havaitsemaan, milloin hiiri nostetaan työtasolta. Ostettu SpurkFunista hintaan 2,25 dollaria. Jos sinulla ei ole tarpeeksi tilaa tämän hiiren sijoittamiseen valitsemasi hiiren sisälle, voit käyttää tätä pienempää ja halvempaa. * Yksi (1) LED - väreistä riippumatta, erittäin kirkas toimii paremmin.* 2 vastusta - yksi (1) x 100Ω ja yksi (1) x 100KΩ (optiselle anturille)* Arduino -kortti - DA! Käytin Diecimila -mallia. Uudempi Duemilanove on saatavana SpurkFunissa noin 29,95 dollarilla (pitäisi toimia myös) + Arduino -ohjelmisto asennettuna.* Käsittelyohjelmisto asennettu.* Projektin lähdekoodi (Älä huoli, saat ladata sen sekunnissa.) Plus: Jotkut kuuma liima (tavaroiden kiinnittämiseksi paikalleen) Pari pientä ruuvia. Noin 10 cm 6 mm: n (halk.) puuankkurista, joitakin ylimääräisiä johtoja, juotin. Jotain leikkaamaan muovia, käytin leikkuuterää ja viilua (Muotoiluun). ("Ok, älä vihaa minua tässä vaiheessa, englanti on toinen kieleni, jos olen ymmärtänyt tämän väärin, olen pahoillani, ymmärrät varmasti, mitä tarkoitan hetken kuluttua näet sen kuvissa ")

Vaihe 2: Elektroniikka

Elektroniikka
Elektroniikka
Elektroniikka
Elektroniikka

Kaikki on juotettava yhteen… tavallaan… HUOMAUTUS: 3 -akselinen anturi on kallis pikkujuttu, tarkista johdotus ennen kuin kytket kaiken päälle… Katso kaikkien tässä projektissa käytettyjen johtojen kaaviot. Liitteenä oleva lähdekoodi voi toimia vain, jos käytät samoja PIN -numeroita kuin minä, mutta voit vapaasti muuttaa niitä yhdistettäessä, kunhan muutat koodin sopivia numeroita. 3 -akselisen anturin liittäminen logiikan tasomuuntimeen: Anturi VCC -> Arduino 3V3Sensor GND -> Arduino GndSensor SDA -> Muunnin TXI (Chan1) Muunnin TXO (Chan1) -> Arduino ANALOG IN 4Sensor SCL -> Muunnin TXI (Chan2) Muunnin TXO (Chan2) -> Arduino ANALOG IN 5Converter GND (ainakin yksi niistä) -> Arduino GndConverter HV -> Arduino 5VConverter LV -> Arduino 3V3 Optinen anturi Arduinoon: Katso liitteenä oleva kuva GND (käytin yhtä optisesta anturista)+ Arduino PIN 13: een (tämä tehtiin, koska tässä tapissa on jo sisäinen vastus, jos käytät toista, varmista, että käytät vastusta, jotta et polta LEDiä)

Vaihe 3: Hiiren valmistelu

Hiiren valmistelu
Hiiren valmistelu
Hiiren valmistelu
Hiiren valmistelu
Hiiren valmistelu
Hiiren valmistelu

Täältä anturit löytävät paikkansa hiiren kotelon sisällä. Löydä paras paikka kiinnittää 3 -akselinen anturi. Varmista, että se on vaakasuorassa ja ota huomioon suunta (tiedät, kun anturi on kädessäsi) Voit korjata sen haluamallasi tavalla. Käytin 2 lyhyttä puuankkuria, jotka porattiin hyväksymään 2 pientä ruuvia, ja liimattu kuumana hiiren emolevyyn. Muotoile optiselle anturille suorakulmainen reikä hiiren pohjalle, ajatuksena on, että anturi "näkee" pöydän koko ajan. Kun hiiri nostetaan ja anturin tila on "auki" (taulukkoa ei näy), hiiri siirtyy 3D -tilaan (suorittaa prosessiluonnoksen) Muotoile toinen reikä ylimääräisten johtojen (antureista Arduinoon) reitittämiseksi muovinen kotelo. Omani sijaitsi hiiren oikealla puolella. Tässä projektissa LED on 3D-tilan ilmaisin. Asetan omani silikonisen hiiren pyörän viereen. Kun hiirtä nostetaan, pyörässä oli kaunis sininen hehku.

Vaihe 4: Lähdekoodi

Arduinon koodin kirjoitti opettajani Shachar Geiger, ja olen muokannut tätä projektia varten. 3D -kuutiokoodi on Processing -verkkosivustolla oleva peruskoodi. Koodissa tämä osa muuntaa anturista (tyypillisesti -180: stä 180 x 10: een) saadut raakatiedot 0-255: ksi getHeading (); Serial.write ('x'); x = (x +1800) / 14; Sarja.kirjoita (x); Sarja.kirjoita ('y'); y = (y+1800) / 14; Sarja.kirjoita (y); Sarja.kirjoita ('z'); z = (z+1800) / 14; Sarja.kirjoitus (z); Anturin ja Arduinon tiedot menevät kunkin erillisen akselin käsittelyluonnokseen, mutta edellisen akselin kirjaimella (esim. X12 Y200 Z130) seuraava koodi pudottaa kirjaimen ja jättää vain arvot, jotka lähetetään COM: lle portti kun (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 = portti.read (); while (reading! = 'z') {while (port.available () == 0) {} reading = (char) port.read ();} Z = port.read (); Tämä koodinpala pudottaa kaikki negatiiviset arvot… jos ((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);} Liitteenä oleva ZIP -tiedosto sisälsi sekä Arduino- että Processing -koodin

Vaihe 5: Video

Siinä se… Tämä on videon valmis projekti. Pieni virhe (näet, että kuutio joskus "hyppää" videossa), Tämä johtuu Z -akselista, ei ehkä tapahdu sinulle …

Suositeltava: