باستخدام MPU-6050 مع Raspberry Pi

Using the MPU-6050 with the Raspberry Pi

يعد MPU-6050 جهازًا لتتبع الحركة 6 محاور مع جيروسكوب ومقياس التسارع ، مما يجعله مثاليًا لتطبيقات استشعار الحركة مثل الروبوتات والطائرات بدون طيار وإنترنت الأشياء. في هذا الدليل ، سوف تتعلم كيفية الاتصال واستخدام MPU-6050 مع Raspberry Pi لالتقاط بيانات الحركة والاتجاه.


ماذا ستحتاج

  1. التوت بي (أي نموذج يحمل دعم GPIO ، على سبيل المثال ، PI 3 ، PI 4)
  2. وحدة MPU-6050
  3. الأسلاك الأسلاك والبلوز
  4. جهاز كمبيوتر به وصول SSH إلى Raspberry Pi أو لوحة مفاتيح متصلة وشاشة
  5. Python مثبت على Raspberry Pi

الخطوة 1: توصيل MPU-6050 إلى Raspberry Pi

يتواصل MPU-6050 مع Raspberry Pi باستخدام بروتوكول I2C.

الاتصالات

MPU-6050 دبوس التوت بي دبوس
VCC 3.3V (دبوس 1)
GND الأرض (دبوس 6)
SDA SDA (PIN 3 ، GPIO2)
SCL SCL (PIN 5 ، GPIO3)

ملحوظة: تأكد من أن وحدة MPU-6050 تعمل في 3.3 فولت. تشمل معظم الوحدات منظم الجهد ، مما يتيح لها تشغيل 5V.


الخطوة 2: تمكين واجهة I2C على Raspberry Pi

  1. افتح أداة تكوين Raspberry Pi:
    sudo raspi-config
    
  2. انتقل إلى خيارات الواجهة> i2c وتمكينها.
  3. أعد تشغيل Raspberry Pi:
    sudo reboot
    

الخطوة 3: تثبيت الأدوات والمكتبات المطلوبة

  1. قم بتحديث Raspberry Pi:
    sudo apt update && sudo apt upgrade -y
    
  2. قم بتثبيت أدوات I2C:
    sudo apt install -y i2c-tools
    
  3. تثبيت مكتبات Python للاتصالات ومعالجة البيانات I2C:
    pip install smbus2
    

الخطوة 4: تحقق من الاتصال

  1. يستخدم i2cdetect للتحقق من اكتشاف MPU-6050 على حافلة I2C:
    sudo i2cdetect -y 1
    
  2. يجب أن ترى MPU-6050 على العنوان 0x68 (أو 0x69 إذا تم سحب دبوس AD0 عالياً). إذا لم يكن كذلك:
    • تحقق من الأسلاك الخاصة بك.
    • تأكد من تشغيل MPU-6050.

الخطوة 5: قراءة البيانات من MPU-6050

يقرأ نص Python التالي بيانات التسارع وجيروسكوب من MPU-6050.

مثال رمز بيثون

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

الخطوة 6: تطبيقات MPU-6050

  1. تتبع الحركة: تتبع الحركة والتوجه في الروبوتات أو الأجهزة القابلة للارتداء.
  2. أنظمة الاستقرار: تنفيذ التثبيت الجيروسكوبي للطائرات بدون طيار أو gimbals.
  3. الألعاب: إنشاء وحدات تحكم اللعبة القائمة على الحركة.
  4. مشاريع إنترنت الأشياء: استخدم بيانات الحركة لتشغيل أحداث الأتمتة.

استكشاف الأخطاء وإصلاحها

  1. لم يتم اكتشاف الجهاز:

    • تحقق من اتصالات SDA و SCL.
    • تأكد من تمكين واجهة I2C على Raspberry PI.
    • تحقق من مصدر الطاقة إلى MPU-6050.
  2. قراءات غير دقيقة:

    • معايرة المستشعر عن طريق تنفيذ إزاحة لكل محور.
    • تأكد من وضع المستشعر على سطح مستقر.
  3. أخطاء I2C:

    • تأكد من عدم وجود أجهزة متضاربة في حافلة I2C.

خاتمة

MPU-6050 هو مستشعر حركة متعدد الاستخدامات يمكن أن يضيف إمكانات دقيقة لتتبع الحركة إلى مشاريع Raspberry PI الخاصة بك. باتباع هذا الدليل ، يمكنك إعداد واستخدام MPU-6050 لتطبيقات مثل الروبوتات وأنظمة التثبيت وأتمتة إنترنت الأشياء. جرب البيانات وتصفية البيانات لضبط المستشعر لتلبية احتياجاتك!

اترك تعليقًا

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.