Daftar Isi:

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

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

Video: Pelacakan Gerak Menggunakan MPU-6000 dan Raspberry Pi: 4 Langkah
Video: Техническое объяснение InvenSense IAM-20680HP 2024, November
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 raspberry pi telah diilustrasikan. Untuk membaca nilai percepatan dan sudut rotasi, kami telah menggunakan raspberry pi 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 kami butuhkan untuk mencapai tujuan kami meliputi komponen perangkat keras berikut:

1. MPU-6000

2. Raspberry Pi

3. Kabel I2C

4. I2C Shield untuk raspberry pi

5. Kabel Ethernet

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

Keuntungan menggunakan raspberry pi adalah, yang memberi Anda fleksibilitas bahasa pemrograman di mana Anda ingin memprogram papan untuk menghubungkan sensor dengannya. Memanfaatkan keunggulan papan ini, kami mendemonstrasikan di sini pemrogramannya dengan python. Python adalah salah satu bahasa pemrograman termudah dengan sintaks termudah. Kode python untuk MPU-6000 dapat diunduh dari komunitas GitHub kami yaitu Dcube Store

Selain untuk memudahkan pengguna, kami juga menjelaskan kodenya di sini:

Sebagai langkah pertama pengkodean, Anda perlu mengunduh pustaka SMBus untuk python karena pustaka ini mendukung fungsi yang digunakan dalam kode. Nah, untuk mendownload librarynya anda bisa mengunjungi link berikut ini:

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

Anda dapat menyalin kode kerja dari sini juga:

impor smbus

waktu impor

# Dapatkan bus I2C = smbus. SMBus(1)

# Alamat MPU-6000, 0x68(104)

# Pilih register konfigurasi giroskop, 0x1B(27)

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

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

# Alamat MPU-6000, 0x68(104)

# Pilih register konfigurasi accelerometer, 0x1C(28)

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

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

# Alamat MPU-6000, 0x68(104)

# Pilih register manajemen daya1, 0x6B (107)

# 0x01(01) PLL dengan referensi xGyro

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

waktu.tidur(0.8)

# Alamat MPU-6000, 0x68(104)

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

# Akselerometer MSB Sumbu X, LSB Sumbu X, MSB Sumbu Y, LSB Sumbu Y, MSB Sumbu Z, LSB Sumbu Z

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

# Konversi 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

# Alamat MPU-6000, 0x68(104)

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

# MSB Sumbu X Girometer, LSB Sumbu X, MSB Sumbu Y, LSB Sumbu Y, MSB Sumbu Z, LSB Sumbu Z

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

# Konversi 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 layar

print "Percepatan pada Sumbu X: %d" %xAccl

print "Percepatan pada Sumbu Y: %d" %yAccl

print "Percepatan pada Sumbu Z: %d" %zAccl

print "Sumbu X dari Rotasi: %d" %xGyro

print "Sumbu Y dari Rotasi: %d" %yGyro

print "Sumbu Z dari Rotasi: %d" %zGyro

Kode dieksekusi menggunakan perintah berikut:

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

Output dari sensor ditunjukkan pada gambar di atas untuk referensi pengguna.

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.

Direkomendasikan: