Menggunakan MPU-6050 dengan Raspberry Pi

Using the MPU-6050 with the Raspberry Pi

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

  1. Raspberry Pi (Model apa pun dengan dukungan GPIO, mis., Pi 3, pi 4)
  2. Modul MPU-6050
  3. Papan tempat memotong papan dan kabel jumper
  4. Komputer dengan akses SSH ke Raspberry Pi atau keyboard yang terhubung dan monitor
  5. 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

  1. Buka alat konfigurasi Raspberry Pi:
    sudo raspi-config
    
  2. Navigasikan ke Opsi Antarmuka> I2C dan mengaktifkannya.
  3. Reboot Raspberry Pi:
    sudo reboot
    

Langkah 3: Instal alat dan perpustakaan yang diperlukan

  1. Perbarui Raspberry Pi Anda:
    sudo apt update && sudo apt upgrade -y
    
  2. Instal alat I2C:
    sudo apt install -y i2c-tools
    
  3. Instal pustaka Python untuk komunikasi I2C dan pemrosesan data:
    pip install smbus2
    

Langkah 4: Verifikasi koneksi

  1. Menggunakan i2cdetect Untuk memverifikasi MPU-6050 terdeteksi di bus I2C:
    sudo i2cdetect -y 1
    
  2. Anda akan melihat MPU-6050 di alamat 0x68 (atau 0x69 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

  1. Pelacakan Gerak: Lacak pergerakan dan orientasi dalam robotika atau barang yang dapat dikenakan.
  2. Sistem Stabilisasi: Menerapkan stabilisasi giroskopik untuk drone atau gimbal.
  3. Gaming: Buat pengontrol game berbasis gerak.
  4. Proyek IoT: Gunakan data gerak untuk memicu acara otomatisasi.

Pemecahan masalah

  1. Perangkat tidak terdeteksi:

    • Verifikasi koneksi SDA dan SCL.
    • Pastikan antarmuka I2C diaktifkan di Raspberry Pi.
    • Periksa catu daya ke MPU-6050.
  2. Bacaan yang tidak akurat:

    • Kalibrasi sensor dengan menerapkan offset untuk setiap sumbu.
    • Pastikan sensor ditempatkan pada permukaan yang stabil.
  3. 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!

Tinggalkan komentar

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.