Satura rādītājs:

Magnētiskā lauka mērīšana, izmantojot HMC5883 un Raspberry Pi: 4 soļi
Magnētiskā lauka mērīšana, izmantojot HMC5883 un Raspberry Pi: 4 soļi
Anonim
Image
Image

HMC5883 ir digitālais kompass, kas paredzēts zema lauka magnētiskajai uztveršanai. Šai ierīcei ir plašs magnētiskā lauka diapazons +/- 8 Oe un izejas ātrums 160 Hz. HMC5883 sensora komplektā ietilpst automātiskie atdalīšanas siksnu draiveri, nobīdes atcelšana un 12 bitu ADC, kas nodrošina 1 līdz 2 ° kompasa virziena precizitāti. Visi I²C mini moduļi ir paredzēti darbam pie 5 V līdzstrāvas.

Šajā apmācībā mēs izskaidrosim detalizētu HMC5883 darbu ar Raspberry pi un tā programmēšanu, izmantojot java programmēšanas valodu.

1. darbība. Nepieciešamā aparatūra:

Nepieciešamā aparatūra
Nepieciešamā aparatūra
Nepieciešamā aparatūra
Nepieciešamā aparatūra
Nepieciešamā aparatūra
Nepieciešamā aparatūra

Aparatūra, kas nepieciešama uzdevuma veikšanai, ir šāda:

1. HMC5883

2. Aveņu Pi

3. I2C kabelis

4. I2C vairogs Raspberry Pi

5. Ethernet kabelis

2. darbība. Aparatūras savienošana:

Aparatūras savienojums
Aparatūras savienojums
Aparatūras savienojums
Aparatūras savienojums

Aparatūras savienošanas sadaļa pamatā izskaidro nepieciešamos vadu savienojumus starp sensoru un aveņu pi. Pareizu savienojumu nodrošināšana ir pamatvajadzība, strādājot pie jebkuras sistēmas vēlamajam rezultātam. Tātad nepieciešamie savienojumi ir šādi:

HMC5883 darbosies, izmantojot I2C. Šeit ir elektroinstalācijas shēmas piemērs, kas parāda, kā savienot katru sensora saskarni.

Izņemot komplektu, tāfele ir konfigurēta I2C saskarnei, tāpēc mēs iesakām izmantot šo savienojumu, ja esat citādi agnostiķis. Viss, kas Jums nepieciešams, ir četri vadi!

Nepieciešami tikai četri savienojumi Vcc, Gnd, SCL un SDA, un tie ir savienoti, izmantojot I2C kabeli.

Šie savienojumi ir parādīti iepriekš redzamajos attēlos.

3. darbība: Java kods magnētiskā lauka intensitātes mērīšanai:

Java kods magnētiskā lauka intensitātes mērīšanai
Java kods magnētiskā lauka intensitātes mērīšanai
Java kods magnētiskā lauka intensitātes mērīšanai
Java kods magnētiskā lauka intensitātes mērīšanai

Aveņu pi izmantošanas priekšrocība ir tā, ka nodrošina elastību programmēšanas valodā, kurā vēlaties programmēt tāfeli, lai ar to savienotu sensoru. Izmantojot šīs plates priekšrocības, mēs šeit demonstrējam, ka tā ir programmēšana Java. Java kodu HMC5883 var lejupielādēt no mūsu github kopienas, kas ir Dcube Store.

Kā arī lietotāju ērtībai mēs šeit izskaidrojam kodu:

Kā pirmais kodēšanas solis java gadījumā ir jālejupielādē pi4j bibliotēka, jo šī bibliotēka atbalsta kodā izmantotās funkcijas. Tātad, lai lejupielādētu bibliotēku, varat apmeklēt šo saiti:

pi4j.com/install.html

Šeit varat arī nokopēt šī sensora darba Java kodu:

importēt com.pi4j.io.i2c. I2CBus;

importēt com.pi4j.io.i2c. I2CDevice;

mport com.pi4j.io.i2c. I2CFactory;

importēt java.io. IOException; publiskā klase HMC5883

{

public static void main (String args ) metieni Izņēmums

{

// Izveidot I2C kopni

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

// Iegūt I2C ierīci, HMC5883 I2C adrese ir 0x1E (30)

I2CDevice device = Bus.getDevice (0x1E);

// Atlasiet konfigurācijas reģistru A

// Parastā mērījumu konfigurācija, datu pārraides ātrums o/p = 0,75 Hz

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

// Izvēlieties režīma reģistru

// Nepārtrauktas mērīšanas režīms

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

Vītne.miega (500);

// Nolasīt 6 baitus datu no 0x03 (3)

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

baits dati = jauns baits [6];

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

// Konvertēt datus

int xMag = ((dati [0] un 0xFF) * 256 + (dati [1] un 0xFF));

ja (xMag> 32767)

{

xMag -= 65536;

}

int zMag = ((dati [2] un 0xFF) * 256 + (dati [3] un 0xFF));

ja (zMag> 32767)

{

zMag -= 65536;

}

int yMag = ((dati [4] un 0xFF) * 256 + (dati [5] un 0xFF));

ja (yMag> 32767)

{

yMag -= 65536;

}

// Izvadiet datus ekrānā

System.out.printf ("Magnētiskais lauks X-asī: %d %n", xMag);

System.out.printf ("Magnētiskais lauks Y-asī: %d %n", yMag);

System.out.printf ("Magnētiskais lauks Z-asī: %d %n", zMag);

}

}

Rakstīšanas () un lasīšanas () funkcijas tiek izmantotas, lai attiecīgi ierakstītu komandas un nolasītu sensora izeju. Nākamā daļa ilustrē magnētiskā lauka vērtību nolasīšanu.

// Nolasīt 6 baitus datu no 0x03 (3)

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

baits dati = jauns baits [6];

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

Rezultāts ir parādīts attēlā iepriekš.

4. darbība. Lietojumprogrammas:

Lietojumprogrammas
Lietojumprogrammas

HMC5883 ir uz virsmas piestiprināms vairāku mikroshēmu modulis, kas paredzēts zema lauka magnētiskai uztveršanai ar digitālo interfeisu tādiem lietojumiem kā zemu izmaksu kompasēšana un magnetometrija. Tā viena līdz divu grādu augsta līmeņa precizitāte un precizitāte nodrošina gājēju navigāciju un LBS lietojumprogrammas.

Ieteicams: