Isi kandungan:

Pengukuran Medan Magnetik Menggunakan HMC5883 dan Raspberry Pi: 4 Langkah
Pengukuran Medan Magnetik Menggunakan HMC5883 dan Raspberry Pi: 4 Langkah

Video: Pengukuran Medan Magnetik Menggunakan HMC5883 dan Raspberry Pi: 4 Langkah

Video: Pengukuran Medan Magnetik Menggunakan HMC5883 dan Raspberry Pi: 4 Langkah
Video: ESP32 Technical Tutorials: HMC5883L - Compass 2024, November
Anonim
Image
Image

HMC5883 adalah kompas digital yang direka untuk penderiaan medan rendah. Peranti ini mempunyai jarak medan magnet yang luas +/- 8 Oe dan kadar output 160 Hz. Sensor HMC5883 merangkumi pemacu tali degaussing automatik, pembatalan offset, dan ADC 12-bit yang memungkinkan ketepatan tajuk kompas 1 ° hingga 2 °. Semua Modul Mini I²C direka untuk beroperasi pada 5VDC.

Dalam tutorial ini, kita akan menerangkan kerja terperinci HMC5883 dengan Raspberry pi dan pengaturcaraannya menggunakan bahasa pengaturcaraan java.

Langkah 1: Perkakasan Diperlukan:

Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan

Perkakasan yang diperlukan untuk menyelesaikan tugas adalah seperti berikut:

1. HMC5883

2. Raspberry Pi

3. Kabel I2C

4. Perisai I2C Untuk Raspberry Pi

5. Kabel Ethernet

Langkah 2: Penyambungan Perkakasan:

Penyambungan Perkakasan
Penyambungan Perkakasan
Penyambungan Perkakasan
Penyambungan Perkakasan

Bahagian penyambungan perkakasan pada dasarnya menerangkan sambungan pendawaian yang diperlukan antara sensor dan raspberry pi. Memastikan sambungan yang betul adalah keperluan asas semasa mengerjakan sistem apa pun untuk output yang diinginkan. Jadi, sambungan yang diperlukan adalah seperti berikut:

HMC5883 akan berfungsi di atas I2C. Berikut adalah contoh rajah pendawaian, yang menunjukkan cara memasang setiap antara muka sensor.

Di luar kotak, papan dikonfigurasikan untuk antara muka I2C, oleh itu kami mengesyorkan menggunakan penyambungan ini jika anda tidak agnostik. Yang anda perlukan hanyalah empat wayar!

Hanya diperlukan empat sambungan pin Vcc, Gnd, SCL dan SDA dan ini disambungkan dengan bantuan kabel I2C.

Sambungan ini ditunjukkan dalam gambar di atas.

Langkah 3: Kod Java untuk Mengukur Intensiti Medan Magnetik:

Kod Java untuk Mengukur Intensiti Medan Magnetik
Kod Java untuk Mengukur Intensiti Medan Magnetik
Kod Java untuk Mengukur Intensiti Medan Magnetik
Kod Java untuk Mengukur Intensiti Medan Magnetik

Kelebihan menggunakan raspberry pi adalah, yang memberi anda fleksibiliti bahasa pengaturcaraan di mana anda ingin memprogram papan untuk menghubungkan antara sensor dengannya. Dengan memanfaatkan kelebihan papan ini, kami menunjukkan di sini programnya di Java. Kod java untuk HMC5883 boleh dimuat turun dari komuniti github kami iaitu Dcube Store.

Serta untuk kemudahan pengguna, kami menerangkan kodnya di sini juga:

Sebagai langkah pertama pengekodan, anda perlu memuat turun pustaka pi4j sekiranya terdapat java, kerana perpustakaan ini menyokong fungsi yang digunakan dalam kod. Oleh itu, untuk memuat turun perpustakaan anda boleh melayari pautan berikut:

pi4j.com/install.html

Anda boleh menyalin kod java yang berfungsi untuk sensor ini dari sini juga:

import com.pi4j.io.i2c. I2CBus;

import com.pi4j.io.i2c. I2CDevice;

mport com.pi4j.io.i2c. I2CFactory;

import java.io. IOException; kelas awam HMC5883

{

utama kekosongan statik awam (String args ) melontarkan Pengecualian

{

// Buat bas I2C

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

// Dapatkan peranti I2C, alamat HMC5883 I2C adalah 0x1E (30)

Peranti I2CDevice = Bus.getDevice (0x1E);

// Pilih Configuration register A

// Konfigurasi pengukuran normal, kadar data o / p = 0,75 Hz

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

// Pilih Daftar mod

// Mod pengukuran berterusan

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

Thread.sleep (500);

// Baca 6 bait data dari 0x03 (3)

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

bait data = bait baru [6];

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

// Tukarkan data

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

jika (xMag> 32767)

{

xMag - = 65536;

}

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

jika (zMag> 32767)

{

zMag - = 65536;

}

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

jika (yMag> 32767)

{

yMag - = 65536;

}

// Keluarkan data ke skrin

System.out.printf ("Medan magnet dalam X-Axis:% d% n", xMag);

System.out.printf ("Medan magnet dalam Y-Axis:% d% n", yMag);

System.out.printf ("Medan magnet dalam Z-Paksi:% d% n", zMag);

}

}

Fungsi Write () dan read () digunakan untuk menulis perintah dan membaca output sensor masing-masing. Bahagian berikut menggambarkan pembacaan nilai medan magnet.

// Baca 6 bait data dari 0x03 (3)

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

bait data = bait baru [6];

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

Keluaran ditunjukkan dalam gambar di atas.

Langkah 4: Aplikasi:

Permohonan
Permohonan

HMC5883 adalah modul multi-chip permukaan-mount yang direka untuk penginderaan magnet medan rendah dengan antara muka digital untuk aplikasi seperti kompas dan magnetometri kos rendah. Ketepatan dan ketepatan tahap tinggi satu hingga dua darjah membolehkan Navigasi Pejalan Kaki dan Aplikasi LBS.

Disyorkan: