MPU-6050'yi Raspberry Pi ile kullanmak

Using the MPU-6050 with the Raspberry Pi

MPU-6050, jiroskop ve ivmeölçer ile 6 eksenli bir hareket izleme cihazıdır, bu da robotik, dron ve IoT projeleri gibi hareket algılama uygulamaları için idealdir. Bu kılavuzda, hareket ve oryantasyon verilerini yakalamak için MPU-6050'yi bir Raspberry Pi ile nasıl bağlayacağınızı ve kullanacağınızı öğreneceksiniz.


Ne İhtiyacınız Olacak

  1. Ahududu pi (GPIO destekli herhangi bir model, örneğin Pi 3, Pi 4)
  2. MPU-6050 modülü
  3. Breadboard ve jumper telleri
  4. Raspberry Pi'ye veya bağlı bir klavyeye ve monitöre SSH erişimi olan bir bilgisayar
  5. Raspberry Pi'ye Python kuruldu

Adım 1: MPU-6050'yi Raspberry Pi'ye bağlama

MPU-6050, I2C protokolünü kullanarak Raspberry Pi ile iletişim kurar.

Bağlantılar

MPU-6050 PIN Raspberry Pi Pimi
VCC 3.3V (pim 1)
Gnd Zemin (pim 6)
SDA SDA (pim 3, GPIO2)
Scl SCL (Pin 5, GPIO3)

Not: MPU-6050 modülünün 3.3V'de çalıştığından emin olun. Modüllerin çoğu, 5V ile güçlendirilmelerini sağlayan bir voltaj regülatörü içerir.


2. Adım: Raspberry Pi'deki I2C arayüzünü etkinleştirin

  1. Raspberry Pi yapılandırma aracını açın:
    sudo raspi-config
    
  2. Gezmek Arayüz Seçenekleri> I2C ve etkinleştir.
  3. Raspberry Pi'yi yeniden başlatın:
    sudo reboot
    

Adım 3: Gerekli araçları ve kütüphaneleri kurun

  1. Raspberry Pi'nizi güncelleyin:
    sudo apt update && sudo apt upgrade -y
    
  2. I2C araçlarını yükleyin:
    sudo apt install -y i2c-tools
    
  3. I2C İletişim ve Veri İşleme için Python Kütüphaneleri Yükle:
    pip install smbus2
    

4. Adım: Bağlantıyı doğrulayın

  1. Kullanmak i2cdetect I2C veri yolunda MPU-6050'nin tespit edildiğini doğrulamak için:
    sudo i2cdetect -y 1
    
  2. MPU-6050'yi adreste görmelisiniz 0x68 (veya 0x69 AD0 pimi yüksek çekilirse). Değilse:
    • Kablolarınızı kontrol edin.
    • MPU-6050'nin güçlendirildiğinden emin olun.

Adım 5: MPU-6050'den veri okuma

Aşağıdaki Python komut dosyası MPU-6050'den ivmeölçer ve jiroskop verilerini okur.

Python kodu örneği

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...")

Adım 6: MPU-6050 uygulamaları

  1. Hareket izleme: Robotik veya giyilebilir cihazlarda hareket ve yönelim.
  2. Stabilizasyon Sistemleri: Dronlar veya gimbals için jiroskopik stabilizasyon uygulayın.
  3. Oyun: Harekete dayalı oyun denetleyicileri oluşturun.
  4. IoT Projeleri: Otomasyon olaylarını tetiklemek için hareket verilerini kullanın.

Sorun giderme

  1. Cihaz algılanmadı:

    • SDA ve SCL bağlantılarını doğrulayın.
    • I2C arayüzünün Raspberry Pi'de etkin olduğundan emin olun.
    • MPU-6050'ye güç kaynağını kontrol edin.
  2. Yanlış Okumalar:

    • Her eksen için bir ofset uygulayarak sensörü kalibre edin.
    • Sensörün sabit bir yüzeye yerleştirildiğinden emin olun.
  3. I2C hataları:

    • I2C otobüsünde çelişkili cihaz olmadığından emin olun.

Çözüm

MPU-6050, Raspberry Pi projelerinize hassas hareket izleme özellikleri ekleyebilen çok yönlü bir hareket sensörüdür. Bu kılavuzu izleyerek, robotik, stabilizasyon sistemleri ve IoT otomasyonu gibi uygulamalar için MPU-6050'yi kurabilir ve kullanabilirsiniz. Sensöre ihtiyaçlarınız için ince ayar yapmak için verileri ölçeklendirme ve filtreleme ile deneyin!

Yorum bırak

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.