Arduino IDEを使って、M5Capsuleに実装されているIMUモジュール「BMI270」入力を行いました。ただし、Arduino IDEでM5Capsuleへのスケッチ書き込みが上手く実行できなくなりました。
M5Capsuleの仕様を次に示します。「M5Capsule」を参照します。
M5Capsuleを次に示します。
開発環境の構築
M5Capsuleのプロゴラム開発はArduino IDEを使用します。
- メニュー「ファイル」 →「 環境設定」 を選択し、「追加のボードマネージャのURL 」次のURLを設定します。
- メニュー「ツール」 →「ボード」 → 「ボードマネージャ 」を選択します。
- メニュー「ツール」 →「ボード」 → 「ボードマネージャ 」を選択します。
- 「M5Stack」 を検索して表示されたパッケージを選択してインストールします。
- インストールが済むと、ボードリストからM5Capsuleが選択できるようになります。
- メニューから「スケッチ」→「ライブラリをインクルード」→「ライブラリを管理」を開き、次のように「M5Capsule」 をインストールします。
https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
IMU入力プログラムの作成
次の手順でAD変換器「ADS1015」のライブラリをインストールします。
- 「M5Unified」からzipファイルをダウンロードします。
- Arduino IDE を開いて、メニューバーの「スケッチ」→「ライブラリをインクルード」→「ZIP形式のライブラリをインストール」をクリックして、ダウンロードしたライブラリをインストールします。
- プログラムは次のスケッチ例「imu」をベースに作成します。
作成したIMU入力プログラム「capsule_imu.ino」を次に示します。
capsule_imu.ino
// Include this to enable the M5 global instance. #include <M5Unified.h> const char* name = "00"; void setup() { Serial.begin(115200); // put your setup code here, to run once: auto cfg = M5.config(); M5.begin(cfg); switch (M5.Imu.getType()) { case m5::imu_none: name = "not found"; break; case m5::imu_sh200q: name = "sh200q"; break; case m5::imu_mpu6050: name = "mpu6050"; break; case m5::imu_mpu6886: name = "mpu6886"; break; case m5::imu_mpu9250: name = "mpu9250"; break; case m5::imu_bmi270: name = "bmi270"; break; default: name = "unknown"; break; }; M5_LOGI("imu:%s", name); } void loop() { /* char prnname[30]; sprintf(prnname, "imu:%s", name ); Serial.println(prnname); delay(1000); */ }
プログラムの書き込み・実行
次のように、エラーメッセージ「A fatal error occured: No serial data received.」が発生するようになりました。スケッチを変更していく過程で、最初はうまくいったArduino IDEでM5Capsuleへのスケッチ書き込みが、上手く実行できなくなりました。
EN,IO0ボタンを使ったような書き込み手順が必要なのかもしれません(参照:M5Stamp Pico MateでLチカ・ボタン入力)。
【 スケッチの書き込み 】
スケッチの書き込みは、書き込みモードで起動します。「BTN 0」と書かれたボタンを押下しながら電源を投入、または「GPIO0」とGNDをショートさせた状態で電源を投入します。この状態でArduino IDEから書き込みの指示を行います。