Innholdsfortegnelse:

Magnetisk feltmåling ved hjelp av HMC5883 og Raspberry Pi: 4 trinn
Magnetisk feltmåling ved hjelp av HMC5883 og Raspberry Pi: 4 trinn

Video: Magnetisk feltmåling ved hjelp av HMC5883 og Raspberry Pi: 4 trinn

Video: Magnetisk feltmåling ved hjelp av HMC5883 og Raspberry Pi: 4 trinn
Video: Kuantum Elektrodinamiği ve Uygulamaları | Modern Fiziğin İlkeleri 2024, November
Anonim
Image
Image

HMC5883 er et digitalt kompass designet for lavfelt magnetisk sansing. Denne enheten har et bredt magnetfeltområde på +/- 8 Oe og en utgangshastighet på 160 Hz. HMC5883-sensoren inkluderer automatiske degaussing-stroppdrivere, offset-kansellering og en 12-biters ADC som muliggjør 1 ° til 2 ° kompassretningsnøyaktighet. Alle I²C minimoduler er designet for å fungere på 5VDC.

I denne opplæringen skal vi forklare detaljert bruk av HMC5883 med Raspberry pi og programmeringen ved å bruke java programmeringsspråk.

Trinn 1: Nødvendig maskinvare:

Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves
Maskinvare som kreves

Maskinvare som kreves for å utføre oppgaven er som følger:

1. HMC5883

2. Bringebær Pi

3. I2C -kabel

4. I2C Shield For Raspberry Pi

5. Ethernet -kabel

Trinn 2: Maskinvaretilkobling:

Maskinvaretilkobling
Maskinvaretilkobling
Maskinvaretilkobling
Maskinvaretilkobling

Maskinvaretilkoblingsdelen forklarer i utgangspunktet ledningsforbindelsene som kreves mellom sensoren og bringebær -pi. Å sikre riktige tilkoblinger er den grunnleggende nødvendigheten mens du arbeider på et hvilket som helst system for ønsket utgang. Så de nødvendige tilkoblingene er som følger:

HMC5883 fungerer over I2C. Her er eksempel på koblingsskjema, som viser hvordan du kobler til hvert grensesnitt på sensoren.

Uten boksen er brettet konfigurert for et I2C-grensesnitt, derfor anbefaler vi å bruke denne tilkoblingen hvis du ellers er agnostiker. Alt du trenger er fire ledninger!

Bare fire tilkoblinger kreves Vcc, Gnd, SCL og SDA -pinner, og disse er koblet til ved hjelp av I2C -kabel.

Disse sammenhengene er vist på bildene ovenfor.

Trinn 3: Java -kode for å måle magnetfeltintensitet:

Java -kode for å måle magnetfeltintensitet
Java -kode for å måle magnetfeltintensitet
Java -kode for å måle magnetfeltintensitet
Java -kode for å måle magnetfeltintensitet

Fordelen med å bruke bringebær pi er at det gir deg fleksibiliteten til programmeringsspråket der du vil programmere brettet for å koble sensoren til det. Ved å utnytte denne fordelen med dette brettet, demonstrerer vi her at det er programmering i Java. Java -koden for HMC5883 kan lastes ned fra vårt github -fellesskap som er Dcube Store.

I tillegg til brukernes brukervennlighet, forklarer vi koden også her:

Som det første trinnet i kodingen må du laste ned pi4j -biblioteket i tilfelle java, fordi dette biblioteket støtter funksjonene som brukes i koden. Så for å laste ned biblioteket kan du besøke følgende lenke:

pi4j.com/install.html

Du kan også kopiere den fungerende java -koden for denne sensoren herfra:

importer com.pi4j.io.i2c. I2CBus;

importer com.pi4j.io.i2c. I2CDenhet;

mport com.pi4j.io.i2c. I2CFactory;

import java.io. IOException; offentlig klasse HMC5883

{

public static void main (String args ) kaster Unntak

{

// Lag I2C -buss

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

// Få I2C -enhet, HMC5883 I2C -adresse er 0x1E (30)

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

// Velg Konfigurasjonsregister A

// Normal målekonfigurasjon, datahastighet o/p = 0,75 Hz

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

// Velg Modusregister

// Kontinuerlig målemodus

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

Tråd. Sover (500);

// Les 6 byte med 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;

}

// Utdata til skjermen

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

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

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

}

}

Skriv () og les () funksjonene brukes til å skrive henholdsvis kommandoene og lese sensorutgangen. Følgende del illustrerer avlesningen av magnetiske feltverdier.

// Les 6 byte 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);

Utgangen er vist på bildet ovenfor.

Trinn 4: Søknader:

Applikasjoner
Applikasjoner

HMC5883 er en overflatemontert, multi-chip modul designet for lavfelt magnetisk sensing med et digitalt grensesnitt for applikasjoner som lavpris kompassering og magnetometri. Dens en til to graders høy nøyaktighet og presisjon muliggjør fotgjengernavigasjon og LBS -applikasjoner.

Anbefalt: