Kazalo:

Merjenje magnetnega polja z uporabo HMC5883 in Raspberry Pi: 4 koraki
Merjenje magnetnega polja z uporabo HMC5883 in Raspberry Pi: 4 koraki

Video: Merjenje magnetnega polja z uporabo HMC5883 in Raspberry Pi: 4 koraki

Video: Merjenje magnetnega polja z uporabo HMC5883 in Raspberry Pi: 4 koraki
Video: Проверка тока короткого замыкания двигателя-генератора постоянного тока 12 В 2024, Julij
Anonim
Image
Image

HMC5883 je digitalni kompas, zasnovan za magnetno zaznavanje nizkih polj. Ta naprava ima široko območje magnetnega polja +/- 8 Oe in izhodno hitrost 160 Hz. Senzor HMC5883 vključuje gonilnike trakov za samodejno razmagliciranje, preklic zamika in 12-bitni ADC, ki omogoča natančnost smeri kompasa od 1 ° do 2 °. Vsi mini moduli I²C so zasnovani za delovanje pri 5VDC.

V tej vadnici bomo razložili podrobno delovanje HMC5883 z Raspberry pi in njegovo programiranje z uporabo programskega jezika java.

1. korak: Potrebna strojna oprema:

Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema

Strojna oprema, ki je potrebna za izvedbo naloge, je naslednja:

1. HMC5883

2. Malina Pi

3. Kabel I2C

4. I2C ščit za Raspberry Pi

5. Ethernetni kabel

2. korak: Priključitev strojne opreme:

Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme

Oddelek za priključitev strojne opreme v bistvu razlaga potrebne povezave ožičenja med senzorjem in malinovim pi. Zagotavljanje pravilnih povezav je osnovna potreba pri delu na katerem koli sistemu za želeni izhod. Torej so potrebne povezave naslednje:

HMC5883 bo deloval preko I2C. Tu je primer sheme ožičenja, ki prikazuje, kako povezati vsak vmesnik senzorja.

Plošča je že pripravljena za vmesnik I2C, zato priporočamo uporabo te povezave, če niste agnostični. Vse kar potrebujete so štiri žice!

Potrebne so le štiri povezave Vcc, Gnd, SCL in SDA, ki so povezane s kablom I2C.

Te povezave so prikazane na zgornjih slikah.

3. korak: Koda Java za merjenje intenzivnosti magnetnega polja:

Koda Java za merjenje intenzivnosti magnetnega polja
Koda Java za merjenje intenzivnosti magnetnega polja
Koda Java za merjenje intenzivnosti magnetnega polja
Koda Java za merjenje intenzivnosti magnetnega polja

Prednost uporabe maline pi je, da vam omogoča prilagodljivost programskega jezika, v katerem želite programirati ploščo, da povežete senzor z njo. Če izkoristimo to prednost te plošče, tukaj dokazujemo njeno programiranje v Javi. Kodo java za HMC5883 lahko prenesete iz naše skupnosti github, ki je Dcube Store.

Poleg lažjega uporabnika kodo razlagamo tudi tukaj:

Kot prvi korak kodiranja morate v primeru jave prenesti knjižnico pi4j, ker ta knjižnica podpira funkcije, ki se uporabljajo v kodi. Če želite prenesti knjižnico, obiščite naslednjo povezavo:

pi4j.com/install.html

Delovno kodo java za ta senzor lahko kopirate tudi tukaj:

uvoz com.pi4j.io.i2c. I2CBus;

uvoz com.pi4j.io.i2c. I2CDevice;

mport com.pi4j.io.i2c. I2CFactory;

import java.io. IOException; javni razred HMC5883

{

public static void main (String args ) vrže Exception

{

// Ustvari vodilo I2C

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

// Pridobite napravo I2C, naslov I2C HMC5883 je 0x1E (30)

Naprava I2CDevice = Bus.getDevice (0x1E);

// Izberite konfiguracijski register A

// Normalna konfiguracija merjenja, hitrost prenosa podatkov o/p = 0,75 Hz

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

// Izberite register načina

// Način neprekinjenega merjenja

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

Thread.sleep (500);

// Preberite 6 bajtov podatkov iz 0x03 (3)

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

bajt podatki = novi bajt [6];

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

// Pretvorimo podatke

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

če (xMag> 32767)

{

xMag -= 65536;

}

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

če (zMag> 32767)

{

zMag -= 65536;

}

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

če (yMag> 32767)

{

yMag -= 65536;

}

// Izhod podatkov na zaslon

System.out.printf ("Magnetno polje v osi X: %d %n", xMag);

System.out.printf ("Magnetno polje v osi Y: %d %n", yMag);

System.out.printf ("Magnetno polje v osi Z: %d %n", zMag);

}

}

Za zapisovanje ukazov in branje izhoda senzorja se uporabljata funkcija Write () in read (). Naslednji del prikazuje branje vrednosti magnetnega polja.

// Preberite 6 bajtov podatkov iz 0x03 (3)

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

bajt podatki = novi bajt [6];

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

Izhod je prikazan na zgornji sliki.

4. korak: Aplikacije:

Aplikacije
Aplikacije

HMC5883 je površinsko nameščen modul z več čipi, zasnovan za magnetno zaznavanje nizkih polj z digitalnim vmesnikom za aplikacije, kot sta poceni kompas in magnetometrija. Njegova natančnost in natančnost od ene do dveh stopinj omogočata navigacijo za pešce in aplikacije LBS.

Priporočena: