M5Lite(C, C+, Stack, Atom)のIMU確認

概要

M5シリーズを同時に開発できるM5LiteでIMUの動作を確認してみました。特に座標軸が違うと同じコードで動かないので、統一したいと思います。

加速度

画面の向きで正面を決めました。正面で画面を上に机に置いたところZ軸が1になりました。

左側に倒したところにX軸が1になりました。TTGO T-Watchが逆だったので補正します。

同じく正面のまま立てかけるとY軸が1になりました。TTGO T-Watchが逆だったので補正します。

ここには写っていませんですが、ATOM Matrixも軸がずれていたので、M5StickCと同じ数値になるように補正しました。

ジャイロ

X軸の回転は手前に傾けるとプラスでした。

Y軸の回転は右に傾けるとプラスでした。

Z軸は左に傾けるとプラスでした。

シリアルプロッタで描画しながら動かすとわかりやすいですね。この軸になるように他の端末も補正していきます。TTGO T-Watchはそもそも3軸なのでジャイロがありません。そのためATOMだけ補正が必要になります。

MahonyAHRS

組み込もうかと思いましたが、既存M5StickCライブラリのピッチとロールの軸が逆な気がするんですよね。MahonyAHRS以外のもいろいろライブラリがあるので、各自自分で組み込んでみてください、、、

まとめ

M5StickCとM5StackはIMUの軸が同じでした。このへんは流石ですがATOMが違ったのが残念。小さいから設計の自由度が低いのかな?

コメント

  1. hsenshu より:

    たなかさん、こんにちは。

    参考になりました。(書き込まれてから数年経ってのコメントで申し訳あり
    ません。)

    私は、最近IMUをBLE接続するコードを書いて、PCの画面に表示した3d CUBE
    を動かすデモを実現しました。コードレスなので快適です。

    これはM5Unifiedで書いたので、手元にある M5Stack(Core2, Grey)と
    M5StickC Plu2で動作します。

    3機種で同じように動作させるには軸の動きを一致させる(機種ごとに条件
    文をいれて対応)必要がありました。

    しばらく使ってみて、キャリブレートの必要性に気づいたのですが、
    キャリブレートを実施しても、Core2だけは、静止状態でも少しの
    揺れがあり、校正は無効のようです。

    顛末は以下のURLに書きました。

    https://github.com/m5stack/M5Unified/issues/253

    私は、Core2での真の対策は諦めていますが、たなかさんのところ
    ではこうした不具合は起きていませんか?

  2. hsenshu より:

    3d cubeのデモは、ここで報告しています。

    https://github.com/arturormk/m5stickc-ble-clinometer/issues/1