M5StickVの6軸センサについて

M5StickVの6軸センサですが、当初から公開されていたMPU6886ではなくSH200Qが搭載されている個体があると発表されています。

There are two versions of IMU sensors available at the current M5StickV (MPU6886 and SH200Q.)To identify the IMU sensor, you can use python code to scan the I2C address MPU6886(0x68)/SH200Q(0x6c)

https://docs.m5stack.com/#/en/core/m5stickv

どちらのチップもピン互換ですので動作には問題ないのですが、I2Cのアドレスが違うのでプログラムで判別して切り替える必要があります。また、データシートをざっと見た限りでは両者のレジスタに互換性はないので、読み出しプログラムも違う物が必要そうです。

最初のロットではSH200Qが搭載されているとのことで、社内にある2台(最初に入荷した物と2回目に入荷した物)はどちらもSH200Qでした。

I2Cバスにつながっているデバイスは以下のMicroPythonスクリプトで一覧できます。

from machine import I2C

i2c = I2C(I2C.I2C0, freq=100000, scl=28, sda=29)
devices = i2c.scan()
print(devices)

おそらく[52, 108]と表示されると思います。出力は10進数で、52(0x34)がAXP192という電源管理ICで、108(0x6c)がSH200Qです。MPU6886では104になるはずです。

M5Stackでは、現在AXP192のMicroPython対応作業中で、それが終わったら6軸センサのMicroPython対応をするとのことです。気になる方はsipeed/MaixPyを見てみるとよいでしょう。

以下参考に - MPU6886データシート - SH200Qデータシート