Obsah:

Meranie magnetického poľa pomocou HMC5883 a Raspberry Pi: 4 kroky
Meranie magnetického poľa pomocou HMC5883 a Raspberry Pi: 4 kroky

Video: Meranie magnetického poľa pomocou HMC5883 a Raspberry Pi: 4 kroky

Video: Meranie magnetického poľa pomocou HMC5883 a Raspberry Pi: 4 kroky
Video: AS5600 meranie uhla 2024, Júl
Anonim
Image
Image

HMC5883 je digitálny kompas určený na magnetické snímanie v nízkom poli. Toto zariadenie má široký rozsah magnetického poľa +/- 8 Oe a výstupnú frekvenciu 160 Hz. Senzor HMC5883 obsahuje automatické remagnetizačné popruhy, potlačenie ofsetu a 12-bitový ADC, ktorý umožňuje presnosť smeru kompasu 1 ° až 2 °. Všetky moduly I²C Mini sú navrhnuté tak, aby pracovali pri 5 VDC.

V tomto tutoriáli vysvetlíme detailné fungovanie HMC5883 s Raspberry pi a jeho programovanie pomocou programovacieho jazyka java.

Krok 1: Potrebný hardvér:

Potrebný hardvér
Potrebný hardvér
Potrebný hardvér
Potrebný hardvér
Potrebný hardvér
Potrebný hardvér

Hardvér, ktorý je potrebný na splnenie úlohy, je nasledujúci:

1. HMC5883

2. Raspberry Pi

3. Kábel I2C

4. I2C štít pre Raspberry Pi

5. Ethernetový kábel

Krok 2: Pripojenie hardvéru:

Pripojenie hardvéru
Pripojenie hardvéru
Pripojenie hardvéru
Pripojenie hardvéru

Časť zapojenia hardvéru v zásade vysvetľuje zapojenie potrebné medzi senzorom a malinovým pi. Zabezpečenie správneho pripojenia je základnou potrebou pri práci na akomkoľvek systéme s požadovaným výstupom. Potrebné spojenia sú teda tieto:

HMC5883 bude fungovať cez I2C. Tu je príklad schémy zapojenia, ktorá ukazuje, ako prepojiť každé rozhranie snímača.

Hneď po vybalení je doska nakonfigurovaná na rozhranie I2C, preto vám toto pripojenie odporúčame použiť, ak ste inak agnostik. Všetko, čo potrebujete, sú štyri drôty!

Vyžadujú sa iba štyri pripojenia Vcc, Gnd, SCL a SDA piny, ktoré sú prepojené pomocou kábla I2C.

Tieto spojenia sú znázornené na obrázkoch vyššie.

Krok 3: Kód Java na meranie intenzity magnetického poľa:

Kód Java na meranie intenzity magnetického poľa
Kód Java na meranie intenzity magnetického poľa
Kód Java na meranie intenzity magnetického poľa
Kód Java na meranie intenzity magnetického poľa

Výhodou použitia raspberry pi je, že vám poskytuje flexibilitu programovacieho jazyka, v ktorom chcete dosku programovať, aby ste s ním mohli prepojiť senzor. S využitím tejto výhody tejto dosky demonštrujeme, že je programovaná v jazyku Java. Java kód pre HMC5883 si môžete stiahnuť z našej komunity github, ktorou je Dcube Store.

Rovnako ako pre jednoduchosť používateľov, vysvetľujeme kód aj tu:

Ako prvý krok kódovania si musíte stiahnuť knižnicu pi4j v prípade jazyka Java, pretože táto knižnica podporuje funkcie použité v kóde. Ak si chcete stiahnuť knižnicu, môžete navštíviť nasledujúci odkaz:

pi4j.com/install.html

Pracovný kód java pre tento senzor môžete skopírovať aj tu:

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

mport com.pi4j.io.i2c. I2CFactory;

import java.io. IOException; verejná trieda HMC5883

{

public static void main (String args ) hodí výnimku

{

// Vytvorenie zbernice I2C

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

// Získať zariadenie I2C, adresa I2C HMC5883 je 0x1E (30)

I2CDevice zariadenie = Bus.getDevice (0x1E);

// Vyberte konfiguračný register A

// Normálna konfigurácia merania, dátový tok o/p = 0,75 Hz

device.write (0x00, (byte) 0x60);

// Vyberte režim Register

// Režim nepretržitého merania

device.write (0x02, (byte) 0x00);

Thread.sleep (500);

// Prečítajte 6 bajtov údajov z 0x03 (3)

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

bajt dáta = nový bajt [6];

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

// Previesť údaje

int xMag = ((údaje [0] & 0xFF) * 256 + (údaje [1] & 0xFF));

if (xMag> 32767)

{

xMag -= 65536;

}

int zMag = ((údaje [2] & 0xFF) * 256 + (údaje [3] & 0xFF));

ak (zMag> 32767)

{

zMag -= 65536;

}

int yMag = ((údaje [4] & 0xFF) * 256 + (údaje [5] & 0xFF));

if (yMag> 32767)

{

yMag -= 65536;

}

// Výstup údajov na obrazovku

System.out.printf ("Magnetické pole v osi X: %d %n", xMag);

System.out.printf ("Magnetické pole v osi Y: %d %n", yMag);

System.out.printf ("Magnetické pole v osi Z: %d %n", zMag);

}

}

Na zápis príkazov a čítanie výstupu senzora sa používajú funkcie write () a read (). Nasledujúca časť ilustruje čítanie hodnôt magnetického poľa.

// Prečítajte 6 bajtov údajov z 0x03 (3)

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

bajt dáta = nový bajt [6];

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

Výstup je zobrazený na obrázku vyššie.

Krok 4: Aplikácie:

Aplikácie
Aplikácie

HMC5883 je viacčipový modul na povrchovú montáž určený na magnetické snímanie v nízkom poli s digitálnym rozhraním pre aplikácie, ako je nízkonákladový kompas a magnetometria. Jeho jeden až dva stupne presnosti a presnosti umožňujú navigáciu pre chodcov a aplikácie LBS.

Odporúča: