Orodha ya maudhui:

Upimaji wa Shamba la Magnetic Kutumia HMC5883 na Raspberry Pi: 4 Hatua
Upimaji wa Shamba la Magnetic Kutumia HMC5883 na Raspberry Pi: 4 Hatua

Video: Upimaji wa Shamba la Magnetic Kutumia HMC5883 na Raspberry Pi: 4 Hatua

Video: Upimaji wa Shamba la Magnetic Kutumia HMC5883 na Raspberry Pi: 4 Hatua
Video: How to use MPU-9250 Gyroscope, Accelerometer, Magnetometer for Arduino 2024, Julai
Anonim
Image
Image

HMC5883 ni dira ya dijiti iliyoundwa kwa kuhisi nguvu ya uwanja wa chini. Kifaa hiki kina upeo wa uwanja wa sumaku pana wa +/- 8 Oe na kiwango cha pato la 160 Hz. Sensorer ya HMC5883 inajumuisha madereva ya kamba ya kiotomatiki ya kusambaza, kufuta kukabiliana, na 12-bit ADC inayowezesha usahihi wa kichwa cha 1 ° hadi 2 °. Moduli zote za Mini I²C zimeundwa kufanya kazi kwa 5VDC.

Katika mafunzo haya, tutaelezea kazi kamili ya HMC5883 na Raspberry pi na programu yake kwa kutumia lugha ya programu ya java.

Hatua ya 1: Vifaa vinahitajika:

Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika
Vifaa vinahitajika

Vifaa ambavyo vinahitajika kukamilisha kazi ni kama ifuatavyo:

1. HMC5883

2. Raspberry Pi

3. Cable ya I2C

4. I2C Shield Kwa Raspberry Pi

5. Cable ya Ethernet

Hatua ya 2: Kuunganishwa kwa vifaa:

Kuunganishwa kwa Vifaa
Kuunganishwa kwa Vifaa
Kuunganishwa kwa Vifaa
Kuunganishwa kwa Vifaa

Sehemu ya uunganishaji wa vifaa kimsingi inaelezea uunganisho wa wiring unaohitajika kati ya sensorer na pi ya raspberry. Kuhakikisha unganisho sahihi ni hitaji la msingi wakati unafanya kazi kwenye mfumo wowote wa pato unalotaka. Kwa hivyo, viunganisho vinavyohitajika ni kama ifuatavyo.

HMC5883 itafanya kazi juu ya I2C. Hapa kuna mfano wa mchoro wa wiring, unaonyesha jinsi ya kuweka waya kila kiunganishi cha sensa.

Nje ya sanduku, bodi imesanidiwa kwa kiolesura cha I2C, kwa hivyo tunapendekeza utumie uunganisho huu ikiwa wewe ni agnostic. Unachohitaji ni waya nne!

Viunganisho vinne tu vinahitajika Vcc, Gnd, SCL na SDA pini na hizi zimeunganishwa kwa msaada wa kebo ya I2C.

Uunganisho huu umeonyeshwa kwenye picha hapo juu.

Hatua ya 3: Msimbo wa Java Kupima Ukali wa Shamba la Magnetic:

Nambari ya Java ya Kupima Ukali wa Shamba la Magnetic
Nambari ya Java ya Kupima Ukali wa Shamba la Magnetic
Nambari ya Java ya Kupima Ukali wa Shamba la Magnetic
Nambari ya Java ya Kupima Ukali wa Shamba la Magnetic

Faida ya kutumia raspberry pi ni, ambayo hukupa kubadilika kwa lugha ya programu ambayo unataka kupanga bodi ili kusanikisha sensa nayo. Kuunganisha faida hii ya bodi hii, tunaonyesha hapa ni programu katika Java. Nambari ya java ya HMC5883 inaweza kupakuliwa kutoka kwa jamii yetu ya github ambayo ni Duka la Dcube.

Pamoja na urahisi wa watumiaji, tunaelezea nambari hapa pia:

Kama hatua ya kwanza ya kuweka alama, unahitaji kupakua maktaba ya pi4j ikiwa ni java, kwa sababu maktaba hii inasaidia kazi zinazotumiwa kwenye nambari. Kwa hivyo, kupakua maktaba unaweza kutembelea kiunga kifuatacho:

pi4j.com/install.html

Unaweza kunakili nambari ya java inayofanya kazi ya sensa hii kutoka hapa pia:

kuagiza com.pi4j.io.i2c. I2CBus;

kuagiza com.pi4j.io.i2c. I2CDevice;

mport com.pi4j.io.i2c. I2CUtendaji;

kuagiza java.io. IOException; darasa la umma HMC5883

{

umma tuli batili kuu (Kamba args ) hutupa Ubaguzi

{

// Unda basi ya I2C

Basi la I2C = I2CFactory.getInstance (I2CBus. BUS_1);

// Pata kifaa cha I2C, anwani ya HMC5883 I2C ni 0x1E (30)

Kifaa cha I2CDevice = Bus.getDevice (0x1E);

// Chagua sajili ya Usanidi A

// Usanidi wa kipimo cha kawaida, kiwango cha data o / p = 0.75 Hz

andika kifaa (0x00, (byte) 0x60);

// Chagua Usajili wa Njia

// Hali ya kipimo cha kuendelea

andika kifaa (0x02, (byte) 0x00);

Kulala (500);

// Soma ka 6 za data kutoka 0x03 (3)

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

data data = byte mpya [6];

soma kifaa (0x03, data, 0, 6);

// Badilisha data

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

ikiwa (xMag> 32767)

{

xMag - = 65536;

}

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

ikiwa (zMag> 32767)

{

zMag - = 65536;

}

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

ikiwa (yMag> 32767)

{

yMag - = 65536;

}

// Pato data kwa screen

System.out.printf ("Uwanja wa Magnetic katika X-Axis:% d% n", xMag);

System.out.printf ("Uwanja wa Magnetic katika Y-Axis:% d% n", yMag);

System.out.printf ("Uwanja wa Magnetic katika Z-Axis:% d% n", zMag);

}

}

Andika () na usome () kazi hutumiwa kuandika amri na kusoma matokeo ya sensor mtawaliwa. Kufuatia sehemu inaonyesha usomaji wa maadili ya uwanja wa sumaku.

// Soma ka 6 za data kutoka 0x03 (3)

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

data data = byte mpya [6];

soma kifaa (0x03, data, 0, 6);

Pato linaonyeshwa kwenye picha hapo juu.

Hatua ya 4: Maombi:

Maombi
Maombi

HMC5883 ni mlima wa uso, moduli ya chip nyingi iliyoundwa kwa kuhisi uwanja wa chini na kiolesura cha dijiti kwa programu kama kuzunguka kwa gharama nafuu na sumaku. Usahihi wa kiwango cha juu cha kiwango cha moja hadi mbili na usahihi huwezesha Urambazaji wa Watembea kwa miguu na Maombi ya LBS.

Ilipendekeza: