MPU-9250 加速度センサー、ジャイロスコープ、磁力計 コード

MPU-9250 加速度センサー、ジャイロスコープ、磁力計 コード

このチュートリアルでは、加速度計、ジャイロスコープ、磁力計を1つのコンパクトなモジュールに統合したMPU-9250センサーの使い方を探ります。このガイドの終わりまでには、センサーデータを読み取り、その意味をプロジェクトに解釈できるようになります。このセンサーは、ロボティクスやドローンのようなアプリケーションに特に役立ち、向きや動きの追跡が重要です。設定やコードに関する追加の説明については、動画を参照できます(動画の00:20にて)。

ELE_MPU6050_208
ELE_MPU6050_208

ハードウェアの説明

MPU-9250モジュールは、加速度計、ジャイロスコープ、磁力計の3つのセンサーを統合しています。加速度計は加速度を測定し、速度と向きを判断することができます。ジャイロスコープは角速度を提供し、時間の経過に伴う向きの変化を理解するのに役立ちます。最後に、磁力計はコンパスとして機能し、ナビゲーションに役立つ磁場データを提供します。

このセンサーの組み合わせは、ドローンやスマートフォンなど、精密な動きの追跡が必要なアプリケーションで特に有益です。MPU-9250はI2CまたはSPIを介して通信を行い、異なるマイクロコントローラーのセットアップに対して柔軟性を持っています。

データシートの詳細

製造者 インベンセンス
部品番号 MPU-9250
論理/入出力電圧 1.8 V (入出力), 3.3 V (供給)
供給電圧 2.4 - 3.6 V
出力電流(チャネルごと) 3.2 mA(通常動作)
ピーク電流(チャネルごと) 19.8 mA(最大)
PWM周波数ガイダンス N/A
入力ロジックしきい値 0.3 * VDD(低)、0.7 * VDD(高)
電圧降下 / RDS(オン)/ 飽和 N/A
熱的限界 -40から85 °C
パッケージ QFN
ノート / バリアント 内部電圧レギュレーターを含む
  • モジュールが損傷しないように、適切な電圧供給(2.4 - 3.6 V)を確保してください。
  • ブレイクアウトボードにすでに含まれていない場合は、SDAおよびSCLラインにプルアップ抵抗を使用してください。
  • I2Cアドレス(デフォルトは0x68)を確認し、代替アドレスに応じてADOピンを調整してください。
  • 接続の安定性を確認して、誤った読み取りを防ぎます。
  • センサーを定期的にキャリブレーションして、正確な測定を行ってください。

配線手順

MPU6050のArduino配線では、SDAとSCLにA4とA4を使用します。
MPU6050のArduino配線、SDAとSCLのためにA4とA4を使用
Arduino Wiring for MPU-6050
Arduino Wiring for MPU-6050
Arduino wiring for  MPU6050 using A4 and A4 for SDA and SCL
Arduino wiring for MPU6050 using A4 and A4 for SDA and SCL

MPU-9250をArduinoに接続するには、まずMPU-9250のVCCピンをArduinoの5Vピンに接続します。このモジュールは内部レギュレーターを備えているため、5Vでの電源供給は安全です。次に、GNDピンをArduinoのグラウンド(GND)に接続します。データ通信のために、SDAピンをArduinoのA4ピンに、SCLピンをA5ピンに接続します。この構成は多くのArduinoボードで標準的です。

Arduino Megaを使用している場合、SDAおよびSCLピンはそれぞれピン20および21にあります。接続が確実であることを確認して、通信エラーを避けてください。MPU-9250のI2Cアドレスを変更する必要がある場合は、ADOピンを5Vに接続して0x69に設定します。切断すると0x68に戻ります。

MPU6050を使用したArduino回路図(SDAとSCLにA4とA4を使用)
ArduinoのMPU6050用回路図(SDAとSCLにA4とA4を使用)

コード例と解説

Arduinoのスケッチでは、まずMPU9250ライブラリをインクルードし、センサーのインスタンスを作成します。

#include "MPU9250.h"
MPU9250 IMU(Wire,0x68);

コードはセンサーを初期化し、通信を開始します。setup()機能:

void setup() {
  Serial.begin(115200);
  status = IMU.begin();
  if (status < 0) {
    Serial.println("IMU initialization unsuccessful");
    while(1) {}
  }
}

内でloop()機能として、センサーデータを継続的に読み取り、印刷します:

void loop() {
  IMU.readSensor();
  Serial.print("AccelX: ");
  Serial.print(IMU.getAccelX_mss(),6);
  // More print statements for other axes
}

このセクションでは、加速度センサー、ジャイロスコープ、磁力計の値を読み取り、それらをシリアルモニターに表示します。完全な実装のために、記事の下にロードされたコード全体を確認してください。

デモンストレーション / 期待すること

コードを実行すると、センサー値がシリアルモニターでリアルタイムに更新されるのが見えるはずです。加速度計の値はセンサーを動かすと変動し、ジャイロスコープの値は回転速度を示します。磁力計は三軸の磁場強度を提供し、方向を決定するのに利用できます。浮動小数点入力には注意が必要です。正確な読み取り値を得られない可能性があるためです(動画の12:30参照)。

  • イントロダクション (00:00)
  • ハードウェアの解説 (01:30)
  • 配線指示 (04:00)
  • コード例とウォークスルー (06:00)
  • デモンストレーション (10:00)

画像

ELE_MPU6050_208
ELE_MPU6050_208
Arduino Wiring for MPU-6050
Arduino Wiring for MPU-6050
Arduino Schematic for  MPU6050 using A4 and A4 for SDA and SCL
Arduino Schematic for MPU6050 using A4 and A4 for SDA and SCL
Arduino wiring for  MPU6050 using A4 and A4 for SDA and SCL
Arduino wiring for MPU6050 using A4 and A4 for SDA and SCL
126-Arduino code for an MPU-9250 accelerometer, gyroscope, and magnetometer
言語: C++
コピーしました!

リソースと参考文献

ファイル📁

ファイルは利用できません。