Pelacakan Gerak Menggunakan MPU-6000 dan Foton Partikel: 4 Langkah
Pelacakan Gerak Menggunakan MPU-6000 dan Foton Partikel: 4 Langkah
Anonim
Image
Image

MPU-6000 adalah Sensor Pelacakan Gerak 6 Sumbu yang memiliki akselerometer 3 Sumbu dan giroskop 3 Sumbu yang tertanam di dalamnya. Sensor ini mampu melacak posisi dan lokasi objek secara tepat di bidang 3 dimensi secara efisien. Ini dapat digunakan dalam sistem yang membutuhkan analisis posisi dengan presisi tertinggi.

Dalam tutorial ini antarmuka modul sensor MPU-6000 dengan foton partikel telah diilustrasikan. Untuk membaca nilai percepatan dan sudut rotasi, kami telah menggunakan partikel dengan adaptor I2c. Adaptor I2C ini membuat koneksi ke modul sensor menjadi mudah dan lebih andal.

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

Bahan yang diperlukan untuk menyelesaikan tugas kami meliputi komponen perangkat keras yang disebutkan di bawah ini:

1. MPU-6000

2. Foton Partikel

3. Kabel I2C

4. Perisai I2C untuk foton partikel

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

MPU-6000 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 untuk Pelacakan Gerak:

Kode untuk Pelacakan Gerak
Kode untuk Pelacakan Gerak

Mari kita mulai dengan kode partikel sekarang.

Saat menggunakan modul sensor dengan arduino, kami menyertakan library application.h dan spark_wiring_i2c.h. Pustaka "application.h" dan spark_wiring_i2c.h berisi fungsi-fungsi yang memfasilitasi komunikasi i2c antara sensor dan partikel.

Seluruh kode partikel diberikan di bawah ini untuk kenyamanan pengguna:

#include#include // Alamat MPU-6000 I2C adalah 0x68(104) #define Addr 0x68 int xGyro = 0, yGyro = 0, zGyro = 0, xAccl = 0, yAccl = 0, zAccl = 0; void setup() { // Setel variabel Particle.variable("i2cdevice", "MPU-6000"); Particle.variable("xAccl", xAccl); Particle.variable("yAccl", yAccl); Particle.variable("zAccl", zAccl); Particle.variable("xGyro", xGyro); Particle.variable("yGyro", yGyro); Particle.variable("zGyro", zGyro); // Inisialisasi komunikasi I2C sebagai Master Wire.begin(); // Inisialisasi komunikasi serial, setel baud rate = 9600 Serial.begin(9600); // Mulai transmisi I2C Wire.beginTransmission(Addr); // Pilih register konfigurasi giroskop Wire.write(0x1B); // Rentang skala penuh = 2000 dps Wire.write(0x18); // Menghentikan transmisi I2C Wire.endTransmission(); // Mulai transmisi I2C Wire.beginTransmission(Addr); // Pilih register konfigurasi accelerometer Wire.write(0x1C); // Rentang skala penuh = +/-16g Wire.write(0x18); // Menghentikan transmisi I2C Wire.endTransmission(); // Mulai transmisi I2C Wire.beginTransmission(Addr); // Pilih register manajemen daya Wire.write(0x6B); // PLL dengan referensi xGyro Wire.write(0x01); // Menghentikan transmisi I2C Wire.endTransmission(); penundaan (300); } void loop() { unsigned int data[6]; // Mulai transmisi I2C Wire.beginTransmission(Addr); // Pilih data register Wire.write(0x3B); // Menghentikan transmisi I2C Wire.endTransmission(); // Meminta 6 byte data Wire.requestFrom(Addr, 6); // Baca 6 byte data 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 (800); // Konversi data xAccl = ((data[1] * 256) + data[0]); if (xAccl > 32767) { xAccl -= 65536; } yAccl = ((data[3] * 256) + data[2]); if (yAccl > 32767) { yAccl -= 65536; } zAccl = ((data[5] * 256) + data[4]); if (zAccl > 32767) { zAccl -= 65536; } penundaan (800); // Mulai transmisi I2C Wire.beginTransmission(Addr); // Pilih data register Wire.write(0x43); // Menghentikan transmisi I2C Wire.endTransmission(); // Meminta 6 byte data Wire.requestFrom(Addr, 6); // Baca 6 byte data 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(); } // Konversi data xGyro = ((data[1] * 256) + data[0]); if (xGyro > 32767) { xGyro -= 65536; } yGyro = ((data[3] * 256) + data[2]); if (yGyro > 32767) { yGyro -= 65536; } zGyro = ((data[5] * 256) + data[4]); if (zGyro > 32767) { zGyro -= 65536; } // Keluarkan data ke dashboard Particle.publish("Akselerasi pada Sumbu X: ", String(xAccl)); penundaan (1000); Particle.publish("Percepatan pada Sumbu Y: ", String(yAccl)); penundaan (1000); Particle.publish("Percepatan pada Sumbu Z: ", String(zAccl)); penundaan (1000); Particle.publish("Sumbu X dari Rotasi: ", String(xGyro)); penundaan (1000); Particle.publish("Sumbu Y dari Rotasi: ", String(yGyro)); penundaan (1000); Particle.publish("Sumbu Z dari Rotasi: ", String(zGyro)); penundaan (1000); }

Fungsi Particle.variable() membuat variabel untuk menyimpan output sensor dan fungsi Particle.publish() menampilkan output di dasbor situs.

Output sensor ditunjukkan pada gambar di atas untuk referensi Anda.

Langkah 4: Aplikasi:

Aplikasi
Aplikasi

MPU-6000 adalah sensor pelacakan gerak, yang menemukan penerapannya di antarmuka gerak ponsel cerdas dan tablet. Di smartphone, sensor ini dapat digunakan dalam aplikasi seperti perintah gerakan untuk aplikasi dan kontrol telepon, game yang disempurnakan, augmented reality, pengambilan dan tampilan foto panorama, serta navigasi pejalan kaki dan kendaraan. Teknologi MotionTracking dapat mengubah handset dan tablet menjadi perangkat cerdas 3D yang kuat yang dapat digunakan dalam aplikasi mulai dari pemantauan kesehatan dan kebugaran hingga layanan berbasis lokasi.