Arduino IDEを使って、M5Capsuleに実装されているIMUモジュール「BMI270」入力を行いました。ただし、Arduino IDEでM5Capsuleへのスケッチ書き込みが上手く実行できなくなりました。

M5Capsuleの仕様を次に示します。「M5Capsule」を参照します。

M5Capsuleを次に示します。

開発環境の構築

M5Capsuleのプロゴラム開発はArduino IDEを使用します。

  1. メニュー「ファイル」 →「 環境設定」 を選択し、「追加のボードマネージャのURL 」次のURLを設定します。
  2. https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
    

  3. メニュー「ツール」 →「ボード」 → 「ボードマネージャ 」を選択します。
  4. メニュー「ツール」 →「ボード」 → 「ボードマネージャ 」を選択します。
  5. 「M5Stack」 を検索して表示されたパッケージを選択してインストールします。
  6. インストールが済むと、ボードリストからM5Capsuleが選択できるようになります。
  7. メニューから「スケッチ」→「ライブラリをインクルード」→「ライブラリを管理」を開き、次のように「M5Capsule」 をインストールします。

IMU入力プログラムの作成

次の手順でAD変換器「ADS1015」のライブラリをインストールします。

  1. M5Unified」からzipファイルをダウンロードします。
  2. Arduino IDE を開いて、メニューバーの「スケッチ」→「ライブラリをインクルード」→「ZIP形式のライブラリをインストール」をクリックして、ダウンロードしたライブラリをインストールします。
  3. プログラムは次のスケッチ例「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から書き込みの指示を行います。