Satura rādītājs:

3D AIR pele - Arduino + apstrāde: 5 soļi
3D AIR pele - Arduino + apstrāde: 5 soļi

Video: 3D AIR pele - Arduino + apstrāde: 5 soļi

Video: 3D AIR pele - Arduino + apstrāde: 5 soļi
Video: РАСКРЫТ ОБМАН с ЛЕТАЮЩИМ ТЕЛЕФОНОМ (сделал НАСТОЯЩИЙ) 2024, Novembris
Anonim
3D AIR pele | Arduino + apstrāde
3D AIR pele | Arduino + apstrāde

3D AIR pele | Es esmu rūpnieciskā dizaina students, un pagājušajā gadā kursa "Tehnoloģija kā RAW materiāls" ietvaros es izveidoju šo projektu kā savu pēdējo darbu. Lielāko daļu laika strādāju ar SolidWorks, CAD programmatūru projektēšanai un radīšanai.. Cieta korpusa pagriešana ekrānā tiek veikta, izmantojot peles vidējo pogu. Es meklēju kaut ko intuitīvāku. Tādā veidā es beidzot darīju 3D gaisa peli, kur faktiskā objekta rotācija tiek veikta, pārvietojot peli gaisā pa visām 3 asīm - tāpat kā jūs rotētu objektu, ja to turētu rokā. Es izmantoju Arduino, pāris sensorus un apstrādes skici. PIEZĪMES:- Pašlaik tas ir tikai koncepcijas demonstrējums, jo darbam ar SolidWork nav reāla spraudņa (bet, protams, uzraksti vienu, ja zini kā:) dažas idejas, ja vēlaties pats to uzbūvēt … Izbaudiet to … (tā ir mana pirmā pamācība) Šeit ir gatavā projekta video demonstrācija

1. darbība: aparatūra un sīkumi

Aparatūra un sīkumi
Aparatūra un sīkumi
Aparatūra un sīkumi
Aparatūra un sīkumi
Aparatūra un sīkumi
Aparatūra un sīkumi
Aparatūra un sīkumi
Aparatūra un sīkumi

Tas nav lētākais Instructable, jo tas ir balstīts uz 3 asu akselerometru + kompasa sensoru. Nepieciešamās lietas:* Pele - lietota ir labāka (tikai tāpēc, ka tā ir lietota un lētāka), jebkurai pelei vajadzētu darīt. Jums ir jābūt brīvai vietai, kur novietot sensorus un dažus papildu vadus, tāpēc neizmantojiet īpaši plānas / īpaši sīkas peles.* Kompasa modulis ar slīpuma kompensāciju - HMC634 - Šis ir trīs asu sensors, kas nopirkts vietnē SpurkFun par ~ $ 149* loģikas līmeņa pārveidotājs - JĀBŪT! Tā kā Arduino ir 5V un 3 asu sensors ir 3.3V, jums ir nepieciešams viens no tiem, lai 5V pārvērstu 3.3V. Tam ir liels nosaukums, bet SpurkFun maksā tikai 1,95 USD.* Liels optiskais detektors / fototransistors - Šis ir vienkāršs optiskais sensors, ko izmanto šajā projektā, lai noteiktu, kad pele tiek pacelta no darba virsmas. Iegādāts vietnē SpurkFun par 2,25 ASV dolāriem. Ja jums nav pietiekami daudz vietas, lai to ievietotu izvēlētajā pelē, varat izmantot šo, mazāku un lētāku. * Viena (1) gaismas diode - neņemiet vērā krāsu, īpaši spilgti darbosies labāk.* 2 rezistori - viens (1) x 100Ω un viens (1) x 100KΩ (optiskajam sensoram)* Arduino tāfele - DA! Es izmantoju Diecimila modeli. Jaunāka Duemilanove ir pieejama vietnē SpurkFun par aptuveni 29,95 ASV dolāriem (arī vajadzētu darboties) + instalēta Arduino programmatūra.* Instalēta apstrādes programmatūra.* Projekta avota kods (neuztraucieties, jūs to lejupielādēsit pēc sekundes.) Plus: daži karstā līme (lai salabotu lietas) Pāris sīkas skrūves. Apmēram 10 cm no 6 mm (diametrs) koka enkura. Daži papildu vadi. Lodāmurs. Kaut ar ko sagriezt plastmasu, es izmantoju griešanas nazi un failu (Formēšanai). ("Labi, nenīst mani par šo soli, angļu valoda ir mana otrā valoda, ja es kļūdījos, atvainojiet, es esmu pārliecināts, ka jūs pēc sekundes sapratīsit, par ko es runāju. jūs to redzēsit attēlos ")

2. solis: elektronika

Elektronika
Elektronika
Elektronika
Elektronika

Viss ir jāpielodē kopā … Savā ziņā … PIEZĪME. Trīs asu sensors ir dārgs sīkums, pirms visu ieslēdzat, vēlreiz pārbaudiet elektroinstalāciju … Skatiet shēmas, kas pievienotas visiem šajā projektā izmantotajiem vadiem. Pievienotais avota kods var darboties tikai tad, ja izmantojat tos pašus PIN numurus, kurus es izmantoju, taču, pieslēdzoties, varat tos mainīt, ja vien kodā maināt atbilstošos ciparus. 3 asu sensora pievienošana loģiskā līmeņa pārveidotājam: sensors VCC -> Arduino 3V3Sensor 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 (vismaz viens no tiem) -> Arduino GndConverter HV -> Arduino 5VConverter LV -> Arduino 3V3 Optiskais sensors Arduino: skatiet pievienoto attēlu GND (es izmantoju vienu no optiskajiem sensoriem)+ līdz Arduino PIN 13 (tas tika darīts, jo šai tapai jau ir iebūvēts rezistors, ja izmantojat citu, noteikti izmantojiet rezistoru, lai LED nedegtu)

3. darbība: peles sagatavošana

Peles sagatavošana
Peles sagatavošana
Peles sagatavošana
Peles sagatavošana
Peles sagatavošana
Peles sagatavošana

Šeit sensori atrod savu vietu peles korpusā. Atrodiet labāko vietu, lai fiksētu 3 asu sensoru. Pārliecinieties, vai tas ir izlīdzināts, un ņemiet vērā orientāciju (jūs zināt, kad sensors būs rokā) Jūs varat to labot, kā vēlaties, es izmantoju 2 īsus koka enkura gabalus, kas urbti, lai pieņemtu 2 sīkas skrūves, un karsti pielīmēts peles pamatplatē. Par optisko sensoru izveidojiet taisnstūrveida caurumu peles apakšā, ideja ir panākt, lai sensors visu laiku "redzētu" tabulu. Kad pele ir pacelta un sensora stāvoklis ir "atvērts" (nav redzama tabula), pele pārslēdzas 3D režīmā (palaiž apstrādes skici) Izveidojiet citu caurumu papildu vadu (no sensoriem līdz Arduino) novirzīšanai no plastmasas korpuss. Manējais atradās peles labajā pusē. Piestipriniet LED, kur tas parādīsies. Šajā projektā gaismas diode ir 3D režīma indikators. Es novietoju savējo pie peles silikona riteņa. Kad pele ir pacelta, ritenim bija jauks zils spīdums.

4. solis: avota kods

Arduino kodu uzrakstīja Shachar Geiger, mans skolotājs, un es to mainīju šim projektam. 3D kuba kods ir pamata kods, kas atrodams apstrādes vietnē. Es to nedaudz pārveidoju. Kodā šī daļa pārveido no sensora iegūto neapstrādāto informāciju (parasti no -180 līdz 180 x 10) uz 0-255 getHeading (); Serial.write ('x'); x = (x +1800) / 14; Sērijas.raksta (x); Sērijas.raksta ('y'); y = (y+1800) / 14; Sērijas.raksta (y); Sērijas.raksta ('z'); z = (z+1800) / 14; Sērijas. rakstīt (z); Informācija no sensora un Arduino tiek novirzīta uz apstrādes skici katrai atsevišķai asij, bet ar iepriekšējās ass burtu (piem. X12 Y200 Z130) šāds kods aizmet burtu un atstāj tikai vērtības, kas jānosūta COM ports kamēr (port.available () == 0) {} char reading = 0; while (reading! = 'x') {while (port.available () == 0) {} reading = (char) port.read ();} X = port.read (); while (lasot! = 'Y') {while (port.available () == 0) {} reading = (char) port.read ();} Y = ports.read (); while (reading! = 'z') {while (port.available () == 0) {} reading = (char) port.read ();} Z = port.read (); Šī koda daļa atmet visas negatīvās vērtības… ja ((X! = -1) && (Y! = -1) && (Z! = -1)) {rotateZ (-(float) Y/25.0); rotateX ((pludiņš) X/25.0); rotateY ((pludiņš) Z/25.0); pX = X; pY = Y; pZ = Z;} cits {rotateZ (-(pludiņš) pY/25.0); rotateX ((pludiņš) pX /25.0);rotateY((float)pZ/25.0);} Pievienotajā ZIP failā bija gan Arduino, gan apstrādes kods

5. darbība: video

Tieši tā … Šis ir pabeigtais projekts videoklipā. Pastāv neliela kļūme (jūs varat redzēt, ka kubs dažkārt "lec" videoklipā). Tas ir Z ass dēļ, iespējams, tas nenotiks ar jums …

Ieteicams: