
Isi kandungan:
2025 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2025-01-23 15:01


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 Raspberry pi, menggunakan Java sebagai bahasa pengaturcaraan.
Perkakasan yang anda perlukan untuk tujuan ini adalah seperti berikut:
1. BMG160
2. Raspberry Pi
3. Kabel I2C
4. Perisai I2C untuk Raspberry Pi
5. Kabel Ethernet
Langkah 1: Gambaran Keseluruhan BMG160:

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..



Bahan yang kami perlukan untuk mencapai tujuan kami merangkumi komponen perkakasan berikut:
1. BMG160
2. Raspberry Pi
3. Kabel I2C
4. Perisai I2C Untuk Raspberry Pi
5. Kabel Ethernet
Langkah 3: 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:
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 Menggunakan Kod Java:


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 pengaturcaraannya di Java. Kod Java untuk BMG160 boleh dimuat turun dari komuniti github kami iaitu Komuniti Dcube Store.
Selain untuk kemudahan pengguna, kami akan menerangkan kodnya di sini juga: Sebagai langkah pertama pengekodan, anda perlu memuat turun perpustakaan pi4j sekiranya terdapat java, kerana perpustakaan ini menyokong fungsi yang digunakan dalam kod tersebut. 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;
import com.pi4j.io.i2c. I2CFactory;
import java.io. IOException;
kelas awam BMG160
{
utama kekosongan statik awam (String args ) melontarkan Pengecualian
{
// Buat bas I2C
Bas I2CBus = I2CFactory.getInstance (I2CBus. BUS_1);
// Dapatkan peranti I2C, alamat BMG160 I2C adalah 0x68 (104)
Peranti I2CDevice = bus.getDevice (0x68);
// Pilih daftar julat
// Konfigurasikan julat skala penuh, 2000 dps
device.write (0x0F, (bait) 0x80);
// Pilih daftar lebar jalur
// Lebar jalur 200 Hz
device.write (0x10, (byte) 0x04);
Thread.sleep (500);
// Baca 6 bait data
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb
bait data = bait baru [6];
device.read (0x02, data, 0, 6);
// Tukar data
int xGyro = ((data [1] & 0xFF) * 256 + (data [0] & 0xFF));
jika (xGyro> 32767)
{
xGyro - = 65536;
}
int yGyro = ((data [3] & 0xFF) * 256 + (data [2] & 0xFF));
jika (yGyro> 32767)
{
yGyro - = 65536;
}
int zGyro = ((data [5] & 0xFF) * 256 + (data [4] & 0xFF));
jika (zGyro> 32767)
{
zGyro - = 65536;
}
// Keluarkan data ke skrin
System.out.printf ("X-Axis of Rotation:% d% n", xGyro);
System.out.printf ("Paksi-Y Putaran:% d% n", yGyro);
System.out.printf ("Z-axis of Rotation:% d% n", zGyro);
}
}
Perpustakaan yang memudahkan komunikasi i2c antara sensor dan papan adalah pi4j, pelbagai paket I2CBus, I2CDevice dan I2CFactory membantu mewujudkan sambungan.
import com.pi4j.io.i2c. I2CBus; import com.pi4j.io.i2c. I2CDevice; import com.pi4j.io.i2c. I2CFactory; import java.io. IOException;
Bahagian kod ini membuat sensor mengukur kadar sudut dengan menulis perintah masing-masing menggunakan fungsi tulis () dan kemudian data dibaca menggunakan fungsi baca ().
// Pilih daftar julat // Konfigurasikan julat skala penuh, 2000 dps device.write (0x0F, (byte) 0x80); // Pilih daftar lebar jalur // Bandwidth 200 Hz device.write (0x10, (byte) 0x04); Thread.sleep (500);
// Baca 6 bait data
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb byte data = bait baru [6]; device.read (0x02, data, 0, 6);
Data yang diterima dari sensor diubah ke format yang sesuai dengan menggunakan yang berikut:
int xGyro = ((data [1] & 0xFF) * 256 + (data [0] & 0xFF)); jika (xGyro> 32767) {xGyro - = 65536; } int yGyro = ((data [3] & 0xFF) * 256 + (data [2] & 0xFF)); jika (yGyro> 32767) {yGyro - = 65536; } int zGyro = ((data [5] & 0xFF) * 256 + (data [4] & 0xFF)); jika (zGyro> 32767) {zGyro - = 65536; }
Keluaran dicetak menggunakan fungsi System.out.println (), dalam format berikut.
System.out.println ("X-Axis of Rotation:% d% n", xGyro); System.out.println ("Paksi-Y Putaran:% d% n", yGyro); System.out.println ("Z-axis of Rotation:% d% n", zGyro);
Output sensor ditunjukkan pada gambar di atas.
Langkah 5: Aplikasi:

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:
Penguji Bateri Arduino Dengan Antara Muka Pengguna WEB .: 5 Langkah

Penguji Bateri Arduino Dengan Antara Muka Pengguna WEB: Hari ini, peralatan elektronik menggunakan bateri sandaran untuk menyelamatkan keadaan di mana operasi ditinggalkan semasa peralatan dimatikan atau ketika, secara tidak sengaja, peralatan dimatikan. Pengguna, ketika menghidupkan, kembali ke titik di mana dia tinggal
Antara muka Sensor Giroskop 3-Paksi BMG160 Dengan Zarah: 5 Langkah

Antaramuka Sensor Giroskop 3-Axis BMG160 Dengan Partikel: Di dunia sekarang, 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
Tangki Raspberry Dengan Antara Muka Web dan Streaming Video: 8 Langkah (dengan Gambar)

Tangki Raspberry Dengan Antara Muka Web dan Penstriman Video: Kami akan melihat bagaimana saya telah menyedari sedikit Tangki WiFi, yang mampu melakukan Kawalan Web jarak jauh dan Streaming Video. Ini bertujuan untuk menjadi tutorial yang memerlukan pengetahuan asas mengenai pengaturcaraan elektronik dan perisian. Atas sebab ini saya ' telah memilih
Tutorial Cara Memaparkan Antara Muka 4-Digit Dengan Arduino UNO: 6 Langkah (dengan Gambar)

Tutorial Cara Memaparkan Tampilan 4-Digit Dengan Arduino UNO: Tutorial ini akan mengajar anda beberapa asas menggunakan 4- Digit Display dengan Arduino UNO
Antara Muka Keypad Dengan 8051 dan Memaparkan Nombor Papan Kekunci dalam 7 Segmen: 4 Langkah (dengan Gambar)

Antaramuka Papan Kekunci Dengan 8051 dan Memaparkan Nombor Papan Kekunci dalam 7 Segmen: Dalam tutorial ini saya akan memberitahu anda tentang bagaimana kita dapat antara muka pad kekunci dengan 8051 dan memaparkan nombor keypad dalam paparan 7 segmen