モーションセンサ MPU9250 の DMP 動作確認

Home > 電子工作 > モーションセンサ MPU9250 の DMP 動作確認
すき 0
うんこ 0

以前、各種モーションセンサを比較してみたのですが

スマート靴占い 『 IしたoTんきになぁ〜れ 』

9軸センサMPU9250のDMP動作が確認できず断念しておりました。
DMP(Digital Motion Processor)とはモーションセンサMPUシリーズに内蔵された自身の姿勢角を算出する機能です。

今回はsparkfunのライブラリでMPU9250のDMP動作が確認できましたので記載します。

構成

sparkfunのMPU9250のDMPライブラリがARM Cortex-M0ベースの SAMD ファミリのみ対応だったのでマイコンはAdafruit Itsy Bitsy M0 Expressを使用しました。

部品

  • マイコン Adafruit Itsy Bitsy M0 Express

     
  • 9軸モーションセンサ MPU9250

MPU9250

6軸センサMPU6500(3軸加速度+3軸ジャイロ)と3軸コンパスAK8963を搭載した9軸モーションセンサです。

DMPライブラリとして以下を使用しました。
 https://github.com/sparkfun/SparkFun_MPU-9250-DMP_Arduino_Library

ARM Cortex-M0ベースの SAMDマイコンのみに対応しており、Arduino UNOなどには容量不足でコンパイルできません。。。

ライブラリのプログラム例 MPU9250_DMP_Quaternion を動作させてみました。

ただし26行目は以下のように修正しています。

 

いい感じにクォータニオンが得られています♪

Adafruit Itsy Bitsy M0 Express

Arduino M0シリーズで小さくてかわいいので購入してみました。

スイッチサイエンスのサイトによると、どのピンでもNeoPixel8000個以上を時間消費せずに点灯可能とか記載あるのですごそうですね。。。今度試してみます。

Arduino IDE用設定

以下を参考に実施しました。
 https://learn.adafruit.com/introducing-itsy-bitsy-m0/using-with-arduino-ide

Arduino IDEのボードマネージャで以下のパッケージをインストールします。

  • Arduino SAMD Boards (32-bits ARM Cortex-Mo+)

     
  • Adafruit SAMD Boards

 
インストール後に以下でボードを設定してコンパイルが可能になります。Win7と8はドライバインストールが必要です。

DMP動作確認

以下のMPU6050用のクォータニオンでグラフィック動かすProcessingプログラムを使用して、MPU9250のDMP動作を確認しました。
 https://github.com/jrowberg/i2cdevlib/blob/master/Arduino/MPU6050/examples/MPU6050_DMP6/Processing/MPUTeapot/MPUTeapot.pde

Arduinoコード

MPU9250_DMP_Quaternion.inoを参考にプログラムしました。

クォータニオンをProcessing用に配列にして送信します。

動作

ProcessingのMPUTeapot.pdeを起動して、実行でMPU9250のDMPによって算出されたクォータニオンで飛行機がうごいきます。

USBポート設定はProcessingコード上でうまいこと実施してください(71行目)。

まとめ

やっとMPU9250でDMP動作が確認できました。オフセット調整などを手動でせずとも安定した姿勢角取得が確認できました。

やったーー!MPU9250はBNO055より安価ですので活用方法ひろがりそうですね!いまのところM0マイコンでしか動かせないが。。

「モーションセンサ MPU9250 の DMP 動作確認」への2件のフィードバック

  1. たいへん参考になります。他のマイコン(例えばESP32等)への移植は可能でしょうか?

    1. ありがとうございます。

      できるかもしれないのですが私は技量がないのでDMPの
      サンプルがないマイコンへの移植は以前失敗に終わっています。

      ESP32のMPU9250 DMPサンプルは探せばどこかにあるかもしれません。

コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください