BMX055 をこれまで使っていた(使い方解説ページ)のですが、この IMU センサは 2024年8月現在製造中止になっているらしく、BNO055 の使い方を調べました。
モジュールは秋月のサイトから購入しました。
環境
- Ubuntu 22.04
- ESP32 Wrover
- Visual Studio Code
- Arduino IDE (Serial plotter を使用するため)
配線
BNO055 は I2C と UART インターフェースの通信を選ぶことができますが、AE-BNO055-BO モジュールではデフォルトで I2C になっています。このまま ESP32 で使用できます。接続するピンは以下の4ピンです。
AE-BNO055-BO | ESP32 wrover |
---|---|
VIN | 3V3 |
GND | GND |
SDA | SDA (IO21) |
SCL | SCL (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 の動作確認ができました!
コメント