秋月の BNO055 を ESP32 で使ってみる

Electronics

BMX055 をこれまで使っていた(使い方解説ページ)のですが、この IMU センサは 2024年8月現在製造中止になっているらしく、BNO055 の使い方を調べました。

モジュールは秋月のサイトから購入しました。

BNO055使用 9軸センサーフュージョンモジュールキット: 計測器・センサー・ロガー 秋月電子通商-電子部品・ネット通販
電子部品,通販,販売,半導体,IC,LED,マイコン,電子工作BNO055使用 9軸センサーフュージョンモジュールキット秋月電子通商 電子部品通信販売

環境

  • Ubuntu 22.04
  • ESP32 Wrover
  • Visual Studio Code
  • Arduino IDE (Serial plotter を使用するため)

配線

BNO055 は I2C と UART インターフェースの通信を選ぶことができますが、AE-BNO055-BO モジュールではデフォルトで I2C になっています。このまま ESP32 で使用できます。接続するピンは以下の4ピンです。

AE-BNO055-BOESP32 wrover
VIN3V3
GNDGND
SDASDA (IO21)
SCLSCL (IO22)

※ AE-BNO055-BO モジュールで UART 通信をすることも可能です。詳しくはマニュアルをご覧ください。

Arduino ライブラリのイントール

サンプルコード read_all_data.ino を動かすためには、以下の3つのライブラリをインストールする必要があるようでした。

  • Adafruit BNO055 by Adafruit
  • Adafruit Unified Sensor by Adafruit
  • Adafruit BusIO by Adafruit

この3つをインストールしないと、以下のようなエラーでコンパイルが通りません。

Verifying...
read_all_data:2:10: fatal error: Adafruit_Sensor.h: No such file or directory
 #include <Adafruit_Sensor.h>
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.

手順

vscode を使う場合のライブラリのイントール方法とサンプルコードの実行方法を以下に示します。

1.. Ctrl + Shift + P を押して Arduino Library Manager を起動。

2.. 上述の3つのライブラリをインストール

3.. Ctrl + Shift + P を押して、Arduino: Examples を実行。

4.. read_all_data.io を開き、Ctrl + Alt + U で ESP32 に書き込む。

実験

加速度

read_all_data.io の以下の行以外の printEvent と Serial.print() をコメントアウトすると、加速度のデータが見やすくなります。

printEvent(&accelerometerData);

Arduino IDE にて Tools -> Serial Plotter を開きます。Serial Plotter では緑が x、赤が y、青が z を表しているようです。

角速度

同様に、以下の行以外をコメントアウトすると角速度のデータが見やすくなります。

printEvent(&angVelocityData);

まとめ

秋月で販売されているモジュールと Arduino ライブラリを使って、簡単に BNO055 の動作確認ができました!

参考サイト

コメント