Talaan ng mga Nilalaman:

Pagsukat ng Magnetic Field Gamit ang HMC5883 at Raspberry Pi: 4 na Hakbang
Pagsukat ng Magnetic Field Gamit ang HMC5883 at Raspberry Pi: 4 na Hakbang

Video: Pagsukat ng Magnetic Field Gamit ang HMC5883 at Raspberry Pi: 4 na Hakbang

Video: Pagsukat ng Magnetic Field Gamit ang HMC5883 at Raspberry Pi: 4 na Hakbang
Video: Автомобильный генератор для генератора с самовозбуждением с использованием ДИОДА 2024, Nobyembre
Anonim
Image
Image

Ang HMC5883 ay isang digital na kompas na dinisenyo para sa mababang patlang na pandama sa magnet. Ang aparatong ito ay may malawak na saklaw ng magnetic field na +/- 8 Oe at isang rate ng output na 160 Hz. Ang sensor ng HMC5883 ay may kasamang awtomatikong mga degaussing strap driver, offset na pagkansela, at isang 12-bit ADC na nagbibigay-daan sa katumpakan ng heading na 1 ° hanggang 2 °. Ang lahat ng mga Mini Module ng I²C ay idinisenyo upang mapatakbo sa 5VDC.

Sa tutorial na ito, ipapaliwanag namin ang detalyadong pagtatrabaho ng HMC5883 kasama ang Raspberry pi at ang programa nito gamit ang java programming language.

Hakbang 1: Kinakailangan ang Hardware:

Kinakailangan ang Hardware
Kinakailangan ang Hardware
Kinakailangan ang Hardware
Kinakailangan ang Hardware
Kinakailangan ang Hardware
Kinakailangan ang Hardware

Ang hardware na kinakailangan upang magawa ang gawain ay ang mga sumusunod:

1. HMC5883

2. Raspberry Pi

3. I2C Cable

4. I2C Shield Para sa Raspberry Pi

5. Ethernet Cable

Hakbang 2: Hardware Hookup:

Hardware Hookup
Hardware Hookup
Hardware Hookup
Hardware Hookup

Karaniwang ipinapaliwanag ng seksyon ng hookup ng hardware ang mga koneksyon sa mga kable na kinakailangan sa pagitan ng sensor at ng raspberry pi. Ang pagtiyak sa tamang mga koneksyon ay ang pangunahing pangangailangan habang nagtatrabaho sa anumang system para sa nais na output. Kaya, ang mga kinakailangang koneksyon ay ang mga sumusunod:

Gagana ang HMC5883 sa paglipas ng I2C. Narito ang halimbawa ng diagram ng mga kable, na nagpapakita kung paano i-wire ang bawat interface ng sensor.

Sa labas ng kahon, naka-configure ang board para sa isang interface ng I2C, dahil inirerekumenda namin ang paggamit ng hookup na ito kung hindi ka agnostiko. Ang kailangan mo lang ay apat na wires!

Apat na koneksyon lamang ang kinakailangan ng Vcc, Gnd, SCL at SDA pin at ang mga ito ay konektado sa tulong ng I2C cable.

Ang mga koneksyon na ito ay ipinakita sa mga larawan sa itaas.

Hakbang 3: Ang Java Code upang Sukatin ang Intensity ng Magnetic Field:

Ang Java Code upang Sukatin ang Intensity ng Magnetic Field
Ang Java Code upang Sukatin ang Intensity ng Magnetic Field
Ang Java Code upang Sukatin ang Intensity ng Magnetic Field
Ang Java Code upang Sukatin ang Intensity ng Magnetic Field

Ang bentahe ng paggamit ng raspberry pi ay, nagbibigay sa iyo ng kakayahang umangkop ng wika ng programa kung saan nais mong i-program ang board upang ma-interface ang sensor kasama nito. Ginagamit ang kalamangan na ito ng board na ito, ipinapakita namin dito ang pag-program nito sa Java. Ang java code para sa HMC5883 ay maaaring ma-download mula sa aming komunidad na github na Dcube Store.

Pati na rin para sa kadalian ng mga gumagamit, ipinapaliwanag din namin ang code dito:

Bilang unang hakbang ng pag-coding, kailangan mong i-download ang pi4j library sa kaso ng java, dahil sinusuportahan ng library na ito ang mga pagpapaandar na ginamit sa code. Kaya, upang mai-download ang library maaari mong bisitahin ang sumusunod na link:

pi4j.com/install.html

Maaari mong kopyahin ang gumaganang java code para sa sensor na ito mula dito din:

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

mport com.pi4j.io.i2c. I2CFactory;

import java.io. IOException; pampublikong klase HMC5883

{

public static void main (String args ) nagtatapon ng Exception

{

// Lumikha ng I2C bus

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

// Kumuha ng I2C device, ang address ng HMC5883 I2C ay 0x1E (30)

I2CDevice aparato = Bus.getDevice (0x1E);

// Piliin ang Rehistro ng pag-configure A

// Normal na pagsasaayos ng pagsukat, rate ng data o / p = 0.75 Hz

aparato. magsulat (0x00, (byte) 0x60);

// Select Mode register

// Patuloy na mode ng pagsukat

aparato. magsulat (0x02, (byte) 0x00);

Thread.tulog (500);

// Basahin ang 6 bytes ng data mula sa 0x03 (3)

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

byte data = bagong byte [6];

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

// I-convert ang data

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

kung (xMag> 32767)

{

xMag - = 65536;

}

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

kung (zMag> 32767)

{

zMag - = 65536;

}

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

kung (yMag> 32767)

{

yMag - = 65536;

}

// Output data sa screen

System.out.printf ("Magnetic field sa X-Axis:% d% n", xMag);

System.out.printf ("Magnetic field sa Y-Axis:% d% n", yMag);

System.out.printf ("Magnetic field sa Z-Axis:% d% n", zMag);

}

}

Isulat ang () at basahin ang () mga pagpapaandar ay ginagamit upang isulat ang mga utos at basahin ang output ng sensor ayon sa pagkakabanggit. Ang sumusunod na bahagi ay naglalarawan ng pagbabasa ng mga halaga ng magnetic field.

// Basahin ang 6 bytes ng data mula sa 0x03 (3)

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

byte data = bagong byte [6];

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

Ang output ay ipinapakita sa larawan sa itaas.

Hakbang 4: Mga Aplikasyon:

Mga Aplikasyon
Mga Aplikasyon

Ang HMC5883 ay isang pang-ibabaw, multi-chip module na dinisenyo para sa mababang patlang na magnetikong sensing na may isang digital interface para sa mga application tulad ng mababang gastos na kumpas at magnetometry. Ang isa hanggang dalawang degree na mataas na antas ng kawastuhan at katumpakan ay nagbibigay-daan sa Pedestrian Navigation at LBS Applications.

Inirerekumendang: