रास्पबेरी पाई के साथ MPU-6050 का उपयोग करना

Using the MPU-6050 with the Raspberry Pi

MPU-6050 एक 6-एक्सिस मोशन ट्रैकिंग डिवाइस है जिसमें गायरोस्कोप और एक्सेलेरोमीटर है, जो रोबोटिक्स, ड्रोन और IoT प्रोजेक्ट्स जैसे गति-संवेदी अनुप्रयोगों के लिए आदर्श बनाता है। इस गाइड में, आप सीखेंगे कि गति और अभिविन्यास डेटा को कैप्चर करने के लिए रास्पबेरी पाई के साथ MPU-6050 को कैसे कनेक्ट और उपयोग किया जाए।


आपको क्या चाहिए

  1. रसभरी पाई (GPIO समर्थन के साथ कोई भी मॉडल, जैसे, पीआई 3, पीआई 4)
  2. MPU-6050 मॉड्यूल
  3. ब्रेडबोर्ड और जम्पर तार
  4. रास्पबेरी पाई या कनेक्टेड कीबोर्ड और मॉनिटर के लिए SSH एक्सेस वाला कंप्यूटर
  5. रास्पबेरी पाई पर पायथन स्थापित

चरण 1: रास्पबेरी पाई को MPU-6050 वायरिंग

MPU-6050 I2C प्रोटोकॉल का उपयोग करके रास्पबेरी PI के साथ संचार करता है।

कनेक्शन

MPU-6050 पिन रास्पबेरी पाई पिन
वीसीसी 3.3V (पिन 1)
Gnd ग्राउंड (पिन 6)
एसएडीए एसडीए (पिन 3, जीपीआईओ 2)
आयोग SCL (पिन 5, GPIO3)

टिप्पणी: सुनिश्चित करें कि MPU-6050 मॉड्यूल 3.3V पर संचालित होता है। अधिकांश मॉड्यूल में एक वोल्टेज नियामक शामिल है, जिससे उन्हें 5V के साथ संचालित किया जा सकता है।


चरण 2: रास्पबेरी पाई पर I2C इंटरफ़ेस सक्षम करें

  1. रास्पबेरी पाई कॉन्फ़िगरेशन टूल खोलें:
    sudo raspi-config
    
  2. नेविगेट करना इंटरफ़ेस विकल्प> I2C और इसे सक्षम करें।
  3. रास्पबेरी पाई को रिबूट करें:
    sudo reboot
    

चरण 3: आवश्यक उपकरण और पुस्तकालय स्थापित करें

  1. अपने रास्पबेरी पाई को अपडेट करें:
    sudo apt update && sudo apt upgrade -y
    
  2. I2C टूल स्थापित करें:
    sudo apt install -y i2c-tools
    
  3. 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 से डेटा पढ़ना

निम्नलिखित पायथन स्क्रिप्ट 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. स्थिरीकरण प्रणाली: ड्रोन या गिंबल के लिए जाइरोस्कोपिक स्थिरीकरण को लागू करें।
  3. गेमिंग: मोशन-आधारित गेम कंट्रोलर बनाएं।
  4. IoT प्रोजेक्ट्स: स्वचालन घटनाओं को ट्रिगर करने के लिए गति डेटा का उपयोग करें।

समस्या निवारण

  1. डिवाइस का पता नहीं चला:

    • SDA और SCL कनेक्शन को सत्यापित करें।
    • सुनिश्चित करें कि I2C इंटरफ़ेस रास्पबेरी पाई पर सक्षम है।
    • MPU-6050 को बिजली की आपूर्ति की जाँच करें।
  2. गलत रीडिंग:

    • प्रत्येक अक्ष के लिए एक ऑफसेट लागू करके सेंसर को कैलिब्रेट करें।
    • सुनिश्चित करें कि सेंसर को एक स्थिर सतह पर रखा गया है।
  3. I2C त्रुटियां:

    • सुनिश्चित करें कि I2C बस पर कोई परस्पर विरोधी उपकरण नहीं हैं।

निष्कर्ष

MPU-6050 एक बहुमुखी गति सेंसर है जो आपके रास्पबेरी पाई परियोजनाओं में सटीक गति ट्रैकिंग क्षमताओं को जोड़ सकता है। इस गाइड का पालन करके, आप रोबोटिक्स, स्टेबिलाइजेशन सिस्टम और IoT ऑटोमेशन जैसे अनुप्रयोगों के लिए 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.