Satura rādītājs:
- 1. darbība. Nepieciešamā aparatūra:
- 2. darbība. Aparatūras savienošana:
- 3. darbība. Kustības izsekošanas kods:
- 4. darbība. Lietojumprogrammas:
Video: Kustību izsekošana, izmantojot MPU-6000 un daļiņu fotonu: 4 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:51
MPU-6000 ir 6 asu kustības izsekošanas sensors, kurā ir iestrādāts 3 asu akselerometrs un 3 asu žiroskops. Šis sensors spēj efektīvi izsekot precīzu objekta atrašanās vietu un atrašanās vietu trīsdimensiju plaknē. To var izmantot sistēmās, kurām nepieciešama visaugstākā precizitāte.
Šajā apmācībā ir parādīta MPU-6000 sensora moduļa saskarne ar daļiņu fotonu. Lai nolasītu paātrinājuma un rotācijas leņķa vērtības, mēs esam izmantojuši daļiņas ar I2c adapteri. Šis I2C adapteris padara savienojumu ar sensora moduli vieglu un uzticamāku.
1. darbība. Nepieciešamā aparatūra:
Materiāli, kas nepieciešami mūsu uzdevuma veikšanai, ietver tālāk minētos aparatūras komponentus:
1. MPU-6000
2. Daļiņu fotons
3. I2C kabelis
4. I2C vairogs daļiņu fotonam
2. darbība. Aparatūras savienošana:
Aparatūras savienošanas sadaļa pamatā izskaidro nepieciešamos vadu savienojumus starp sensoru un daļiņu fotonu. Pareizu savienojumu nodrošināšana ir pamatvajadzība, strādājot pie jebkuras sistēmas vēlamajam rezultātam. Tātad nepieciešamie savienojumi ir šādi:
MPU-6000 darbosies, izmantojot I2C. Šeit ir elektroinstalācijas shēmas piemērs, kas parāda, kā savienot katru sensora saskarni.
Izņemot komplektu, tāfele ir konfigurēta I2C saskarnei, tāpēc mēs iesakām izmantot šo savienojumu, ja esat citādi agnostiķis. Viss, kas Jums nepieciešams, ir četri vadi!
Nepieciešami tikai četri savienojumi Vcc, Gnd, SCL un SDA, un tie ir savienoti, izmantojot I2C kabeli.
Šie savienojumi ir parādīti iepriekš redzamajos attēlos.
3. darbība. Kustības izsekošanas kods:
Sāksim ar daļiņu kodu tūlīt.
Izmantojot sensoru moduli ar arduino, mēs iekļaujam bibliotēku application.h un spark_wiring_i2c.h. Bibliotēkā "application.h" un spark_wiring_i2c.h ir funkcijas, kas atvieglo i2c komunikāciju starp sensoru un daļiņu.
Viss daļiņu kods lietotāja ērtībai ir norādīts zemāk:
#include #include // MPU-6000 I2C adrese ir 0x68 (104) #define Addr 0x68 int xGyro = 0, yGyro = 0, zGyro = 0, xAccl = 0, yAccl = 0, zAccl = 0; void setup () {// Iestatīt mainīgo Particle.variable ("i2cdevice", "MPU-6000"); Particle.variable ("xAccl", xAccl); Particle.variable ("yAccl", yAccl); Particle.variable ("zAccl", zAccl); Particle.variable ("xGyro", xGyro); Particle.variable ("yGyro", yGyro); Particle.variable ("zGyro", zGyro); // Inicializēt I2C komunikāciju kā Master Wire.begin (); // Inicializēt seriālo komunikāciju, iestatīt pārraides ātrumu = 9600 Serial.begin (9600); // Sākt I2C pārraidi Wire.beginTransmission (Addr); // Izvēlieties žiroskopa konfigurācijas reģistru Wire.write (0x1B); // Pilns skalas diapazons = 2000 dps Wire.write (0x18); // Apturēt I2C pārraidi Wire.endTransmission (); // Sākt I2C pārraidi Wire.beginTransmission (Addr); // Izvēlieties akselerometra konfigurācijas reģistru Wire.write (0x1C); // Pilns skalas diapazons = +/- 16g Wire.write (0x18); // Apturēt I2C pārraidi Wire.endTransmission (); // Sākt I2C pārraidi Wire.beginTransmission (Addr); // Atlasiet enerģijas pārvaldības reģistru Wire.write (0x6B); // PLL ar xGyro atsauci Wire.write (0x01); // Apturēt I2C pārraidi Wire.endTransmission (); kavēšanās (300); } void loop () {unsigned int data [6]; // Sākt I2C pārraidi Wire.beginTransmission (Addr); // Atlasīt datu reģistru Wire.write (0x3B); // Apturēt I2C pārraidi Wire.endTransmission (); // Pieprasīt 6 baitus datu Wire.requestFrom (Addr, 6); // Izlasiet 6 baitus datu, ja (Wire.available () == 6) {data [0] = Wire.read (); dati [1] = Wire.read (); dati [2] = Wire.read (); dati [3] = Wire.read (); dati [4] = Wire.read (); dati [5] = Wire.read (); } kavēšanās (800); // Pārvērst datus xAccl = ((dati [1] * 256) + dati [0]); ja (xAccl> 32767) {xAccl -= 65536; } yAccl = ((dati [3] * 256) + dati [2]); ja (yAccl> 32767) {yAccl -= 65536; } zAccl = ((dati [5] * 256) + dati [4]); ja (zAccl> 32767) {zAccl -= 65536; } kavēšanās (800); // Sākt I2C pārraidi Wire.beginTransmission (Addr); // Atlasīt datu reģistru Wire.write (0x43); // Apturēt I2C pārraidi Wire.endTransmission (); // Pieprasīt 6 baitus datu Wire.requestFrom (Addr, 6); // Izlasiet 6 baitus datu, ja (Wire.available () == 6) {data [0] = Wire.read (); dati [1] = Wire.read (); dati [2] = Wire.read (); dati [3] = Wire.read (); dati [4] = Wire.read (); dati [5] = Wire.read (); } // Pārvērst datus xGyro = ((dati [1] * 256) + dati [0]); ja (xGyro> 32767) {xGyro -= 65536; } yGyro = ((dati [3] * 256) + dati [2]); ja (yGyro> 32767) {yGyro -= 65536; } zGyro = ((dati [5] * 256) + dati [4]); ja (zGyro> 32767) {zGyro -= 65536; } // Izejas dati informācijas panelī Particle.publish ("Paātrinājums X-asī:", String (xAccl)); kavēšanās (1000); Particle.publish ("Paātrinājums Y-asī:", String (yAccl)); kavēšanās (1000); Particle.publish ("Paātrinājums Z-asī:", String (zAccl)); kavēšanās (1000); Particle.publish ("Rotācijas X ass:", String (xGyro)); kavēšanās (1000); Particle.publish ("Rotācijas Y ass:", String (yGyro)); kavēšanās (1000); Particle.publish ("Z rotācijas ass:", virkne (zGyro)); kavēšanās (1000); }
Funkcija Particle.variable () izveido mainīgos, lai saglabātu sensora izvadi, un Particle.publish () funkcija parāda izvadi vietnes informācijas panelī.
Sensora izeja ir parādīta attēlā iepriekš.
4. darbība. Lietojumprogrammas:
MPU-6000 ir kustības izsekošanas sensors, kas tiek izmantots viedtālruņu un planšetdatoru kustības saskarnē. Viedtālruņos šos sensorus var izmantot tādās lietojumprogrammās kā žestu komandas lietojumprogrammām un tālruņa vadība, uzlabotas spēles, paplašinātā realitāte, panorāmas fotoattēlu uzņemšana un apskate, kā arī gājēju un transportlīdzekļu navigācija. MotionTracking tehnoloģija var pārvērst tālruņus un planšetdatorus par jaudīgām 3D viedām ierīcēm, kuras var izmantot lietojumprogrammās, sākot no veselības un fiziskās sagatavotības uzraudzības līdz pakalpojumiem, kas balstīti uz atrašanās vietu.
Ieteicams:
Paātrinājuma mērīšana, izmantojot ADXL345 un daļiņu fotonu: 4 soļi
Paātrinājuma mērīšana, izmantojot ADXL345 un daļiņu fotonu: ADXL345 ir mazs, plāns, īpaši zems jauda, 3 asu akselerometrs ar augstas izšķirtspējas (13 bitu) mērījumu līdz ± 16 g. Digitālie izvaddati tiek formatēti kā 16 bitu papildinājumi, un tie ir pieejami, izmantojot I2 C digitālo saskarni. Tas mēra
Magnētiskā lauka mērīšana, izmantojot HMC5883 un daļiņu fotonu: 4 soļi
Magnētiskā lauka mērīšana, izmantojot HMC5883 un daļiņu fotonu: HMC5883 ir digitāls kompass, kas paredzēts zema lauka magnētiskai uztveršanai. Šai ierīcei ir plašs magnētiskā lauka diapazons +/- 8 Oe un izejas ātrums 160 Hz. HMC5883 sensora komplektā ietilpst automātiskie atdalīšanas siksnu draiveri, nobīdes atcelšana un
Izsekošana un izsekošana maziem veikaliem: 9 soļi (ar attēliem)
Izsekošana un izsekošana maziem veikaliem: šī ir sistēma, kas paredzēta maziem veikaliem, kas ir paredzēts uzstādīt uz e-velosipēdiem vai motorolleriem, lai veiktu piegādi nelielā attālumā, piemēram, maizes ceptuve, kas vēlas piegādāt konditorejas izstrādājumus. Ko nozīmē izsekošana un izsekošana? Izsekošana un izsekošana ir sistēma, ko izmanto
Mitruma mērīšana, izmantojot HYT939 un daļiņu fotonu: 4 soļi
Mitruma mērīšana, izmantojot HYT939 un daļiņu fotonu: HYT939 ir digitāls mitruma sensors, kas darbojas saskaņā ar I2C sakaru protokolu. Mitrums ir galvenais parametrs, kad runa ir par medicīnas sistēmām un laboratorijām, tāpēc, lai sasniegtu šos mērķus, mēs centāmies sasaistīt HYT939 ar aveņu pi. Es
Paātrinājuma mērīšana, izmantojot H3LIS331DL un daļiņu fotonu: 4 soļi
Paātrinājuma mērīšana, izmantojot H3LIS331DL un daļiņu fotonu: H3LIS331DL ir mazjaudas augstas veiktspējas 3 asu lineārs akselerometrs, kas pieder “nano” saimei, ar digitālo I²C sērijas interfeisu. H3LIS331DL ir lietotāja atlasītas pilnas skalas ± 100 g/± 200 g/± 400 g, un tas spēj izmērīt paātrinājumus