Daftar Isi:

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

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

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

HMC5883 adalah kompas digital yang dirancang untuk penginderaan magnetik medan rendah. Perangkat ini memiliki rentang medan magnet yang luas +/-8 Oe dan tingkat output 160 Hz. Sensor HMC5883 mencakup driver strap degaussing otomatis, pembatalan offset, dan ADC 12-bit yang memungkinkan akurasi arah kompas 1° hingga 2°. Semua Modul Mini I²C dirancang untuk beroperasi pada 5VDC.

Dalam tutorial ini, kami akan menjelaskan cara kerja HMC5883 dengan Raspberry pi dan pemrogramannya menggunakan bahasa pemrograman java.

Langkah 1: Perangkat Keras Yang Dibutuhkan:

Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan
Perangkat Keras yang Dibutuhkan

Perangkat keras yang diperlukan untuk menyelesaikan tugas adalah sebagai berikut:

1. HMC5883

2. Raspberry Pi

3. Kabel I2C

4. Perisai I2C Untuk Raspberry Pi

5. Kabel Ethernet

Langkah 2: Sambungan Perangkat Keras:

Sambungan Perangkat Keras
Sambungan Perangkat Keras
Sambungan Perangkat Keras
Sambungan Perangkat Keras

Bagian hookup perangkat keras pada dasarnya menjelaskan koneksi kabel yang diperlukan antara sensor dan raspberry pi. Memastikan koneksi yang benar adalah kebutuhan dasar saat bekerja pada sistem apa pun untuk output yang diinginkan. Jadi, koneksi yang diperlukan adalah sebagai berikut:

HMC5883 akan bekerja melalui I2C. Berikut adalah contoh diagram pengkabelan, yang menunjukkan cara memasang setiap antarmuka sensor.

Out-of-the-box, papan dikonfigurasi untuk antarmuka I2C, karena itu kami sarankan menggunakan hookup ini jika Anda agnostik. Yang Anda butuhkan hanyalah empat kabel!

Hanya empat koneksi yang diperlukan pin Vcc, Gnd, SCL dan SDA dan ini terhubung dengan bantuan kabel I2C.

Koneksi ini ditunjukkan pada gambar di atas.

Langkah 3: Kode Java untuk Mengukur Intensitas Medan Magnet:

Kode Java untuk Mengukur Intensitas Medan Magnet
Kode Java untuk Mengukur Intensitas Medan Magnet
Kode Java untuk Mengukur Intensitas Medan Magnet
Kode Java untuk Mengukur Intensitas Medan Magnet

Keuntungan menggunakan raspberry pi adalah, yang memberi Anda fleksibilitas bahasa pemrograman di mana Anda ingin memprogram papan untuk menghubungkan sensor dengannya. Memanfaatkan keunggulan papan ini, kami mendemonstrasikan di sini pemrograman di Jawa. Kode java untuk HMC5883 dapat diunduh dari komunitas github kami yaitu Dcube Store.

Selain untuk memudahkan pengguna, kami juga menjelaskan kodenya di sini:

Sebagai langkah pertama pengkodean, Anda perlu mengunduh pustaka pi4j untuk Java, karena pustaka ini mendukung fungsi yang digunakan dalam kode. Nah, untuk mendownload librarynya anda bisa mengunjungi link berikut ini:

pi4j.com/install.html

Anda dapat menyalin kode Java yang berfungsi untuk sensor ini dari sini juga:

impor com.pi4j.io.i2c. I2CBus;

impor com.pi4j.io.i2c. I2CDevice;

mport com.pi4j.io.i2c. I2CFactory;

impor java.io. IOException; kelas publik HMC5883

{

public static void main(String args) melempar Pengecualian

{

// Buat bus I2C

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

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

Perangkat I2CDevice = Bus.getDevice(0x1E);

// Pilih Daftar konfigurasi A

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

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

// Pilih Mode register

// Mode pengukuran berkelanjutan

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

Thread.sleep(500);

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

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

byte data = byte baru[6];

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

// Konversi 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 layar

System.out.printf("Medan magnet pada sumbu X: %d %n", xMag);

System.out.printf("Medan magnet pada Sumbu Y: %d %n", yMag);

System.out.printf("Medan magnet pada Sumbu Z: %d %n", zMag);

}

}

Write() dan read() fungsi digunakan untuk menulis perintah dan membaca output sensor masing-masing. Bagian berikut mengilustrasikan pembacaan nilai medan magnet.

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

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

byte data = byte baru[6];

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

Outputnya ditunjukkan pada gambar di atas.

Langkah 4: Aplikasi:

Aplikasi
Aplikasi

HMC5883 adalah modul multi-chip pemasangan permukaan yang dirancang untuk penginderaan magnet medan rendah dengan antarmuka digital untuk aplikasi seperti kompas dan magnetometri berbiaya rendah. Akurasi dan presisi tingkat tinggi satu hingga dua derajat memungkinkan Navigasi Pejalan Kaki dan Aplikasi LBS.

Direkomendasikan: