【ESP32】MPU-9250/6500 9軸(加速度,ジャイロ,磁気センサ)センサ【M5Stack】

スポンサーリンク
広告

MPU-9250/6500 GY-6500 GY-9250

持ってたのはこれ。。。 ちょっと連続でデータをI2C経由で取るサンプルのために今回は使いましたので、その忘備録 ボード自体はこれです。9軸(加速度、ジャイロ、磁気センサ)センサになっていて、TDKのMPU-9250という石を使っています。

ESP32で、いろいろセンサーを使う時の忘備録シリーズです。

【ESP32】6軸センサ・加速度・ジャイロセンサー MPU6050のライブラリー VL53L1X TOFセンサ HY-SRF05超音波センサ【Arudino】
ESP32Sというモジュールで遊んでいます こやつ、BlueToothもちゃんと動くし、Wifiもちゃんと動く。。Bluetoothだ...

の続き。。そろそろESP32系も、どこかにまとめておこうかな?

こういう説明書も何もない安物センサほど、いろいろ情報がネットに転がっています(笑)

が。。 最近調べ方が分かってきたかも(笑)

Arduino IDEのツール>ライブラリマネージャ で MPU 9250を検索する!!

これが一番手っ取り早いです。ボードに書かれている番号でもいいので。。そうすると、現在のライブラリーが出てきます。

上から

これが決定版かもですが。。I2C、SPI、FIFOにも対応しているバージョンです。

GitHub - bolderflight/invensense-imu: Arduino and CMake library for communicating with the InvenSense MPU-6500, MPU-9250 and MPU-9255 nine-axis IMUs.
Arduino and CMake library for communicating with the InvenSense MPU-6500, MPU-9250 and MPU-9255 nine-axis IMUs. - GitHub - bolderflight/invensense-imu: Arduino ...

Donkey Carも作られている人のライブラリです。一通りできそう。

GitHub - FaBoPlatform/FaBo9AXIS-MPU9250-Library
Contribute to FaBoPlatform/FaBo9AXIS-MPU9250-Library development by creating an account on GitHub.

こちらはI2Cを使うセンサ類のライブラリですね。

GitHub - orgua/iLib: Library for various I2C-Sensors with examples for Arduino
Library for various I2C-Sensors with examples for Arduino - GitHub - orgua/iLib: Library for various I2C-Sensors with examples for Arduino

こちらは、MPU9250に特化していて、キャリブレーションも作られています。

GitHub - hideakitai/MPU9250: Arduino library for MPU9250 Nine-Axis (Gyro + Accelerometer + Compass) MEMS MotionTracking™ Device
Arduino library for MPU9250 Nine-Axis (Gyro + Accelerometer + Compass) MEMS MotionTracking™ Device - GitHub - hideakitai/MPU9250: Arduino library for MPU9250 Ni...

ESP32用のPINをどこで変えるかも書かれています。

GitHub - asukiaaa/MPU9250_asukiaaa: A library for arduino to read value of MPU9250.
A library for arduino to read value of MPU9250. Contribute to asukiaaa/MPU9250_asukiaaa development by creating an account on GitHub.

この中で、今回ESP32系を使うので、サンプルにもESP32を使っている一番下のやつにしてみました。

【9軸センサ】MPU9250の使い方とArduinoプログラム | AkiRacing.com
InvenSenseのMPU9250という9軸センサをArduinoで使用してみました.MPU6050の後継品でAK8963という磁気センサが搭載されています.加速度,ジャイロ,コンパスのデータを一度に取得することができます.プログラムと回路図を記載しています.DMPが使える優れものです.

これも参考にして。

接続ピン配列など

実はこれが一番の難関かもですねぇ~(笑)

センサモジュール自体の回路図とピンは、こちら

J1のところです。下の写真では、右から1ですね。

  1. VSC 3.3V
  2. GND
  3. SCL
  4. SDA
  5. ESD
  6. ESC
  7. AD0
  8. INT
  9. nCS
  10. FSYNC

Arduino側

I2Cで接続する場合は、

基本Arduinoは、A4 (SDA), A5 (SCL)

ESP32は、 GPIO21(SDA) GPIO22(SCL)

I2Cのピンアサイン Arduinoの場合

ESP32のピンアサイン

M5Stackのピンアサイン

M5は分かりやすいですね。ESP32のピンの呼び名と同じものが裏を見るとわかります。

なお、左右・上下で同じピンが出ています。

実際の接続は

センサ側から見て

MPU-9250   : ESP32(M5 Stack)

  1. VSC 3.3V  : 3.3V
  2. GND     : G
  3. SCL      :   22(SCL)
  4. SDA              :    21(SDA)

ですね。

先ほどのライブラリについてくるサンプルGetData.ino を動かすとすぐにコンソールにデータが出てきました。

応用例のこれが、9250のセット方法の参考になります。

robotakao.jp
Find the best information and most relevant links on all topics related to

と。。。6500の時と違って簡単に動いたわけですが。。。

M5Stack-Chimera-core の場合

もっと簡単に、M5Stack-Chimera-coreのライブラリに例が入ってました(笑)

するっと動いた(笑)

MPU-9250 を M5Stack Chimera core ライブラリーのサンプルを動かしてみた

こちらは、ちゃんとバイアスも計算してくれます。姿勢推定もしてくれているようですね。。でもこれ読むの大変だ(笑)カルマンフィルターとかすっかり忘れているし(笑)

ドキュメント類はこちらも豊富ですね。

GitHub - kriswiner/MPU9250: Arduino sketches for MPU9250 9DoF with AHRS sensor fusion
Arduino sketches for MPU9250 9DoF with AHRS sensor fusion - GitHub - kriswiner/MPU9250: Arduino sketches for MPU9250 9DoF with AHRS sensor fusion

コメントを残していただけるとありがたいです

Loading Facebook Comments ...