Tartalomjegyzék:

Mágneses mező mérése HMC5883 és Raspberry Pi használatával: 4 lépés
Mágneses mező mérése HMC5883 és Raspberry Pi használatával: 4 lépés

Videó: Mágneses mező mérése HMC5883 és Raspberry Pi használatával: 4 lépés

Videó: Mágneses mező mérése HMC5883 és Raspberry Pi használatával: 4 lépés
Videó: CS50 2014 – 2-я неделя 2024, November
Anonim
Image
Image

A HMC5883 egy digitális iránytű, amelyet alacsony mezőű mágneses érzékelésre terveztek. Ennek a készüléknek a széles mágneses tartománya +/- 8 Oe, és a kimeneti sebessége 160 Hz. A HMC5883 érzékelő automatikus gáztalanító heveder meghajtókat, eltolás törlést és 12 bites ADC-t tartalmaz, amely lehetővé teszi az iránytű irányának 1 ° és 2 ° közötti pontosságát. Minden I²C mini modult 5VDC feszültségre való működésre terveztek.

Ebben az oktatóanyagban elmagyarázzuk a HMC5883 részletes működését a Raspberry pi -val és programozását a java programozási nyelv használatával.

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 feladat végrehajtásához szükséges hardver a következő:

1. HMC5883

2. Málna Pi

3. I2C kábel

4. I2C Shield For Raspberry Pi

5. Ethernet kábel

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 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 HMC5883 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: Java kód a mágneses mező intenzitásának mérésére:

Java kód a mágneses mező intenzitásának mérésére
Java kód a mágneses mező intenzitásának mérésére
Java kód a mágneses mező intenzitásának mérésére
Java kód a mágneses mező intenzitásának mérésére

A málna pi használatának előnye az, hogy rugalmasságot biztosít a programozási nyelvben, 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, hogy Java nyelven programozunk. A HMC5883 java kódja letölthető gitub közösségünkből, azaz a Dcube Store -bó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;

mport com.pi4j.io.i2c. I2CFactory;

import java.io. IOException; nyilvános osztályú HMC5883

{

public static void main (String args ) dobások Kivétel

{

// I2C busz létrehozása

I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1);

// I2C eszköz beszerzése, HMC5883 Az I2C cím 0x1E (30)

I2CDevice device = Bus.getDevice (0x1E);

// Válassza ki az A konfigurációs regisztert

// Normál mérési konfiguráció, adatátviteli sebesség o/p = 0,75 Hz

device.write (0x00, (bájt) 0x60);

// Válassza ki a Mode regisztert

// Folyamatos mérési mód

device.write (0x02, (bájt) 0x00);

Téma.alvás (500);

// 6 bájt adat olvasása a 0x03 -ból (3)

// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb

bájt adat = új bájt [6];

device.read (0x03, adat, 0, 6);

// Konvertálja az adatokat

int xMag = ((adatok [0] és 0xFF) * 256 + (adatok [1] és 0xFF));

ha (xMag> 32767)

{

xMag -= 65536;

}

int zMag = ((adatok [2] és 0xFF) * 256 + (adatok [3] és 0xFF));

ha (zMag> 32767)

{

zMag -= 65536;

}

int yMag = ((adatok [4] és 0xFF) * 256 + (adatok [5] és 0xFF));

ha (yMag> 32767)

{

yMag -= 65536;

}

// Adatok megjelenítése a képernyőn

System.out.printf ("Mágneses mező az X-tengelyben: %d %n", xMag);

System.out.printf ("Mágneses mező az Y tengelyen: %d %n", yMag);

System.out.printf ("Mágneses mező a Z-tengelyben: %d %n", zMag);

}

}

Az Írás () és az Olvasás () függvények a parancsok írására és az érzékelő kimenetének olvasására szolgálnak. A következő rész a mágneses mező értékeit mutatja be.

// 6 bájt adat olvasása a 0x03 -ból (3)

// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb

bájt adat = új bájt [6];

device.read (0x03, adat, 0, 6);

A kimenet a fenti képen látható.

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

Alkalmazások
Alkalmazások

A HMC5883 egy felületre szerelhető, többcsipes modul, amely alacsony mezőű mágneses érzékelésre készült, digitális interfésszel, olyan alkalmazásokhoz, mint az alacsony költségű iránytű és a magnetometria. Egy -két fokos magas szintű pontossága és pontossága lehetővé teszi a gyalogos navigációt és az LBS alkalmazásokat.

Ajánlott: