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 Arduino Nano 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 bemutattuk az MPU-6000 érzékelő modul és az arduino nano interfészét. A gyorsulás és a forgási szög értékeinek leolvasásához arduino nano -t használtunk I2c adapterrel. 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 célunk eléréséhez szükséges anyagok a következő hardverkomponenseket tartalmazzák:
1. MPU-6000
2. Arduino Nano
3. I2C kábel
4. I2C pajzs arduino nano számára
2. lépés: Hardver csatlakoztatása:
A hardvercsatlakozási szakasz alapvetően elmagyarázza az érzékelő és az arduino nano 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 az arduino kóddal.
Miközben az érzékelő modult használja az arduino -val, a Wire.h könyvtárat is tartalmazza. A "Wire" könyvtár azokat a funkciókat tartalmazza, amelyek megkönnyítik az i2c kommunikációt az érzékelő és az arduino kártya között.
A teljes arduino kódot az alábbiakban adjuk meg a felhasználó kényelme érdekében:
#befoglalni
// MPU-6000 I2C cím 0x68 (104)
#define Addr 0x68
üres beállítás ()
{
// Inicializálja az I2C kommunikációt mesterként
Wire.begin ();
// Inicializálja a soros kommunikációt, állítsa be az átviteli sebességet = 9600
Sorozat.kezdet (9600);
// Indítsa el az I2C átvitelt
Wire.beginTransmission (Addr);
// Válassza ki a giroszkóp konfigurációs regiszterét
Wire.write (0x1B);
// Teljes skálatartomány = 2000 dps
Wire.write (0x18);
// Az I2C átvitel leállítása
Wire.endTransmission ();
// Indítsa el az I2C átvitelt
Wire.beginTransmission (Addr);
// Válassza ki a gyorsulásmérő konfigurációs regiszterét
Wire.write (0x1C);
// Teljes skálatartomány = +/- 16g
Wire.write (0x18);
// Az I2C átvitel leállítása
Wire.endTransmission ();
// Indítsa el az I2C átvitelt
Wire.beginTransmission (Addr);
// Válassza ki az energiagazdálkodási regisztert
Wire.write (0x6B);
// PLL xGyro hivatkozással
Wire.write (0x01);
// Az I2C átvitel leállítása
Wire.endTransmission ();
késleltetés (300);
}
üres hurok ()
{
előjel nélküli int adatok [6];
// Indítsa el az I2C átvitelt
Wire.beginTransmission (Addr);
// Adatregiszter kiválasztása
Wire.write (0x3B);
// Az I2C átvitel leállítása
Wire.endTransmission ();
// 6 bájt adat kérése
Wire.requestFrom (Addr, 6);
// 6 bájt adat olvasása
ha (Wire.available () == 6)
{
adatok [0] = Wire.read ();
adatok [1] = Wire.read ();
adatok [2] = Wire.read ();
adatok [3] = Wire.read ();
adatok [4] = Wire.read ();
adatok [5] = Wire.read ();
}
// Konvertálja az adatokat
int xAccl = adatok [0] * 256 + adatok [1];
int yAccl = adatok [2] * 256 + adatok [3];
int zAccl = adatok [4] * 256 + adatok [5];
// Indítsa el az I2C átvitelt
Wire.beginTransmission (Addr);
// Adatregiszter kiválasztása
Wire.write (0x43);
// Az I2C átvitel leállítása
Wire.endTransmission ();
// 6 bájt adat kérése
Wire.requestFrom (Addr, 6);
// 6 bájt adat olvasása
ha (Wire.available () == 6)
{
adatok [0] = Wire.read ();
adatok [1] = Wire.read ();
adatok [2] = Wire.read ();
adatok [3] = Wire.read ();
adatok [4] = Wire.read ();
adatok [5] = Wire.read ();
}
// Konvertálja az adatokat
int xGyro = adatok [0] * 256 + adatok [1];
int yGyro = adatok [2] * 256 + adatok [3];
int zGyro = adatok [4] * 256 + adatok [5];
// Adatok kimenete soros monitorra
Serial.print ("Gyorsulás az X-tengelyben:");
Sorozat.println (xAccl);
Serial.print ("Gyorsulás az Y tengelyen:");
Soros.println (yAccl);
Serial.print ("Gyorsulás Z-tengelyben:");
Soros.println (zAccl);
Serial.print ("X-tengely forgás:");
Soros.println (xGyro);
Serial.print ("Y-tengely forgás:");
Soros.println (yGyro);
Serial.print ("Z-tengely forgás:");
Soros.println (zGyro);
késleltetés (500);
}
A vezetékes könyvtárban a Wire.write () és a Wire.read () parancsokat írják és olvassák le az érzékelő kimenetét.
A Serial.print () és a Serial.println () az érzékelő kimenetének megjelenítésére szolgál az Arduino IDE soros monitorá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:
QeMotion - Mozgáskövetés minden fejhallgatóhoz!: 5 lépés (képekkel)
QeMotion - Mozgáskövetés minden fejhallgatóhoz !: Áttekintés: Ez az eszköz lehetővé teszi, hogy fejmozgását felhasználva eseményeket indítson el alapvetően bármely videojátékban. Úgy működik, hogy nyomon követi a fej (vagy a fejhallgató) mozgását, és billentyűlenyomást indít bizonyos mozgásokra. Szóval a te komp
A gyorsulás felügyelete a Raspberry Pi és az AIS328DQTR használatával Python használatával: 6 lépés
A gyorsulás nyomon követése a Raspberry Pi és az AIS328DQTR használatával Python használatával: A gyorsulás véges, azt hiszem, a fizika egyes törvényei szerint.- Terry Riley A gepárd elképesztő gyorsulást és gyors sebességváltozásokat használ üldözés közben. A leggyorsabb lény a parton időnként kihasználja csúcssebességét a zsákmány elkapására. Az
Neopixel Ws2812 Rainbow LED izzás M5stick-C - Szivárvány futtatása a Neopixel Ws2812 készüléken az M5stack M5stick C használatával Arduino IDE használatával: 5 lépés
Neopixel Ws2812 Rainbow LED izzás M5stick-C | Szivárvány futása a Neopixel Ws2812-en az M5stack M5stick C használatával Arduino IDE használatával: Sziasztok, srácok, ebben az oktatási útmutatóban megtanuljuk, hogyan kell használni a neopixel ws2812 LED-eket, vagy led szalagot vagy led mátrixot vagy led gyűrűt m5stack m5stick-C fejlesztőtáblával Arduino IDE-vel, és elkészítjük szivárványos mintát vele
Vezeték nélküli távirányító 2,4 GHz -es NRF24L01 modul használatával Arduino - Nrf24l01 4 csatorna / 6 csatornás adó vevő négykópás - Rc Helikopter - Rc sík az Arduino használatával: 5 lépés (képekkel)
Vezeték nélküli távirányító 2,4 GHz -es NRF24L01 modul használatával Arduino | Nrf24l01 4 csatorna / 6 csatornás adó vevő négykópás | Rc Helikopter | Rc sík Arduino használatával: Rc autó működtetése | Quadcopter | Drone | RC sík | RC csónak, mindig szükségünk van vevőre és adóra, tegyük fel, hogy az RC QUADCOPTER esetében szükségünk van egy 6 csatornás adóra és vevőre, és az ilyen típusú TX és RX túl költséges, ezért készítünk egyet
Tfcd 3D mozgáskövetés kapacitív érzékelésen és LED kimeneten keresztül: 6 lépés (képekkel)
Tfcd 3D mozgáskövetés a kapacitív érzékelés és a LED kimenet segítségével: Ebben az utasításban elmagyarázzuk, hogyan lehet nyomon követni egy kéz mozgását egy 3D térben a kapacitív érzékelés elvével. A feltöltött alumíniumfólia és a kéz közötti távolság megváltoztatásával a kondenzátor kapacitása változik