Taula de continguts:

Mesura del camp magnètic mitjançant HMC5883 i Raspberry Pi: 4 passos
Mesura del camp magnètic mitjançant HMC5883 i Raspberry Pi: 4 passos

Vídeo: Mesura del camp magnètic mitjançant HMC5883 i Raspberry Pi: 4 passos

Vídeo: Mesura del camp magnètic mitjançant HMC5883 i Raspberry Pi: 4 passos
Vídeo: Часы G Shock до 100 долларов-15 лучших часов Casio G Shock до 100 дол... 2024, Juliol
Anonim
Image
Image

La HMC5883 és una brúixola digital dissenyada per a la detecció magnètica de camp baix. Aquest dispositiu té un ampli rang de camps magnètics de +/- 8 Oe i una velocitat de sortida de 160 Hz. El sensor HMC5883 inclou controladors automàtics de corretges de desmagnetització, cancel·lació de compensació i un ADC de 12 bits que permet una precisió de capçalera de la brúixola d’1 a 2 °. Tots els mini mòduls I²C estan dissenyats per funcionar a 5VDC.

En aquest tutorial, explicarem el funcionament detallat de HMC5883 amb Raspberry pi i la seva programació mitjançant el llenguatge de programació Java.

Pas 1: maquinari necessari:

Maquinari necessari
Maquinari necessari
Maquinari necessari
Maquinari necessari
Maquinari necessari
Maquinari necessari

El maquinari necessari per dur a terme la tasca és el següent:

1. HMC5883

2. Raspberry Pi

3. Cable I2C

4. Escut I2C per a Raspberry Pi

5. Cable Ethernet

Pas 2: connexió de maquinari:

Connexió de maquinari
Connexió de maquinari
Connexió de maquinari
Connexió de maquinari

La secció de connexió de maquinari explica bàsicament les connexions de cablejat necessàries entre el sensor i el raspberry pi. Garantir connexions correctes és la necessitat bàsica mentre es treballa en qualsevol sistema per a la sortida desitjada. Per tant, les connexions necessàries són les següents:

L'HMC5883 funcionarà sobre I2C. Aquí teniu un exemple de diagrama de cablejat, que demostra com connectar cada interfície del sensor.

Fora de la caixa, el tauler està configurat per a una interfície I2C, per tant, us recomanem que utilitzeu aquesta connexió si no sou agnòstic. Tot el que necessiteu són quatre cables.

Només es necessiten quatre connexions pins Vcc, Gnd, SCL i SDA i es connecten amb l'ajut del cable I2C.

Aquestes connexions es mostren a les imatges anteriors.

Pas 3: Codi Java per mesurar la intensitat del camp magnètic:

Codi Java per mesurar la intensitat del camp magnètic
Codi Java per mesurar la intensitat del camp magnètic
Codi Java per mesurar la intensitat del camp magnètic
Codi Java per mesurar la intensitat del camp magnètic

L’avantatge d’utilitzar el raspberry pi és que us proporciona la flexibilitat del llenguatge de programació en què voleu programar la placa per tal d’interfocar el sensor amb ella. Aprofitant aquest avantatge d’aquest tauler, demostrem aquí que està programant a Java. El codi Java per a HMC5883 es pot descarregar de la nostra comunitat de github que és Dcube Store.

A més de la facilitat dels usuaris, aquí també expliquem el codi:

Com a primer pas de codificació, heu de descarregar la biblioteca pi4j en cas de Java, perquè aquesta biblioteca admet les funcions utilitzades al codi. Per tant, per descarregar la biblioteca podeu visitar el següent enllaç:

pi4j.com/install.html

Podeu copiar el codi Java de treball d’aquest sensor també des d’aquí:

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

mport com.pi4j.io.i2c. I2CFactory;

import java.io. IOException; classe pública HMC5883

{

public static void main (String args ) llança Excepció

{

// Crea un bus I2C

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

// Obtén un dispositiu I2C, l'adreça I2C HMC5883 és 0x1E (30)

I2CDevice device = Bus.getDevice (0x1E);

// Seleccioneu Registre de configuració A

// Configuració de mesurament normal, velocitat de dades o / p = 0,75 Hz

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

// Selecciona el registre de mode

// Mode de mesura contínua

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

Thread.sleep (500);

// Llegir 6 bytes de dades de 0x03 (3)

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

byte dades = byte nou [6];

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

// Converteix les dades

int xMag = ((dades [0] i 0xFF) * 256 + (dades [1] i 0xFF));

if (xMag> 32767)

{

xMag - = 65536;

}

int zMag = ((dades [2] i 0xFF) * 256 + (dades [3] i 0xFF));

if (zMag> 32767)

{

zMag - = 65536;

}

int yMag = ((dades [4] i 0xFF) * 256 + (dades [5] i 0xFF));

if (yMag> 32767)

{

yMag - = 65536;

}

// Sortiu les dades a la pantalla

System.out.printf ("Camp magnètic a l'eix X:% d% n", xMag);

System.out.printf ("Camp magnètic a l'eix Y:% d% n", yMag);

System.out.printf ("Camp magnètic a l'eix Z:% d% n", zMag);

}

}

Les funcions Write () i read () s’utilitzen per escriure les ordres i llegir la sortida del sensor respectivament. La part següent il·lustra la lectura dels valors del camp magnètic.

// Llegir 6 bytes de dades de 0x03 (3)

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

byte dades = byte nou [6];

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

La sortida es mostra a la imatge superior.

Pas 4: aplicacions:

Aplicacions
Aplicacions

HMC5883 és un mòdul multi-xip de muntatge superficial dissenyat per a la detecció magnètica de camp baix amb una interfície digital per a aplicacions com el compàs de baix cost i la magnetometria. La seva precisió i precisió d’un a dos graus d’alt nivell permet la navegació per a vianants i les aplicacions LBS.

Recomanat: