M5Stack

【M5Stack】加速度センサの使い方を分かりやすく解説!【MPU6886】

m5stack-mpu6886-acceleration-sensor.png

<この記事について>

  • 「M5Stackに搭載されている加速度センサの使い方がよく分からない…」と悩んでいる人のために書きました。
  • この記事を読むことで、M5Stack(MPU6886)で加速度センサを使う方法が分かります。
  • 結論としては、何かライブラリをインストールしたり特別な設定することなく、プログラムを書いて実行するだけでOKです。

こんにちは!こんばんは!

ちゃとらです(・ω・)/

M5StackにはIMU(慣性計測ユニット)が搭載されているので、加速度やジャイロなどが測定可能です。

少し前のM5Stackに搭載されていたMPU9250というIMUとはプログラムの書き方が異なるので注意です。

ちゃとら

M5Stackに搭載されているMPU6886(IMU)で加速度センサを使う方法を分かりやすく解説していきます!

m5stack-mpu6886-gyro-sensor.png
【M5Stack】ジャイロセンサの使い方を分かりやすく解説!【MPU6886】この記事では、M5Stackに搭載されているMPU6886でジャイロセンサを使う方法について解説しています。特別な設定は必要なく、プログラムを書いて実行するだけでジャイロセンサを使用することができます。...
m5stack-mpu6886-thermometer.png
【M5Stack】温度センサの使い方を分かりやすく解説!【MPU6886】この記事では、M5Stackに搭載されているMPU6886で温度センサを使う方法について解説しています。特別な設定は必要なく、プログラムを書いて実行するだけで温度センサを使用することができます。...

今回扱うM5Stack

M5Stackの種類M5Stack FIRE(V2.6)
値段49.90ドル(税別)
(販売価格は7700円程 更新日現在)
生産国中国
サイズ5.4 x 5.4 x 3.05 cm

僕は8000円ぐらいでM5Stack FIREを通販で購入しました。

M5Stackは機種によって搭載されているセンサが異なりますが、最近発売されている物のほとんどにはMPU6886が搭載されています。

ちなみに、MPU6886では加速度・ひねり(ジャイロ)・温度が測定可能ですが、磁力は測定できません。

加速度センサについて

本題に入る前に、少し寄り道です。

加速度センサは加速度を測定する機器だということは分かりますが、具体的にはどういったものなのでしょうか?

加速度とは単位時間当たりの速度のことをいい、その加速度を測定するICが加速度センサです。
加速度を測定することで、物体の傾きや振動などの情報を計測することができます。
加速度の単位としては m/s2(国際単位系 SI)が使用されます。
また、単位G は標準重力(1 G = 9.806 65m/s2)を基準とした加速度の値となります。
その他、地震のゆれの加速度に使われる単位としてGal(CGS単位系)もあります。

引用元:ローム株式会社 – ROHM | 加速度センサ

加速度センサは加速度だけではなく、傾きや振動なども測定可能です。

身近な例だと、車のカーナビやデジカメ、スマホやゲームのコントローラなどに加速度センサは搭載されています。

とあるモブ

加速度センサの中身はどうなってんの?

ちゃとら

…………。

詳細は自分で調べて、どうぞ。

とあるモブ

えぇ…(困惑)

加速度センサの中身などのもっと詳しいことを書くのは面倒くさい

加速度センサについてもっと掘り下げて紹介してしまうと、難しいうえに飽きるぐらい長くなってしまいます…

なので、気になる人は個人で調べてみてください。

ちゃとら

べ、別に、伝えるのが大変だからやめたわけじゃないから!!

M5Stackに搭載されているMPU6886は以下の図のように加速度を測定します。

MPU6886では、それぞれの軸の加速度を単位をGとして測定します。

使い方

MPU6886の加速度センサを使うためには、何かライブラリをインストールしたり特別な設定は必要ないです。プログラムを書き込むだけで使うことができます。

ここでは、M5Stackのセットアップ(Arduino IDE)は完了していること前提で解説していきます。

ちゃとら

M5Stackのセットアップ(Arduino IDE)がまだ完了していない人は以下の記事を参考にしてください!

m5stack-setup-arduino.png
【M5Stack】M5Stackのセットアップ(Arduino)を分かりやすく解説!【Arduino IDE】この記事では、M5Stackのセットアップ(Arduino IDE)について解説しています。手順としては、「USBドライバをインストール」→「ボードマネージャをインストール」→「ライブラリをインストール」→「プログラムを書いて実行する」となっています。...

プログラムを書いて実行

以下のプログラムをM5Stackに書き込んで動作させます。

// ↓の定義は#include <M5Stack.h>より前に!
#define M5STACK_MPU6886 

#include <M5Stack.h>

// 取得するそれぞれの軸の加速度データを初期化
float aX = 0.0F;
float aY = 0.0F;
float aZ = 0.0F;

void setup() 
{
  M5.begin();
  M5.Power.begin();  // Powerモジュールを初期化

  M5.IMU.Init();     // IMUを初期化

  M5.Lcd.setTextSize(3);
}

void loop() 
{
  // 加速度データを取得
  M5.IMU.getAccelData(&aX, &aY, &aZ);

  // それぞれの軸の加速度データをシリアル通信で送信
  Serial.print("aX(mG):");
  Serial.print(aX * 1000);
  Serial.print(",");
  Serial.print("aY(mG):");
  Serial.print(aY * 1000);
  Serial.print(",");
  Serial.print("aZ(mG):");
  Serial.println(aZ * 1000);

  // それぞれの軸の加速度データをM5Stackに表示
  M5.Lcd.setCursor(0, 50);
  M5.Lcd.setTextColor(BLUE, BLACK);
  M5.Lcd.printf("aX: %5.2f mG ", aX * 1000);
  M5.Lcd.setCursor(0, 100);
  M5.Lcd.setTextColor(RED, BLACK);
  M5.Lcd.printf("aY: %5.2f mG ", aY * 1000);
  M5.Lcd.setCursor(0, 150);
  M5.Lcd.setTextColor(GREEN, BLACK);
  M5.Lcd.printf("aZ: %5.2f mG ", aZ * 1000);

  delay(100);
}

プログラムを作成できたら、シリアルポートとボードの設定を忘れずに行いましょう。

「ツール」→「シリアルポート」でM5Stackが接続されているポート番号を選び、
「ツール」→「ボード」→「ESP32 Arduino」で「M5Stack-Core-ESP32」を選びましょう。

それぞれ設定ができたら、M5Stackにプログラムを書き込みます。

M5Stackに表示

こんな感じで表示されればOKです。また、シリアル通信で加速度データを送信しているのでM5Stackがパソコンと接続されていれば、シリアルプロッタでグラフ表示させることもできます。

加速度データ

グラフ表示させるときは通信速度を115200bpsに設定します。

M5Stackを傾けたり揺らすことでそれぞれの値が変化します。

M5StackのMPU6886についての詳細が気になる人は以下のリンクを参考にしてください。

まとめ

M5Stackに搭載されているMPU6886の加速度センサについて

  1. 加速度センサは加速度だけではなく、それぞれの軸の加速度を測定することで、傾きや振動なども測定可能。
  2. MPU6886の加速度センサを使うためには、何かライブラリをインストールしたり特別な設定は必要はない。プログラムを書き込むだけで使用可能。
ちゃとら

MPU9250よりプログラムの書き方は簡単にです!

今回はここまでです。

ちゃとら(・ω・)/

今回紹介した広告一覧