Isi kandungan:

Antara muka Sensor Giroskop 3-Axis BMG160 Dengan Arduino Nano: 5 Langkah
Antara muka Sensor Giroskop 3-Axis BMG160 Dengan Arduino Nano: 5 Langkah

Video: Antara muka Sensor Giroskop 3-Axis BMG160 Dengan Arduino Nano: 5 Langkah

Video: Antara muka Sensor Giroskop 3-Axis BMG160 Dengan Arduino Nano: 5 Langkah
Video: Как использовать датчик акселерометра в MIT App Inventor 2 | День 21/100 2024, November
Anonim
Image
Image

Di dunia sekarang ini, lebih daripada separuh belia dan kanak-kanak gemar bermain permainan dan semua yang menyukainya, terpesona dengan aspek teknikal permainan mengetahui pentingnya penginderaan gerakan dalam domain ini. Kami juga kagum dengan perkara yang sama dan hanya untuk membawanya ke papan, kami memikirkan untuk menggunakan sensor giroskop yang dapat mengukur kadar sudut objek apa pun. Jadi, sensor yang kami gunakan untuk menangani tugas tersebut adalah BMG160. BMG160 adalah sensor giroskop 16-bit, digital, triaksial, yang dapat mengukur kadar sudut dalam tiga dimensi ruang tegak lurus.

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

Perkakasan yang anda perlukan untuk tujuan ini adalah seperti berikut:

1. BMG160

2. Arduino Nano

3. Kabel I2C

4. Perisai I2C Untuk Arduino Nano

Langkah 1: Gambaran Keseluruhan BMG160:

Apa yang kamu perlu..!!
Apa yang kamu perlu..!!

Pertama sekali, kami ingin membiasakan anda dengan ciri asas modul sensor iaitu BMG160 dan protokol komunikasi yang berfungsi.

BMG160 pada dasarnya adalah sensor giroskop 16-bit, digital, triaksial, yang dapat mengukur kadar sudut. Ia mampu mengira kadar sudut dalam tiga dimensi ruang tegak lurus, paksi x-, y- dan z, dan memberikan isyarat output yang sesuai. Ia boleh berkomunikasi dengan papan raspberry pi menggunakan protokol komunikasi I2C. Modul khusus ini dirancang untuk memenuhi keperluan untuk aplikasi pengguna dan juga keperluan industri.

Protokol komunikasi di mana sensor berfungsi adalah I2C. I2C bermaksud litar antara bersepadu. Ini adalah protokol komunikasi di mana komunikasi berlaku melalui talian SDA (data bersiri) dan SCL (jam bersiri). Ia membolehkan menyambungkan pelbagai peranti pada masa yang sama. Ini adalah salah satu protokol komunikasi yang paling mudah dan berkesan.

Langkah 2: Apa yang Anda Perlu..

Apa yang kamu perlu..!!
Apa yang kamu perlu..!!
Apa yang kamu perlu..!!
Apa yang kamu perlu..!!
Apa yang kamu perlu..!!
Apa yang kamu perlu..!!

Bahan yang kami perlukan untuk mencapai tujuan kami merangkumi komponen perkakasan berikut:

1. BMG160

2. Arduino Nano

3. Kabel I2C

4. Perisai I2C untuk Arduino Nano

Langkah 3: Penyambungan Perkakasan:

Penyambungan Perkakasan
Penyambungan Perkakasan
Penyambungan Perkakasan
Penyambungan Perkakasan

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

BMG160 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 4: Pengukuran Giroskop 3-Paksi Arduino Code:

Kod Arduino Pengukuran Giroskop 3-Axis
Kod Arduino Pengukuran Giroskop 3-Axis
Kod Arduino Pengukuran Giroskop 3-Axis
Kod Arduino Pengukuran Giroskop 3-Axis

Mari mulakan dengan kod arduino sekarang.

Semasa menggunakan modul sensor dengan arduino, kami menyertakan perpustakaan Wire.h. Perpustakaan "Wire" mengandungi fungsi yang memudahkan komunikasi i2c antara sensor dan papan arduino.

Keseluruhan kod arduino diberikan di bawah untuk kemudahan pengguna:

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

#tentukan Addr 0x68

persediaan tidak sah ()

{

// Memulakan komunikasi I2C sebagai MASTER

Wire.begin ();

// Inisialisasi Serial Communication, tetapkan baud rate = 9600

Serial.begin (9600);

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr);

// Pilih Range register

Wire.write (0x0F);

// Konfigurasikan julat skala penuh 2000 dps

Wire.write (0x80);

// Hentikan Penghantaran I2C

Wire.endTransmission ();

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr);

// Pilih daftar lebar jalur

Wire.write (0x10);

// Tetapkan lebar jalur = 200 Hz

Wire.write (0x04);

// Hentikan Penghantaran I2C

Wire.endTransmission ();

kelewatan (300);

}

gelung kosong ()

{

data int yang tidak ditandatangani [6];

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr);

// Pilih daftar data Gyrometer

Wire.write (0x02);

// Hentikan Penghantaran I2C

Wire.endTransmission ();

// Minta 6 bait data

Wire.requestFrom (Addr, 6);

// Baca 6 bait data

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

jika (Wire.available () == 6)

{

data [0] = Wire.read ();

data [1] = Wire.read ();

data [2] = Wire.read ();

data [3] = Wire.read ();

data [4] = Wire.read ();

data [5] = Wire.read ();

}

kelewatan (300);

// Tukarkan 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 bersiri

Serial.print ("X-Axis of Rotation:");

Serial.println (xGyro); Serial.print ("Y-Axis of Rotation:");

Serial.println (yGyro); Serial.print ("Z-Axis of Rotation:");

Serial.println (zGyro);

kelewatan (500);

}

Langkah 5: Aplikasi:

Permohonan
Permohonan

BMG160 memiliki sejumlah aplikasi yang bervariasi dalam peranti seperti telefon bimbit, perangkat antara muka mesin manusia. Modul sensor ini telah dirancang untuk memenuhi keperluan untuk aplikasi pengguna seperti penstabilan gambar (DSC dan kamera-telefon), permainan dan peranti penunjuk. Ini juga digunakan dalam sistem yang memerlukan pengenalan gerakan dan sistem yang digunakan dalam navigasi dalam ruangan.

Disyorkan: