Daftar Isi:

Antarmuka Sensor Giroskop 3-Sumbu BMG160 Dengan Arduino Nano: 5 Langkah
Antarmuka Sensor Giroskop 3-Sumbu BMG160 Dengan Arduino Nano: 5 Langkah

Video: Antarmuka Sensor Giroskop 3-Sumbu BMG160 Dengan Arduino Nano: 5 Langkah

Video: Antarmuka Sensor Giroskop 3-Sumbu BMG160 Dengan Arduino Nano: 5 Langkah
Video: Interfacing L3G4200 triple axis Gyro with Arduino 2024, November
Anonim
Image
Image

Di dunia saat ini, lebih dari separuh remaja dan anak-anak menyukai game dan semua orang yang menyukainya, terpesona oleh aspek teknis game, mengetahui pentingnya penginderaan gerak dalam domain ini. Kami juga kagum dengan hal yang sama dan hanya untuk membawanya ke papan, kami berpikir untuk bekerja pada sensor giroskop yang dapat mengukur laju sudut objek apa pun. Jadi, sensor yang kami pakai untuk menangani tugas tersebut adalah BMG160. BMG160 adalah sensor giroskop 16-bit, digital, triaksial, yang dapat mengukur laju sudut dalam tiga dimensi ruang yang tegak lurus.

Dalam tutorial ini, kita akan mendemonstrasikan cara kerja BMG160 dengan Arduino Nano.

Perangkat keras yang Anda perlukan untuk tujuan ini adalah sebagai berikut:

1. BMG160

2. Arduino Nano

3. Kabel I2C

4. Perisai I2C Untuk Arduino Nano

Langkah 1: Ikhtisar BMG160:

Apa yang kau butuhkan..!!
Apa yang kau butuhkan..!!

Pertama-tama kami ingin membiasakan Anda dengan fitur dasar modul sensor yaitu BMG160 dan protokol komunikasi yang digunakannya.

BMG160 pada dasarnya adalah sensor giroskop 16-bit, digital, triaksial, yang dapat mengukur kecepatan sudut. Hal ini mampu menghitung tingkat sudut dalam tiga dimensi ruang tegak lurus, sumbu x-, y- dan z, dan memberikan sinyal output yang sesuai. Itu dapat berkomunikasi dengan papan raspberry pi menggunakan protokol komunikasi I2C. Modul khusus ini dirancang untuk memenuhi persyaratan untuk aplikasi konsumen serta keperluan industri.

Protokol komunikasi tempat sensor bekerja adalah I2C. I2C adalah singkatan dari inter-integrated circuit. Ini adalah protokol komunikasi di mana komunikasi terjadi melalui jalur SDA (data serial) dan SCL (jam serial). Ini memungkinkan menghubungkan beberapa perangkat secara bersamaan. Ini adalah salah satu protokol komunikasi yang paling sederhana dan paling efisien.

Langkah 2: Yang Anda Butuhkan.

Apa yang kau butuhkan..!!
Apa yang kau butuhkan..!!
Apa yang kau butuhkan..!!
Apa yang kau butuhkan..!!
Apa yang kau butuhkan..!!
Apa yang kau butuhkan..!!

Bahan yang kami butuhkan untuk mencapai tujuan kami meliputi komponen perangkat keras berikut:

1. BMG160

2. Arduino Nano

3. Kabel I2C

4. Perisai I2C untuk Arduino Nano

Langkah 3: 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 Arduino. Memastikan koneksi yang benar adalah kebutuhan dasar saat bekerja pada sistem apa pun untuk output yang diinginkan. Jadi, koneksi yang diperlukan adalah sebagai berikut:

BMG160 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 4: Pengukuran Giroskop 3-Axis Kode Arduino:

Kode Arduino Pengukuran Giroskop 3-Sumbu
Kode Arduino Pengukuran Giroskop 3-Sumbu
Kode Arduino Pengukuran Giroskop 3-Sumbu
Kode Arduino Pengukuran Giroskop 3-Sumbu

Mari kita mulai dengan kode arduino sekarang.

Saat menggunakan modul sensor dengan arduino, kami menyertakan pustaka Wire.h. Pustaka "Wire" berisi fungsi-fungsi yang memfasilitasi komunikasi i2c antara sensor dan board arduino.

Seluruh kode arduino diberikan di bawah ini untuk kenyamanan pengguna:

#include// Alamat I2C BMG160 adalah 0x68(104)

#definisikan Addr 0x68

batalkan pengaturan()

{

// Inisialisasi komunikasi I2C sebagai MASTER

Kawat.mulai();

// Inisialisasi Komunikasi Serial, setel baud rate = 9600

Serial.begin(9600);

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Pilih Daftar rentang

Wire.write(0x0F);

// Konfigurasi rentang skala penuh 2000 dps

Kawat.tulis (0x80);

// Hentikan Transmisi I2C

Kawat.endTransmisi();

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Pilih daftar Bandwidth

Kawat.tulis (0x10);

// Setel bandwidth = 200 Hz

Kawat.tulis (0x04);

// Hentikan Transmisi I2C

Kawat.endTransmisi();

penundaan (300);

}

lingkaran kosong()

{

data int yang tidak ditandatangani[6];

// Mulai Transmisi I2C

Wire.beginTransmission(Addr);

// Pilih daftar data Girometer

Kawat.tulis (0x02);

// Hentikan Transmisi I2C

Kawat.endTransmisi();

// Meminta 6 byte data

Wire.requestFrom(Addr, 6);

// Baca 6 byte data

// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb

if(Wire.available() == 6)

{

data[0] = Wire.read();

data[1] = Kawat.baca();

data[2] = Wire.read();

data[3] = Wire.read();

data[4] = Kawat.baca();

data[5] = Wire.read();

}

penundaan (300);

// Konversi data

int xGyro = ((data[1] * 256) + data[0]);

int yGyro = ((data[3] * 256) + data[2]);

int zGyro = ((data[5] * 256) + data[4]);

// Keluarkan data ke monitor serial

Serial.print("Sumbu X dari Rotasi: ");

Serial.println(xGyro); Serial.print("Sumbu Rotasi Y: ");

Serial.println(yGyro); Serial.print("Sumbu Z dari Rotasi: ");

Serial.println(zGyro);

penundaan (500);

}

Langkah 5: Aplikasi:

Aplikasi
Aplikasi

BMG160 memiliki beragam jumlah aplikasi di perangkat seperti ponsel, perangkat antarmuka mesin manusia. Modul sensor ini telah dirancang untuk memenuhi persyaratan untuk aplikasi konsumen seperti stabilisasi gambar (DSC dan ponsel kamera), game, dan perangkat penunjuk. Ini juga digunakan dalam sistem yang memerlukan pengenalan gerakan dan sistem yang digunakan dalam navigasi dalam ruangan.

Direkomendasikan: