Sisukord:

3D AIR hiir - Arduino + töötlemine: 5 sammu
3D AIR hiir - Arduino + töötlemine: 5 sammu

Video: 3D AIR hiir - Arduino + töötlemine: 5 sammu

Video: 3D AIR hiir - Arduino + töötlemine: 5 sammu
Video: Air Defense System- DIY Arduino Project - The X Lab 2024, Juuli
Anonim
3D AIR hiir | Arduino + töötlemine
3D AIR hiir | Arduino + töötlemine

3D AIR hiir | Olen tööstusdisaini üliõpilane ja eelmisel aastal ostsin kursuse "Tehnoloogia RAW -materjalina" raames selle projekti oma viimase tööna. Ma töötan enamiku ajast CAD -tarkvaraga SolidWorks, mis on mõeldud disainimiseks ja arendamiseks.. Tahke keha pööramine ekraanil toimub hiire keskmise nupu abil. Otsisin midagi intuitiivsemat. Nii jõudsin ma 3D õhuhiireni, kus objekti tegelik pöörlemine toimub, liigutades hiirt kõigi kolme telje keskel õhus - samamoodi, kui pööraksite objekti, kui hoiate seda käes. Ma kasutasin Arduinot, paari sensorit ja töötlusjoonist. MÄRKUSED:- Praeguseks on see vaid kontseptsiooni demonstratsioon, kuna SolidWorkiga töötamiseks pole tegelikku pistikprogrammi (kuid muidugi võite vabalt kirjutage üks, kui teate, kuidas:) Mõni idee, kui soovite seda ise ehitada … Nautige seda … (See on minu esimene juhendatav) Siin on valmis projekti video demo

Samm: riistvara ja muu

Riistvara ja muu
Riistvara ja muu
Riistvara ja muu
Riistvara ja muu
Riistvara ja muu
Riistvara ja muu
Riistvara ja muu
Riistvara ja muu

See pole kõige odavam juhitav, kuna see põhineb 3 -teljelisel kiirendusmõõturil + kompassianduril. Vajalikud asjad:* Hiir - kasutatud hiir on parem (ainult sellepärast, et see on kasutatud ja odavam), seda peaks tegema iga hiir. Teil peab olema ruumi andurite ja lisatraatide paigutamiseks, nii et ärge otsige eriti õhukesi / eriti pisikesi hiiri.* Kallutuskompensatsiooniga kompassimoodul - HMC634 - See on 3 -teljeline andur, ostetud SpurkFunist ~ 149 dollarit* loogika taseme muundur - PEAB! Kuna Arduino on 5 V ja 3 -teljeline andur on 3.3 V, vajate ühte neist, et muuta 5 V 3.3 V -ks. Sellel on suur nimi, kuid see maksab SpurkFunis ainult 1,95 dollarit.* Suur optiline detektor / fototransistor - see on lihtne optiline andur, mida kasutatakse selles projektis, et tuvastada, kui hiir tööpinnalt tõstetakse. Ostetud SpurkFunist hinnaga 2,25 dollarit. Kui teil pole piisavalt ruumi selle hiire paigutamiseks, saate seda väiksemat ja odavamat kasutada. * Üks (1) valgusdiood - värviga ei arvestata, ülikerge töötab paremini.* 2 takisti - üks (1) x 100Ω ja üks (1) x 100KΩ (optilise anduri jaoks)* Arduino plaat - DA! Kasutasin Diecimila mudelit. Uuem Duemilanove on saadaval SpurkFunis umbes 29,95 dollari eest (peaks ka töötama) + installitud Arduino tarkvara.* Protsessoritarkvara on installitud.* Projekti lähtekood (ärge muretsege, saate selle sekundiga alla laadida.) Pluss: mõned kuum liim (asjade paika kinnitamiseks) Paar pisikest kruvi. Umbes 10 cm 6 mm (dia.) puidust ankrust. Mõned lisatraadid. Jootekolb. Midagi, millega plastikut lõigata, kasutasin lõikamisnuga ja viili (Vormimiseks). ("Okei, ära vihka mind selle sammu pärast, inglise keel on mu teine keel, kui ma sellest valesti aru sain, siis vabandust, ma olen kindel, et saad mõne sekundi pärast aru, millest ma räägin näete seda piltidel ")

2. samm: elektroonika

Elektroonika
Elektroonika
Elektroonika
Elektroonika

Kõik tuleb kokku jootma … Mõnes mõttes… MÄRKUS. Kolmeteljeline andur on kallis väike asi, enne kui kõik sisse lülitate, kontrollige juhtmestikku uuesti … Vaadake kõigi selles projektis kasutatud juhtmestike skeeme. Lisatud lähtekood saab töötada ainult siis, kui kasutate samu PIN -numbreid, mida minagi, kuid muutke neid ühendamisel vabalt, kui muudate koodis sobivaid numbreid. 3 -teljelise anduri ühendamine loogika taseme muunduriga: Andur VCC -> Arduino 3V3 Sensor GND -> Arduino GndSensor SDA -> Converter TXI (Chan1) Converter TXO (Chan1) -> Arduino ANALOG IN 4Sensor SCL -> Converter TXI (Chan2) Converter TXO (Chan2) -> Arduino ANALOG IN 5Converter GND (vähemalt üks neist) -> Arduino GndConverter HV -> Arduino 5VConverter LV -> Arduino 3V3 Optiline andur Arduino jaoks: vaadake lisatud pilti GND (ma kasutasin ühte optilisest andurist)+ kuni Arduino PIN 13 (seda tehti, kuna sellel tihvtil on juba sisseehitatud takisti; kui kasutate teist, kasutage kindlasti takistit, et LED-i ei põleks)

3. samm: hiire ettevalmistamine

Hiire ettevalmistamine
Hiire ettevalmistamine
Hiire ettevalmistamine
Hiire ettevalmistamine
Hiire ettevalmistamine
Hiire ettevalmistamine

Siit leiavad andurid oma koha hiire korpuses. Leidke parim koht kolmeteljelise anduri kinnitamiseks. Veenduge, et see on tasane ja pöörake tähelepanu orientatsioonile (saate teada, kui andur käes on) Saate seda parandada nii, nagu soovite, ma kasutasin 2 lühikest puidust ankrutükki, mis olid puuritud kahe väikese kruvi kinnitamiseks ja kuum liimitud hiire põhiplaadile. Optilise anduri jaoks kujundage hiire põhjas ristkülikukujuline auk, mõte on, et andur "näeks" tabelit kogu aeg. Kui hiir on üles tõstetud ja anduri olek on "avatud" (tabelit pole näha), lülitub hiir 3D -režiimi (käivitab töötlemise visandi). Vormige teine auk lisatraatide (anduritelt Arduinole) juhtimiseks plastikust korpus. Minu oma asus hiire paremal küljel. Kinnitage LED, kus see kuvatakse. Selles projektis on LED 3D-režiimi indikaator. Panen oma silikoonist hiireratta kõrvale. Kui hiirt üles tõsta, oli rattal kena sinine sära.

4. samm: lähtekood

Arduino koodi kirjutas minu õpetaja Shachar Geiger ja ma muutsin selle projekti jaoks. 3D kuupkood on töötlemise veebisaidil leitud põhikood. Ma muutsin seda natuke. Koodis teisendab see tükk andurilt pärineva toorinformatsiooni (tavaliselt -180 kuni 180 x 10) väärtuseks 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; Sarjakirjutus (z); Anduri ja Arduino teave läheb iga eraldi telje töötlemise visandile, kuid eelneva telje tähega (näit. X12 Y200 Z130) kaotab järgmine kood tähe ja jätab ainult COM -le saadetavad väärtused port while (port.available () == 0) {} char reading = 0; while (reading! = 'x') {while (port.available () == 0) {} reading = (char) port.read ();} X = port.read (); samas (lugemine! = '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 (); See kooditükk jätab kõik negatiivsed väärtused… kui ((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);} Lisatud ZIP -fail sisaldas nii Arduino kui ka töötlemiskoodi

Samm: video

See on kõik … See on video lõppenud projekt. On väike tõrge (näete, et kuubik mõnikord "hüppab" videos), see on Z -telje tõttu, see ei pruugi teiega juhtuda …

Soovitan: