概要
去年発売された6軸IMUユニットの紹介です。3軸の加速度センサのみはあったのですが、ジャイロを使う場合にはこちらのユニットを利用します。
商品
- M5Stack用6軸IMUユニット(スイッチサイエンス)
- 6-Axis IMU Unit(MPU6886)(公式ストア)
上記から購入することができます。

パッケージは最近増えてきた小型パッケージになります。
この小さいユニットの箱はちょっと扱いにくいですね。行方不明になりやすいので注意してください。。。私はすでに1個行方不明になったユニットがあります(涙)

並べてみるとかなり小さいですね。箱の厚みは小さい方が分厚いんですが、ユニット自体は同じ厚さでした。
上記の3軸加速度センサと比べるとX軸とY軸の方向が違いますね。90度回転していますね。

中身です。かなり小さいですね。こちらにも軸の方向が書いてあります。赤コネクタなのでI2Cですね。

反対側はコネクタの情報のみですね。
使い方
#include "I2C_MPU6886.h"
I2C_MPU6886 imu(I2C_MPU6886_DEFAULT_ADDRESS, Wire);
void setup() {
Serial.begin(115200);
delay(1000);
Wire.begin(32, 33);
imu.begin();
Serial.printf("whoAmI() = 0x%02x\n", imu.whoAmI());
}
void loop() {
float ax;
float ay;
float az;
float gx;
float gy;
float gz;
float t;
imu.getAccel(&ax, &ay, &az);
imu.getGyro(&gx, &gy, &gz);
imu.getTemp(&t);
Serial.printf("%f,%f,%f,%f,%f,%f,%f\n", ax, ay, az, gx, gy, gz, t);
delay(100);
}
M5StickCなどの最近のIMUで採用されているMPU6886を搭載していますので、ほぼそのまま動きます。M5Stack FireはPort Aに接続すると内蔵I2CのMPU6886と、6軸IMUユニットのMPU6886が同じアドレスなのでバッティングします。
UIFlowでも同じ問題があるのですが、IMU内蔵しているボードでは6軸IMUユニットの利用が禁止されています。M5StickCやM5Stack Core2などはI2Cのバスが別なので問題ないのですが使うことができませんのでご注意ください。
まとめ
UIFlowだとちょっと残念な仕様なのですが、まあ本体にIMU内蔵していたらIMUユニットいらないよねってのもわかります。とはいえM5StickCに6軸IMUを接続してヌンチャクみたいに利用したい用途もありますよね?
そのうち端末によってはUIFlowで6軸IMUの利用が解禁されるとうれしいですね。




コメント