Tartalomjegyzék:
- 1. lépés: Szükséges hardver:
- 2. lépés: Hardver csatlakoztatása:
- 3. lépés: A mozgáskövetés kódja:
- 4. lépés: Alkalmazások:
Videó: Mozgáskövetés MPU-6000 és részecskefoton használatával: 4 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:39
Az MPU-6000 egy 6 tengelyes mozgáskövető érzékelő, amelybe 3 tengelyes gyorsulásmérő és 3 tengelyes giroszkóp van beépítve. Ez az érzékelő képes hatékonyan követni az objektum pontos helyzetét és elhelyezkedését a 3 dimenziós síkban. Alkalmazható olyan rendszerekben, amelyek a legnagyobb pontosságú helyzetelemzést igényelnek.
Ebben az oktatóanyagban szemléltetjük az MPU-6000 érzékelő modul és a részecskefoton összekapcsolását. A gyorsulás és a forgási szög értékeinek leolvasásához I2c adapterrel rendelkező részecskéket használtunk. Ez az I2C adapter megkönnyíti és megbízhatóbbá teszi a kapcsolatot az érzékelőmodullal.
1. lépés: Szükséges hardver:
A feladatunk elvégzéséhez szükséges anyagok az alábbi hardverkomponenseket tartalmazzák:
1. MPU-6000
2. Foton részecske
3. I2C kábel
4. I2C pajzs részecske fotonhoz
2. lépés: Hardver csatlakoztatása:
A hardvercsatlakozási szakasz alapvetően elmagyarázza az érzékelő és a részecskefoton között szükséges vezetékeket. A megfelelő kapcsolatok biztosítása az alapvető szükséglet, amikor bármilyen rendszeren dolgozik a kívánt kimenet érdekében. Tehát a szükséges kapcsolatok a következők:
Az MPU-6000 az I2C-n keresztül fog működni. Íme a példa kapcsolási rajz, amely bemutatja, hogyan kell bekötni az érzékelő egyes interfészeit.
A doboz készenlétben I2C interfészre van konfigurálva, ezért javasoljuk, hogy használja ezt a csatlakozást, ha egyébként agnosztikus. Csak négy vezetékre van szüksége!
Csak négy csatlakozóra van szükség Vcc, Gnd, SCL és SDA csapokra, és ezeket I2C kábel segítségével kell csatlakoztatni.
Ezeket az összefüggéseket a fenti képek mutatják be.
3. lépés: A mozgáskövetés kódja:
Kezdjük most a részecske kóddal.
Miközben az érzékelő modult használja az arduino -val, az application.h és a spark_wiring_i2c.h könyvtárat is tartalmazza. Az "application.h" és a spark_wiring_i2c.h könyvtár azokat a funkciókat tartalmazza, amelyek megkönnyítik az i2c kommunikációt az érzékelő és a részecske között.
A teljes szemcsekódot az alábbiakban adjuk meg a felhasználó kényelme érdekében:
#include #include // MPU-6000 I2C-cím 0x68 (104) #define Addr 0x68 int xGyro = 0, yGyro = 0, zGyro = 0, xAccl = 0, yAccl = 0, zAccl = 0; void setup () {// Particle.variable változó beállítása ("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álja az I2C kommunikációt Master Wire -ként.begin (); // Soros kommunikáció inicializálása, adatsebesség beállítása = 9600 Serial.begin (9600); // I2C átvitel indítása Wire.beginTransmission (Addr); // Válassza ki a giroszkóp konfigurációs regiszterét Wire.write (0x1B); // Teljes skála tartomány = 2000 dps Wire.write (0x18); // I2C átvitel leállítása Wire.endTransmission (); // I2C átvitel indítása Wire.beginTransmission (Addr); // Gyorsulásmérő konfigurációs regiszter kiválasztása Wire.write (0x1C); // Teljes skála tartomány = +/- 16g Wire.write (0x18); // I2C átvitel leállítása Wire.endTransmission (); // I2C átvitel indítása Wire.beginTransmission (Addr); // Válassza ki az energiagazdálkodási nyilvántartást Wire.write (0x6B); // PLL xGyro hivatkozással Wire.write (0x01); // I2C átvitel leállítása Wire.endTransmission (); késleltetés (300); } void loop () {unsigned int data [6]; // I2C átvitel indítása Wire.beginTransmission (Addr); // Adatregiszter kiválasztása Wire.write (0x3B); // I2C átvitel leállítása Wire.endTransmission (); // 6 bájt adat kérése Wire.requestFrom (Addr, 6); // Olvasson 6 bájtnyi adatot, ha (Wire.available () == 6) {data [0] = Wire.read (); adatok [1] = Wire.read (); adatok [2] = Wire.read (); adatok [3] = Wire.read (); adatok [4] = Wire.read (); adatok [5] = Wire.read (); } késleltetés (800); // Az adatok konvertálása xAccl = ((adatok [1] * 256) + adatok [0]); if (xAccl> 32767) {xAccl -= 65536; } yAccl = ((adatok [3] * 256) + adatok [2]); if (yAccl> 32767) {yAccl -= 65536; } zAccl = ((adatok [5] * 256) + adatok [4]); if (zAccl> 32767) {zAccl -= 65536; } késleltetés (800); // I2C átvitel indítása Wire.beginTransmission (Addr); // Adatregiszter kiválasztása Wire.write (0x43); // I2C átvitel leállítása Wire.endTransmission (); // 6 bájt adat kérése Wire.requestFrom (Addr, 6); // Olvasson 6 bájtnyi adatot, ha (Wire.available () == 6) {data [0] = Wire.read (); adatok [1] = Wire.read (); adatok [2] = Wire.read (); adatok [3] = Wire.read (); adatok [4] = Wire.read (); adatok [5] = Wire.read (); } // Az adatok konvertálása xGyro = ((adatok [1] * 256) + adatok [0]); if (xGyro> 32767) {xGyro -= 65536; } yGyro = ((adatok [3] * 256) + adatok [2]); if (yGyro> 32767) {yGyro -= 65536; } zGyro = ((adatok [5] * 256) + adatok [4]); if (zGyro> 32767) {zGyro -= 65536; } // Adatok kimenete a műszerfalra Particle.publish ("Gyorsulás az X-tengelyben:", String (xAccl)); késleltetés (1000); Particle.publish ("Gyorsulás az Y tengelyen:", String (yAccl)); késleltetés (1000); Particle.publish ("Gyorsulás Z-tengelyben:", String (zAccl)); késleltetés (1000); Particle.publish ("X-Axis of Rotation:", String (xGyro)); késleltetés (1000); Particle.publish ("Y forgástengely:", String (yGyro)); késleltetés (1000); Particle.publish ("Z-tengely forgás:", String (zGyro)); késleltetés (1000); }
A Particle.variable () függvény létrehozza a változókat az érzékelő kimenetének tárolására, a Particle.publish () függvény pedig megjeleníti a kimenetet a webhely műszerfalán.
Az érzékelő kimenete a fenti képen látható.
4. lépés: Alkalmazások:
Az MPU-6000 egy mozgáskövető érzékelő, amely az okostelefonok és táblagépek mozgásfelületén találja meg alkalmazását. Az okostelefonokban ezek az érzékelők olyan alkalmazásokban használhatók, mint az alkalmazások gesztusparancsai és a telefonvezérlés, a továbbfejlesztett játék, a kibővített valóság, a panorámás fényképek rögzítése és megtekintése, valamint a gyalogosok és a járművek navigálása. A MotionTracking technológia a készülékeket és a táblagépeket erőteljes 3D intelligens eszközökké alakíthatja, amelyek felhasználhatók az egészségtől és a fitnesz felügyeletétől a helyalapú szolgáltatásokig.
Ajánlott:
Gyorsulás mérése H3LIS331DL és részecskefoton használatával: 4 lépés
Gyorsulás mérése H3LIS331DL és részecskefoton segítségével: A H3LIS331DL egy kis teljesítményű, nagyteljesítményű, 3 tengelyes lineáris gyorsulásmérő, amely a „nano” családba tartozik, digitális I²C soros interfésszel. A H3LIS331DL felhasználó által választható teljes skála ± 100 g/± 200 g/± 400 g, és képes gyorsulások mérésére
Nedvességérzékelő részecskefoton használatával: 6 lépés
Nedvességérzékelő részecskefoton használatával: Bevezetés Ebben az oktatóanyagban egy nedvességérzékelőt fogunk építeni egy részecskefoton és annak ágyazott vagy külső WiFi antennája segítségével. A WiFi erőssége a levegőben és a talajban lévő nedvesség mennyiségétől függ. Ezt az elvet használjuk
A napelemek megfigyelése részecskefoton használatával: 7 lépés
Napelemek megfigyelése részecskefoton használatával: A projekt célja a napelemek hatékonyságának javítása. A projekt célja a napelemes fotovoltaikus energiatermelés felügyelete, hogy javítsa a napelem teljesítményét, felügyeletét és karbantartását. Ebben a projektben a részecskék ph
Fényintenzitás -számítás BH1715 és részecskefoton használatával: 5 lépés
Fényintenzitás -számítás a BH1715 és a részecskefoton segítségével: Tegnap LCD kijelzőkön dolgoztunk, és azokon dolgozva rájöttünk a fényintenzitás számításának fontosságára. A fény intenzitása nemcsak a világ fizikai területén fontos, hanem a biológiai életben is jól megfogalmazott
Gyorsulásmérés BMA250 és részecskefoton használatával: 4 lépés
Gyorsulásmérés BMA250 és részecskefoton segítségével: A BMA250 egy kicsi, vékony, ultralow teljesítményű, 3 tengelyes gyorsulásmérő, nagy felbontású (13 bites) méréssel, ± 16 g-ig. A digitális kimeneti adatok 16 bites kettes kiegészítésként vannak formázva, és az I2C digitális interfészen keresztül érhetők el. Méri a statikus