Isi kandungan:

Penjejakan Gerak Menggunakan MPU-6000 dan Raspberry Pi: 4 Langkah
Penjejakan Gerak Menggunakan MPU-6000 dan Raspberry Pi: 4 Langkah

Video: Penjejakan Gerak Menggunakan MPU-6000 dan Raspberry Pi: 4 Langkah

Video: Penjejakan Gerak Menggunakan MPU-6000 dan Raspberry Pi: 4 Langkah
Video: 18-Minute Drumming Inspired Full Body Workout | POUND Rockout. Workout. 2024, November
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 raspberry pi telah digambarkan. Untuk membaca nilai pecutan dan sudut putaran, kami telah menggunakan raspberry pi 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. Raspberry Pi

3. Kabel I2C

4. I2C Shield untuk raspberry pi

5. Kabel Ethernet

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

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

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 python. Python adalah salah satu bahasa pengaturcaraan termudah dengan sintaks termudah. Kod python untuk MPU-6000 boleh dimuat turun dari komuniti GitHub kami iaitu Dcube Store

Serta untuk kemudahan pengguna, kami menerangkan kodnya di sini juga:

Sebagai langkah pertama pengekodan, anda perlu memuat turun perpustakaan SMBus sekiranya terdapat python kerana perpustakaan ini menyokong fungsi yang digunakan dalam kod. Oleh itu, untuk memuat turun perpustakaan anda boleh melayari pautan berikut:

pypi.python.org/pypi/smbus-cffi/0.5.1

Anda boleh menyalin kod kerja dari sini juga:

import smbus

masa import

# Dapatkan bus2 I2C = smbus. SMBus (1)

# MPU-6000 alamat, 0x68 (104)

# Pilih daftar konfigurasi giroskop, 0x1B (27)

# 0x18 (24) Julat skala penuh = 2000 dps

bas.write_byte_data (0x68, 0x1B, 0x18)

# MPU-6000 alamat, 0x68 (104)

# Pilih daftar konfigurasi pecutan, 0x1C (28)

# 0x18 (24) Julat skala penuh = +/- 16g

bas.write_byte_data (0x68, 0x1C, 0x18)

# MPU-6000 alamat, 0x68 (104)

# Pilih daftar pengurusan kuasa 1, 0x6B (107)

# 0x01 (01) PLL dengan rujukan xGyro

bas.write_byte_data (0x68, 0x6B, 0x01)

masa. tidur (0.8)

# MPU-6000 alamat, 0x68 (104)

# Baca kembali data dari 0x3B (59), 6 bait

# Accelerometer X-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB

data = bas.read_i2c_block_data (0x68, 0x3B, 6)

# Tukarkan data

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

jika xAccl> 32767:

xAccl - = 65536

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

jika yAccl> 32767:

yAccl - = 65536

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

jika zAccl> 32767:

zAccl - = 65536

# MPU-6000 alamat, 0x68 (104)

# Baca kembali data dari 0x43 (67), 6 bait

# Gyrometer X-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB

data = bas.read_i2c_block_data (0x68, 0x43, 6)

# Tukarkan data

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

jika xGyro> 32767:

xGyro - = 65536

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

jika yGyro> 32767:

yGyro - = 65536

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

jika zGyro> 32767:

zGyro - = 65536

# Keluarkan data ke skrin

cetak "Pecutan dalam X-Axis:% d"% xAccl

cetak "Pecutan dalam Paksi-Y:% d"% yAccl

cetak "Pecutan dalam Z-Axis:% d"% zAccl

cetak "X-Axis of Rotation:% d"% xGyro

cetak "Y-Axis of Rotation:% d"% yGyro

cetak "Z-Axis of Rotation:% d"% zGyro

Kod tersebut dilaksanakan dengan menggunakan arahan berikut:

$> python MPU-6000.py gt; python MPU-6000.py

Output sensor ditunjukkan pada gambar di atas untuk rujukan pengguna.

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: