MPU-6050は、ジャイロスコープと加速度計を備えた6軸モーショントラッキングデバイスであり、ロボット工学、ドローン、IoTプロジェクトなどのモーション注目アプリケーションに最適です。このガイドでは、MPU-6050をRaspberry PIで接続および使用して、モーションと方向のデータをキャプチャする方法を学びます。
あなたが必要とするもの
- Raspberry Pi (GPIOサポートを備えたモデル、例えばPI 3、PI 4)
- MPU-6050モジュール
- ブレッドボードとジャンパーワイヤ
- Raspberry Piまたは接続されたキーボードとモニターへのSSHアクセスを備えたコンピューター
- Raspberry PiにインストールされたPython
ステップ1:MPU-6050をRaspberry Piに配線します
MPU-6050は、I2Cプロトコルを使用してRaspberry PIと通信します。
接続
| MPU-6050ピン | ラズベリーPIピン | 
|---|---|
| VCC | 3.3V(ピン1) | 
| GND | グラウンド(ピン6) | 
| SDA | SDA(ピン3、GPIO2) | 
| SCL | SCL(ピン5、GPIO3) | 
注記: MPU-6050モジュールが3.3Vで動作することを確認してください。ほとんどのモジュールには、電圧レギュレーターが含まれており、5Vで電源を入れることができます。
ステップ2:RaspberryPiでi2cインターフェイスを有効にします
- Raspberry Pi構成ツールを開きます。
sudo raspi-config
- に移動します インターフェイスオプション> i2c そしてそれを有効にします。
- RaspberryPiを再起動します:
sudo reboot
ステップ3:必要なツールとライブラリをインストールします
- RaspberryPiを更新します:
sudo apt update && sudo apt upgrade -y
- I2Cツールをインストールします。
sudo apt install -y i2c-tools
- I2C通信とデータ処理のためにPythonライブラリをインストールします。
pip install smbus2
ステップ4:接続を確認します
- 使用 i2cdetectMPU-6050がI2Cバスで検出されることを確認するには:sudo i2cdetect -y 1
- MPU-6050はアドレスに表示されます 0x68(または0x69AD0ピンが高く引っ張られている場合)。そうでない場合:- 配線を確認してください。
- MPU-6050が搭載されていることを確認してください。
 
ステップ5:MPU-6050のデータの読み取り
次のPythonスクリプトは、MPU-6050の加速度計とジャイロスコープデータを読み取ります。
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...")
ステップ6:MPU-6050のアプリケーション
- モーショントラッキング: ロボット工学またはウェアラブルの動きと向きを追跡します。
- 安定化システム: ドローンまたはジンバルにジャイロスコープ安定化を実装します。
- ゲーム: モーションベースのゲームコントローラーを作成します。
- IoTプロジェクト: モーションデータを使用して、自動化イベントをトリガーします。
トラブルシューティング
- 
検出されていないデバイス: - SDAおよびSCL接続を確認します。
- Raspberry PiでI2Cインターフェイスが有効になっていることを確認してください。
- MPU-6050の電源を確認してください。
 
- 
不正確な測定値: - 各軸のオフセットを実装してセンサーを較正します。
- センサーが安定した表面に配置されていることを確認してください。
 
- 
I2Cエラー: - I2Cバスに矛盾するデバイスがないことを確認してください。
 
結論
MPU-6050は、Raspberry PIプロジェクトに正確なモーショントラッキング機能を追加できる汎用性の高いモーションセンサーです。このガイドに従うことにより、ロボット工学、安定化システム、IoTオートメーションなどのアプリケーションにMPU-6050を設定して使用できます。スケーリングとフィルタリングデータを試して、センサーをニーズに合わせて微調整してください!
 
            
 
      
 
      
 
      
 
      
 
       
         
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
   
   
   
   
   
   
   
   
   
   
   
   
  