Isi kandungan:

Antara muka Sensor Giroskop 3-Paksi BMG160 Dengan Zarah: 5 Langkah
Antara muka Sensor Giroskop 3-Paksi BMG160 Dengan Zarah: 5 Langkah

Video: Antara muka Sensor Giroskop 3-Paksi BMG160 Dengan Zarah: 5 Langkah

Video: Antara muka Sensor Giroskop 3-Paksi BMG160 Dengan Zarah: 5 Langkah
Video: Потрясающий заброшенный замок XVIII века во Франции | ПОЛНЫЙ СОКРОВИЩ 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 Particle Photon.

Perkakasan yang anda perlukan untuk tujuan ini adalah seperti berikut:

1. BMG160

2. Foton zarah

3. Kabel I2C

4. Perisai I2C untuk Foton Zarah

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

3. Kabel I2C

4. Perisai I2C Untuk Foton Zarah

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 Partikel. 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: Kod Zarah Pengukuran Giroskop 3-Paksi:

Kod Zarah Pengukuran Giroskop 3-Paksi
Kod Zarah Pengukuran Giroskop 3-Paksi
Kod Zarah Pengukuran Giroskop 3-Paksi
Kod Zarah Pengukuran Giroskop 3-Paksi

Mari mulakan dengan kod zarah sekarang.

Semasa menggunakan modul sensor dengan arduino, kami menyertakan library application.h dan spark_wiring_i2c.h. Perpustakaan "application.h" dan spark_wiring_i2c.h mengandungi fungsi yang memudahkan komunikasi i2c antara sensor dan zarah.

Keseluruhan kod zarah diberikan di bawah untuk kemudahan pengguna:

#sertakan

#sertakan

// Alamat BMG160 I2C adalah 0x68 (104)

#tentukan Addr 0x68

int xGyro = 0, yGyro = 0, zGyro = 0;

persediaan tidak sah ()

{

// Tetapkan pemboleh ubah

Particle.variable ("i2cdevice", "BMG160");

Particle.variable ("xGyro", xGyro);

Particle.variable ("yGyro", yGyro);

Particle.variable ("zGyro", zGyro);

// Memulakan komunikasi I2C sebagai MASTER

Wire.begin ();

// Memulakan Komunikasi Bersiri

Serial.begin (9600);

// Mulakan Penghantaran I2C

Wire.beginTransmission (Addr);

// Pilih Range register

Wire.write (0x0F);

// Konfigurasikan 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

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

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

jika (xGyro> 32767)

{

xGyro - = 65536;

}

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

jika (yGyro> 32767)

{

yGyro - = 65536;

}

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

jika (zGyro> 32767)

{

zGyro - = 65536;

}

// Keluarkan data ke papan pemuka

Particle.publish ("X-Axis of Rotation:", String (xGyro));

Particle.publish ("Y-Axis of Rotation:", String (yGyro));

Particle.publish ("Z-Axis of Rotation:", String (zGyro));

kelewatan (1000);

}

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: