Tartalomjegyzék:

A BMG160 3 tengelyes giroszkópérzékelő illesztése részecskével: 5 lépés
A BMG160 3 tengelyes giroszkópérzékelő illesztése részecskével: 5 lépés

Videó: A BMG160 3 tengelyes giroszkópérzékelő illesztése részecskével: 5 lépés

Videó: A BMG160 3 tengelyes giroszkópérzékelő illesztése részecskével: 5 lépés
Videó: 3 axis motion sensor Gyroscope 2024, Július
Anonim
Image
Image

A mai világban a fiatalok és a gyerekek több mint fele szereti a játékot, és mindazok, akik szeretik, és akiket lenyűgöznek a játék technikai aspektusai, tudják, hogy mennyire fontos a mozgásérzékelés ezen a területen. Mi is meglepődtünk ugyanazon dolgon, és csak azért, hogy a táblákra vigyük, úgy gondoltuk, hogy dolgozunk egy giroszkóp érzékelőn, amely képes bármilyen tárgy szögsebességét mérni. Tehát az érzékelő, amelyet a feladat megoldásához vettünk fel, a BMG160. A BMG160 egy 16 bites, digitális, háromtengelyes, giroszkóp érzékelő, amely három merőleges helyiségdimenzióban képes mérni a szögsebességet.

Ebben az oktatóanyagban a BMG160 részecske fotonnal való működését mutatjuk be.

A hardver, amire szüksége lesz erre a célra, a következő:

1. BMG160

2. Részecskés foton

3. I2C kábel

4. I2C pajzs részecske fotonhoz

1. lépés: A BMG160 áttekintése:

Amire szükséged van..!!
Amire szükséged van..!!

Először is szeretnénk megismerni Önt a BMG160 érzékelő modul alapvető jellemzőivel és a kommunikációs protokollal, amelyen működik.

A BMG160 alapvetően egy 16 bites, digitális, háromtengelyes, giroszkóp érzékelő, amely képes mérni a szögsebességet. Képes szögsebességek kiszámítására három merőleges helyiségméretben, az x-, y- és z-tengelyen, és biztosítja a megfelelő kimeneti jeleket. Kommunikálhat a málna pi táblával az I2C kommunikációs protokoll használatával. Ezt a modult úgy tervezték, hogy megfeleljen a fogyasztói alkalmazások és az ipari célok követelményeinek.

A kommunikációs protokoll, amelyen az érzékelő működik, I2C. Az I2C az integrált áramkört jelenti. Ez egy kommunikációs protokoll, amelyben a kommunikáció SDA (soros adat) és SCL (soros óra) vonalakon keresztül történik. Lehetővé teszi több eszköz egyidejű csatlakoztatását. Ez az egyik legegyszerűbb és leghatékonyabb kommunikációs protokoll.

2. lépés: Amire szüksége van..

Amire szükséged van..!!
Amire szükséged van..!!
Amire szükséged van..!!
Amire szükséged van..!!
Amire szükséged van..!!
Amire szükséged van..!!

A célunk eléréséhez szükséges anyagok a következő hardverkomponenseket tartalmazzák:

1. BMG160

2. Foton részecske

3. I2C kábel

4. I2C pajzs részecske fotonhoz

3. 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 a részecske közötti 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:

A BMG160 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.

4. lépés: 3 tengelyes giroszkóp mérési részecske kód:

3 tengelyes giroszkóp mérési részecske kód
3 tengelyes giroszkóp mérési részecske kód
3 tengelyes giroszkóp mérési részecske kód
3 tengelyes giroszkóp mérési részecske kód

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:

#befoglalni

#befoglalni

// A BMG160 I2C címe 0x68 (104)

#define Addr 0x68

int xGyro = 0, yGyro = 0, zGyro = 0;

üres beállítás ()

{

// Változó beállítása

Particle.variable ("i2cdevice", "BMG160");

Particle.variable ("xGyro", xGyro);

Particle.variable ("yGyro", yGyro);

Particle.variable ("zGyro", zGyro);

// Inicializálja az I2C kommunikációt MASTER -ként

Wire.begin ();

// Inicializálja a soros kommunikációt

Sorozat.kezdet (9600);

// Indítsa el az I2C átvitelt

Wire.beginTransmission (Addr);

// Válassza ki a tartományregisztert

Wire.write (0x0F);

// Teljes skála 2000 dps beállítása

Wire.write (0x80);

// Állítsa le az I2C átvitelt

Wire.endTransmission ();

// Indítsa el az I2C átvitelt

Wire.beginTransmission (Addr);

// Válassza ki a sávszélesség -nyilvántartást

Wire.write (0x10);

// Sávszélesség beállítása = 200 Hz

Wire.write (0x04);

// Állítsa le az I2C átvitelt

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 (0x02);

// Állítsa le az I2C átvitelt

Wire.endTransmission ();

// 6 bájt adat kérése

Wire.requestFrom (Addr, 6);

// 6 bájt adat olvasása

// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb

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 ();

}

késleltetés (300);

// Konvertálja az adatokat

xGyro = ((adatok [1] * 256) + adatok [0]);

ha (xGyro> 32767)

{

xGyro -= 65536;

}

yGyro = ((adatok [3] * 256) + adatok [2]);

ha (yGyro> 32767)

{

yGyro -= 65536;

}

zGyro = ((adatok [5] * 256) + adatok [4]);

ha (zGyro> 32767)

{

zGyro -= 65536;

}

// Adatok kimenete a műszerfalra

Particle.publish ("X-Axis of Rotation:", String (xGyro));

Particle.publish ("Y forgástengely:", String (yGyro));

Particle.publish ("Z-tengely forgás:", String (zGyro));

késleltetés (1000);

}

5. lépés: Alkalmazások:

Alkalmazások
Alkalmazások

A BMG160 számos alkalmazást kínál olyan eszközökön, mint a mobiltelefonok, az emberi gép interfész eszközei. Ezt az érzékelőmodult úgy tervezték, hogy megfeleljen a fogyasztói alkalmazások, például a képstabilizátor (DSC és kamera-telefon), a játék- és mutatóeszközök követelményeinek. A gesztusfelismerést igénylő rendszerekben és a beltéri navigációban használt rendszerekben is alkalmazzák.

Ajánlott: