Tartalomjegyzék:
- 1. lépés: A BMG160 áttekintése:
- 2. lépés: Amire szüksége van..
- 3. lépés: Hardver csatlakoztatása:
- 4. lépés: 3 tengelyes giroszkópmérés Java kód használatával:
- 5. lépés: Alkalmazások:
Videó: A BMG160 háromtengelyes giroszkópérzékelő illesztése a Raspberry Pi-vel: 5 lépés
2024 Szerző: John Day | [email protected]. Utoljára módosítva: 2024-01-30 09:41
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 bemutatjuk a BMG160 működését Raspberry pi -val, Java -t használva programozási nyelvként.
A hardver, amire szüksége lesz erre a célra, a következő:
1. BMG160
2. Málna Pi
3. I2C kábel
4. I2C Shield a Raspberry Pi számára
5. Ethernet kábel
1. lépés: A BMG160 áttekintése:
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..
A célunk eléréséhez szükséges anyagok a következő hardverkomponenseket tartalmazzák:
1. BMG160
2. Málna Pi
3. I2C kábel
4. I2C Shield For Raspberry Pi
5. Ethernet kábel
3. lépés: Hardver csatlakoztatása:
A hardvercsatlakozási szakasz alapvetően elmagyarázza az érzékelő és a málna pi 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:
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ópmérés Java kód használatával:
A málna pi használatának előnye az, hogy rugalmasságot biztosít annak a programozási nyelvnek, amelyen a táblát programozni szeretné, hogy az érzékelőt hozzá lehessen illeszteni. A tábla ezen előnyét kihasználva bemutatjuk a Java programozását. A BMG160 Java kódja letölthető gitub közösségünkből, azaz a Dcube Store Communityből.
A felhasználók kényelme érdekében itt is elmagyarázzuk a kódot: A kódolás első lépéseként le kell töltenie a pi4j könyvtárat java esetén, mert ez a könyvtár támogatja a kódban használt funkciókat. Tehát a könyvtár letöltéséhez látogasson el az alábbi linkre:
pi4j.com/install.html
Innen is másolhatja az érzékelő működő java kódját:
import com.pi4j.io.i2c. I2CBus;
import com.pi4j.io.i2c. I2CDevice;
import com.pi4j.io.i2c. I2CFactory;
import java.io. IOException;
nyilvános osztály BMG160
{
public static void main (String args ) dobások Kivétel
{
// I2C busz létrehozása
I2CBus busz = I2CFactory.getInstance (I2CBus. BUS_1);
// I2C eszköz beszerzése, BMG160 I2C címe 0x68 (104)
I2CDevice device = bus.getDevice (0x68);
// Válassza ki a tartományregisztert
// A teljes skálatartomány beállítása, 2000 dps
device.write (0x0F, (bájt) 0x80);
// Válassza ki a sávszélesség -nyilvántartást
// Sávszélesség 200 Hz
device.write (0x10, (bájt) 0x04);
Téma.alvás (500);
// 6 bájt adat olvasása
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb
bájt adat = új bájt [6];
device.read (0x02, adat, 0, 6);
// Adatok konvertálása
int xGyro = ((adatok [1] és 0xFF) * 256 + (adatok [0] és 0xFF));
ha (xGyro> 32767)
{
xGyro -= 65536;
}
int yGyro = ((adatok [3] és 0xFF) * 256 + (adatok [2] és 0xFF));
ha (yGyro> 32767)
{
yGyro -= 65536;
}
int zGyro = ((adatok [5] és 0xFF) * 256 + (adatok [4] és 0xFF));
ha (zGyro> 32767)
{
zGyro -= 65536;
}
// Adatok megjelenítése a képernyőn
System.out.printf ("X forgástengely: %d %n", xGyro);
System.out.printf ("Y forgástengely: %d %n", yGyro);
System.out.printf ("Z forgástengely: %d %n", zGyro);
}
}
A könyvtár, amely megkönnyíti az i2c kommunikációt az érzékelő és a kártya között, a pi4j, különféle csomagjai, az I2CBus, az I2CDevice és az I2CFactory segítenek a kapcsolat létrehozásában.
import com.pi4j.io.i2c. I2CBus; import com.pi4j.io.i2c. I2CDevice; import com.pi4j.io.i2c. I2CFactory; import java.io. IOException;
Ez a kódrész arra készteti az érzékelőt, hogy a szögsebességet úgy írja le, hogy írja a megfelelő parancsokat a write () függvénnyel, majd az adatokat a read () függvénnyel olvassa be.
// Tartományregiszter kiválasztása // Teljes skálatartomány beállítása, 2000 dps eszköz.write (0x0F, (byte) 0x80); // Sávszélesség -nyilvántartás kiválasztása // Sávszélesség 200 Hz -es eszköz.write (0x10, (byte) 0x04); Téma.alvás (500);
// 6 bájt adat olvasása
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb byte adatok = új bájt [6]; device.read (0x02, adat, 0, 6);
Az érzékelőtől kapott adatok a megfelelő formátumba konvertálhatók az alábbiak használatával:
int xGyro = ((adatok [1] és 0xFF) * 256 + (adatok [0] és 0xFF)); if (xGyro> 32767) {xGyro -= 65536; } int yGyro = ((adatok [3] és 0xFF) * 256 + (adatok [2] és 0xFF)); if (yGyro> 32767) {yGyro -= 65536; } int zGyro = ((adatok [5] és 0xFF) * 256 + (adatok [4] és 0xFF)); if (zGyro> 32767) {zGyro -= 65536; }
A kimenet a System.out.println () függvénnyel kerül nyomtatásra, a következő formátumban.
System.out.println ("X forgástengely: %d %n", xGyro); System.out.println ("Y forgástengely: %d %n", yGyro); System.out.println ("Z forgástengely: %d %n", zGyro);
Az érzékelő kimenete a fenti képen látható.
5. lépés: 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:
Kapacitív ujjlenyomat -érzékelő illesztése az Arduino UNO -val: 7 lépés
Kapacitív ujjlenyomat -érzékelő illesztése Arduino UNO -val: Hé, mi van, srácok! Akarsh itt a CETech -től. Ma védő réteget adunk a projektjeinkhez. Ne aggódjon, nem fogunk testőreket kinevezni ugyanerre. Ez egy aranyos kis jó megjelenésű ujjlenyomat -érzékelő lesz a DFRobot -tól. Szóval
Gázérzékelő illesztése Arduino -val: 4 lépés
Gázérzékelő illesztése Arduino-val: Az MQ-2 füstérzékelő érzékeny a füstre és a következő gyúlékony gázokra: LPG, bután, propán, metán, alkohol, hidrogén. Az érzékelő ellenállása a gáz típusától függően eltérő. A füstérzékelő beépített potenciométerrel rendelkezik
Az LM35 hőmérséklet -érzékelő illesztése Arduino -val: 4 lépés
LM35 hőmérséklet -érzékelő illesztése Arduino -val: A hőmérők hasznos készülékek, amelyeket hosszú ideig használnak a hőmérséklet mérésére. Ebben a projektben készítettünk egy Arduino alapú digitális hőmérőt, amely az aktuális környezeti hőmérsékletet és hőmérsékletváltozásokat LCD -n jeleníti meg. Megoldható lehet
3 tengelyes BMG160 giroszkóp érzékelő illesztése Arduino Nano-val: 5 lépés
A háromtengelyes BMG160 giroszkópérzékelő illesztése az Arduino Nano-val: A mai világban a fiatalok és gyerekek több mint fele szereti a játékot, és mindazok, akik szeretik, szeretik a játék technikai vonatkozásai, tudják a mozgásérzékelés fontosságát ezen a területen. Mi is meglepődtünk ugyanezen a
A BMG160 3 tengelyes giroszkópérzékelő illesztése részecskével: 5 lépés
A BMG160 háromtengelyes giroszkópérzékelő illesztése részecskével: A mai világban a fiatalok és a gyerekek több mint fele szereti a játékot, és mindazok, akik szeretik, szeretik a játék technikai vonatkozásai, tudják a mozgásérzékelés fontosságát ezt a tartományt. Mi is meglepődtünk ugyanezen a