Satura rādītājs:
- 1. darbība: aparatūra un sīkumi
- 2. solis: elektronika
- 3. darbība: peles sagatavošana
- 4. solis: avota kods
- 5. darbība: video
Video: 3D AIR pele - Arduino + apstrāde: 5 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 11:00
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
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
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
Š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:
Attēlu apstrāde ar Raspberry Pi: OpenCV un attēla krāsu atdalīšanas instalēšana: 4 soļi
Attēlu apstrāde ar Raspberry Pi: OpenCV un attēla krāsu atdalīšanas instalēšana: šī ziņa ir pirmā no vairākām attēlu apstrādes apmācībām, kas jāievēro. Mēs rūpīgāk aplūkojam attēla pikseļus, iemācāmies instalēt OpenCV uz Raspberry Pi, kā arī rakstām testa skriptus, lai uzņemtu attēlu, kā arī
Bluetooth un IMU ar Tactigon Board - apstrāde: 7 soļi
Bluetooth un IMU ar Tactigon dēli - apstrāde: Šajā rakstu sērijā tiks paskaidrots, kā izmantot Tactigon integrētos sensorus un sakaru saskarnes, lai izveidotu vienkāršu žestu kontrolieri. Avota kods pieejams šeit vietnē GitHub Šajā rakstā mēs uzzināsim, kā izmantot simp
Ievads attēlu apstrādē: Pixy un tā alternatīvas: 6 soļi
Ievads attēlu apstrādē. Šī raksta beigās jūs uzzināsit: kā veidojas digitālais attēls
Vienkārša apstrāde Uldar (ultraskaņas noteikšana un diapazons): 3 soļi
Vienkārša apstrāde Uldar (ultraskaņas noteikšana un diapazons): Šis ir vienkāršs projekts, kas izmanto Arduino UNO un apstrādi, lai izveidotu vienkāršu lidaru. Lidar (saukts arī par LIDAR, LiDAR un LADAR) ir mērīšanas metode, kas mēra attālumu līdz mērķim, apgaismojot mērķis ar impulsa lāzera gaismu un mērīšanu
Video apstrāde, izmantojot VHDL un Zybo: 10 soļi
Video apstrāde, izmantojot VHDL un Zybo: FPGA apstrāde ir ātrāka nekā centrālajiem procesoriem, jo tie var veikt daudzus aprēķinus paralēli Piezīme. Šis projekts vēl tiek veidots un tiks uzlabots (tiklīdz man būs laiks). Tikmēr es apceļoju pasauli