MPU-6050 adalah perangkat pelacakan gerak 6-sumbu dengan giroskop dan accelerometer, membuatnya ideal untuk aplikasi penginderaan gerak seperti robotika, drone, dan proyek IoT. Dalam panduan ini, Anda akan belajar cara menghubungkan dan menggunakan MPU-6050 dengan raspberry pi untuk menangkap data gerakan dan orientasi.
Apa yang Anda Butuhkan
- Raspberry Pi (Model apa pun dengan dukungan GPIO, mis., Pi 3, pi 4)
- Modul MPU-6050
- Papan tempat memotong papan dan kabel jumper
- Komputer dengan akses SSH ke Raspberry Pi atau keyboard yang terhubung dan monitor
- Python dipasang di Raspberry Pi
Langkah 1: Pengkabelan MPU-6050 ke Raspberry Pi
MPU-6050 berkomunikasi dengan Raspberry Pi menggunakan protokol I2C.
Koneksi
Pin MPU-6050 | Raspberry Pi Pin |
---|---|
Vcc | 3.3V (pin 1) |
Gnd | Ground (pin 6) |
SDA | SDA (Pin 3, GPIO2) |
Scl | SCL (pin 5, gpio3) |
Catatan: Pastikan modul MPU-6050 beroperasi di 3.3V. Sebagian besar modul termasuk regulator tegangan, yang memungkinkannya ditenagai dengan 5V.
Langkah 2: Aktifkan antarmuka I2C di Raspberry Pi
- Buka alat konfigurasi Raspberry Pi:
sudo raspi-config
- Navigasikan ke Opsi Antarmuka> I2C dan mengaktifkannya.
- Reboot Raspberry Pi:
sudo reboot
Langkah 3: Instal alat dan perpustakaan yang diperlukan
- Perbarui Raspberry Pi Anda:
sudo apt update && sudo apt upgrade -y
- Instal alat I2C:
sudo apt install -y i2c-tools
- Instal pustaka Python untuk komunikasi I2C dan pemrosesan data:
pip install smbus2
Langkah 4: Verifikasi koneksi
- Menggunakan
i2cdetect
Untuk memverifikasi MPU-6050 terdeteksi di bus I2C:sudo i2cdetect -y 1
- Anda akan melihat MPU-6050 di alamat
0x68
(atau0x69
Jika pin AD0 ditarik tinggi). Jika tidak:- Periksa kabel Anda.
- Pastikan MPU-6050 bertenaga.
Langkah 5: Membaca data dari MPU-6050
Skrip Python berikut membaca data Accelerometer dan Gyroscope dari MPU-6050.
Contoh Kode Python
import smbus2
import time
# MPU-6050 Registers and Address
MPU6050_ADDR = 0x68
PWR_MGMT_1 = 0x6B
ACCEL_XOUT_H = 0x3B
GYRO_XOUT_H = 0x43
# Initialize I2C bus
bus = smbus2.SMBus(1)
# Wake up the MPU-6050
bus.write_byte_data(MPU6050_ADDR, PWR_MGMT_1, 0)
def read_raw_data(addr):
# Read two bytes of data from the given address
high = bus.read_byte_data(MPU6050_ADDR, addr)
low = bus.read_byte_data(MPU6050_ADDR, addr+1)
value = (high << 8) | low
# Convert to signed value
if value > 32767:
value -= 65536
return value
try:
while True:
# Read accelerometer data
accel_x = read_raw_data(ACCEL_XOUT_H)
accel_y = read_raw_data(ACCEL_XOUT_H + 2)
accel_z = read_raw_data(ACCEL_XOUT_H + 4)
# Read gyroscope data
gyro_x = read_raw_data(GYRO_XOUT_H)
gyro_y = read_raw_data(GYRO_XOUT_H + 2)
gyro_z = read_raw_data(GYRO_XOUT_H + 4)
# Convert raw data to meaningful values (optional scaling may be needed)
accel_x_scaled = accel_x / 16384.0
accel_y_scaled = accel_y / 16384.0
accel_z_scaled = accel_z / 16384.0
gyro_x_scaled = gyro_x / 131.0
gyro_y_scaled = gyro_y / 131.0
gyro_z_scaled = gyro_z / 131.0
print(f"Accelerometer: X={accel_x_scaled:.2f}, Y={accel_y_scaled:.2f}, Z={accel_z_scaled:.2f}")
print(f"Gyroscope: X={gyro_x_scaled:.2f}, Y={gyro_y_scaled:.2f}, Z={gyro_z_scaled:.2f}")
time.sleep(1)
except KeyboardInterrupt:
print("Exiting...")
Langkah 6: Aplikasi MPU-6050
- Pelacakan Gerak: Lacak pergerakan dan orientasi dalam robotika atau barang yang dapat dikenakan.
- Sistem Stabilisasi: Menerapkan stabilisasi giroskopik untuk drone atau gimbal.
- Gaming: Buat pengontrol game berbasis gerak.
- Proyek IoT: Gunakan data gerak untuk memicu acara otomatisasi.
Pemecahan masalah
-
Perangkat tidak terdeteksi:
- Verifikasi koneksi SDA dan SCL.
- Pastikan antarmuka I2C diaktifkan di Raspberry Pi.
- Periksa catu daya ke MPU-6050.
-
Bacaan yang tidak akurat:
- Kalibrasi sensor dengan menerapkan offset untuk setiap sumbu.
- Pastikan sensor ditempatkan pada permukaan yang stabil.
-
Kesalahan I2C:
- Pastikan tidak ada perangkat yang saling bertentangan di bus I2C.
Kesimpulan
MPU-6050 adalah sensor gerak serba guna yang dapat menambahkan kemampuan pelacakan gerak yang tepat untuk proyek Raspberry PI Anda. Dengan mengikuti panduan ini, Anda dapat mengatur dan menggunakan MPU-6050 untuk aplikasi seperti robotika, sistem stabilisasi, dan otomatisasi IoT. Eksperimen dengan penskalaan dan penyaringan data untuk menyempurnakan sensor untuk kebutuhan Anda!