Tartalomjegyzék:

Mozgáskövetés MPU-6000 és Arduino Nano használatával: 4 lépés
Mozgáskövetés MPU-6000 és Arduino Nano használatával: 4 lépés

Videó: Mozgáskövetés MPU-6000 és Arduino Nano használatával: 4 lépés

Videó: Mozgáskövetés MPU-6000 és Arduino Nano használatával: 4 lépés
Videó: mozgáskövetés 2024, November
Anonim
Image
Image

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:

Szükséges hardver
Szükséges hardver
Szükséges hardver
Szükséges hardver
Szükséges hardver
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:

Hardver csatlakoztatása
Hardver csatlakoztatása
Hardver csatlakoztatása
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:

A mozgáskövetés kódja
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:

Alkalmazások
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: