Indholdsfortegnelse:

Magnetisk feltmåling ved hjælp af HMC5883 og Raspberry Pi: 4 trin
Magnetisk feltmåling ved hjælp af HMC5883 og Raspberry Pi: 4 trin

Video: Magnetisk feltmåling ved hjælp af HMC5883 og Raspberry Pi: 4 trin

Video: Magnetisk feltmåling ved hjælp af HMC5883 og Raspberry Pi: 4 trin
Video: Forbandet hus ONDSKAB GÅR HER / SKÆRLIG POLTERGEIST / 2024, November
Anonim
Image
Image

HMC5883 er et digitalt kompas designet til lavfeltmagnetisk sansning. Denne enhed har et bredt magnetfeltområde på +/- 8 Oe og en udgangshastighed på 160 Hz. HMC5883-sensoren inkluderer automatiske degaussing-remdrivere, offset-annullering og en 12-bit ADC, der muliggør 1 ° til 2 ° kompasskursnøjagtighed. Alle I²C mini -moduler er designet til at fungere ved 5VDC.

I denne vejledning vil vi forklare den detaljerede bearbejdning af HMC5883 med Raspberry pi og dens programmering ved hjælp af java programmeringssprog.

Trin 1: Påkrævet hardware:

Hardware påkrævet
Hardware påkrævet
Hardware påkrævet
Hardware påkrævet
Hardware påkrævet
Hardware påkrævet

Hardware, der kræves for at udføre opgaven, er som følger:

1. HMC5883

2. Hindbær Pi

3. I2C -kabel

4. I2C Shield Til Raspberry Pi

5. Ethernet -kabel

Trin 2: Hardware -tilslutning:

Hardware -tilslutning
Hardware -tilslutning
Hardware -tilslutning
Hardware -tilslutning

Hardware -tilslutningssektionen forklarer grundlæggende de ledningsforbindelser, der kræves mellem sensoren og hindbær pi. At sikre korrekte forbindelser er den grundlæggende nødvendighed, mens du arbejder på et hvilket som helst system til den ønskede output. Så de nødvendige forbindelser er som følger:

HMC5883 fungerer over I2C. Her er eksemplet på ledningsdiagram, der viser, hvordan du tilslutter hver grænseflade på sensoren.

Out-of-the-box er tavlen konfigureret til en I2C-grænseflade, som sådan anbefaler vi at bruge denne tilslutning, hvis du ellers er agnostiker. Alt du behøver er fire ledninger!

Der kræves kun fire tilslutninger Vcc, Gnd, SCL og SDA ben, og disse er forbundet ved hjælp af I2C kabel.

Disse forbindelser er vist på billederne ovenfor.

Trin 3: Java -kode til måling af magnetisk feltintensitet:

Java -kode til måling af magnetisk feltintensitet
Java -kode til måling af magnetisk feltintensitet
Java -kode til måling af magnetisk feltintensitet
Java -kode til måling af magnetisk feltintensitet

Fordelen ved at bruge hindbær pi er, at det giver dig fleksibiliteten i det programmeringssprog, hvor du vil programmere tavlen for at kunne tilslutte sensoren til den. Ved at udnytte denne fordel ved dette kort demonstrerer vi her, at det er programmering i Java. Java -koden til HMC5883 kan downloades fra vores github -fællesskab, der er Dcube Store.

Ud over brugernes brugervenlighed forklarer vi også koden her:

Som det første trin i kodning skal du downloade pi4j -biblioteket i tilfælde af java, fordi dette bibliotek understøtter de funktioner, der bruges i koden. Så for at downloade biblioteket kan du besøge følgende link:

pi4j.com/install.html

Du kan også kopiere den fungerende java -kode til denne sensor herfra:

importer com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

mport com.pi4j.io.i2c. I2CFactory;

import java.io. IOException; offentlig klasse HMC5883

{

public static void main (String args ) kaster Undtagelse

{

// Opret I2C -bus

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

// Hent I2C -enhed, HMC5883 I2C -adresse er 0x1E (30)

I2CDevice -enhed = Bus.getDevice (0x1E);

// Vælg konfigurationsregister A

// Normal målekonfiguration, datahastighed o/p = 0,75 Hz

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

// Vælg Tilstandsregister

// Kontinuerlig målingstilstand

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

Tråd. Sover (500);

// Læs 6 bytes data fra 0x03 (3)

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

byte data = ny byte [6];

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

// Konverter dataene

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

hvis (xMag> 32767)

{

xMag -= 65536;

}

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

hvis (zMag> 32767)

{

zMag -= 65536;

}

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

hvis (yMag> 32767)

{

yMag -= 65536;

}

// Output data til skærmen

System.out.printf ("Magnetisk felt i X-akse: %d %n", xMag);

System.out.printf ("Magnetisk felt i Y-akse: %d %n", yMag);

System.out.printf ("Magnetisk felt i Z-akse: %d %n", zMag);

}

}

Funktionerne Write () og read () bruges til at skrive henholdsvis kommandoerne og læse sensoroutput. Følgende del illustrerer aflæsningen af magnetfeltværdier.

// Læs 6 bytes data fra 0x03 (3)

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

byte data = ny byte [6];

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

Outputtet er vist på billedet ovenfor.

Trin 4: Ansøgninger:

Ansøgninger
Ansøgninger

HMC5883 er et overflademonteret, multi-chip modul designet til lavfeltmagnetisk sansning med en digital grænseflade til applikationer såsom lavpriskompassering og magnetometri. Dens en til to graders høje nøjagtighed og præcision muliggør fodgængernavigation og LBS -applikationer.

Anbefalede: