Isi kandungan:

Penjejakan Gerak Menggunakan MPU-6000 dan Arduino Nano: 4 Langkah
Penjejakan Gerak Menggunakan MPU-6000 dan Arduino Nano: 4 Langkah

Video: Penjejakan Gerak Menggunakan MPU-6000 dan Arduino Nano: 4 Langkah

Video: Penjejakan Gerak Menggunakan MPU-6000 dan Arduino Nano: 4 Langkah
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Julai
Anonim
Image
Image

MPU-6000 adalah Sensor Pelacakan Gerakan 6-Paksi yang mempunyai akselerometer 3-Paksi dan giroskop 3-Paksi yang tertanam di dalamnya. Sensor ini mampu mengesan kedudukan dan lokasi objek dengan tepat dalam satah 3 dimensi. Ia dapat digunakan dalam sistem yang memerlukan analisis kedudukan dengan ketepatan tertinggi.

Dalam tutorial ini antara muka modul sensor MPU-6000 dengan arduino nano telah digambarkan. Untuk membaca nilai-nilai pecutan dan sudut putaran, kami telah menggunakan arduino nano dengan penyesuai I2c. Penyesuai I2C ini menjadikan sambungan ke modul sensor mudah dan lebih dipercayai.

Langkah 1: Perkakasan Diperlukan:

Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan
Perkakasan Diperlukan

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

1. MPU-6000

2. Arduino Nano

3. Kabel I2C

4. Perisai I2C untuk arduino nano

Langkah 2: Penyambungan Perkakasan:

Penyambungan Perkakasan
Penyambungan Perkakasan
Penyambungan Perkakasan
Penyambungan Perkakasan

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

MPU-6000 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 3: Kod untuk Penjejakan Gerak:

Kod untuk Penjejakan Gerak
Kod untuk Penjejakan Gerak

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 MPU-6000 I2C adalah 0x68 (104)

#tentukan Addr 0x68

persediaan tidak sah ()

{

// Memulakan komunikasi I2C sebagai Master

Wire.begin ();

// Mulakan komunikasi bersiri, tetapkan kadar baud = 9600

Serial.begin (9600);

// Mulakan penghantaran I2C

Wire.beginTransmission (Addr);

// Pilih daftar konfigurasi giroskop

Wire.write (0x1B);

// Julat skala penuh = 2000 dps

Wire.write (0x18);

// Hentikan penghantaran I2C

Wire.endTransmission ();

// Mulakan penghantaran I2C

Wire.beginTransmission (Addr);

// Pilih daftar konfigurasi pecutan

Wire.write (0x1C);

// Julat skala penuh = +/- 16g

Wire.write (0x18);

// Hentikan penghantaran I2C

Wire.endTransmission ();

// Mulakan penghantaran I2C

Wire.beginTransmission (Addr);

// Pilih daftar pengurusan kuasa

Wire.write (0x6B);

// PLL dengan rujukan xGyro

Wire.write (0x01);

// 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 (0x3B);

// Hentikan penghantaran I2C

Wire.endTransmission ();

// Minta 6 bait data

Wire.requestFrom (Addr, 6);

// Baca 6 bait data

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 ();

}

// Tukarkan data

int xAccl = data [0] * 256 + data [1];

int yAccl = data [2] * 256 + data [3];

int zAccl = data [4] * 256 + data [5];

// Mulakan penghantaran I2C

Wire.beginTransmission (Addr);

// Pilih daftar data

Wire.write (0x43);

// Hentikan penghantaran I2C

Wire.endTransmission ();

// Minta 6 bait data

Wire.requestFrom (Addr, 6);

// Baca 6 bait data

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 ();

}

// Tukarkan data

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

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

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

// Keluarkan data ke monitor bersiri

Serial.print ("Pecutan dalam X-Axis:");

Serial.println (xAccl);

Serial.print ("Pecutan dalam Y-Axis:");

Serial.println (yAccl);

Serial.print ("Pecutan dalam Z-Axis:");

Serial.println (zAccl);

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);

}

Di perpustakaan wayar Wire.write () dan Wire.read () digunakan untuk menulis perintah dan membaca output sensor.

Serial.print () dan Serial.println () digunakan untuk memaparkan output sensor pada monitor bersiri dari Arduino IDE.

Output sensor ditunjukkan pada gambar di atas.

Langkah 4: Aplikasi:

Permohonan
Permohonan

MPU-6000 adalah sensor pengesan gerakan, yang dapat digunakan dalam antarmuka gerakan telefon pintar dan tablet. Di telefon pintar, sensor ini dapat digunakan dalam aplikasi seperti perintah isyarat untuk aplikasi dan pengendalian telefon, permainan yang disempurnakan, augmented reality, penangkapan dan tontonan foto panorama, dan navigasi pejalan kaki dan kenderaan. Teknologi MotionTracking dapat menukar telefon bimbit dan tablet menjadi peranti pintar 3D yang kuat yang dapat digunakan dalam aplikasi mulai dari pemantauan kesihatan dan kecergasan hingga layanan berdasarkan lokasi.

Disyorkan: