電子ガジェットいろいろ

電子系のガジェットやアプリ開発等の話題を書いてます

M5StickCで軽く遊んでみました

結構前に買って放置していたM5StickCを見つけたので軽く遊んでみました。

開発環境

開発環境はいくつかあるのですが、とりあえず使い慣れたArduino IDEで行います。
セットアップ方法は公式ページに書いてあります。
M5Stack Docs-The reference docs for M5Stack products.
https://docs.m5stack.com/#/en/arduino/arduino_development
解説は英語で書かれてますが、設定個所は同じなのでわかると思います。

サンプルプログラム

簡単なカウンターを作ってみました。

M5ボタン(ホームボタン)を押すとカウントアップして、リセットボタンを押すとカウントが0になります。

// M5StickCのライブラリをインクルード
#include <M5StickC.h>

// カウントを0で初期設定
int count = 0;

void setup() {

  // M5StickC初期化
  M5.begin();
  
  // 背景色を黒で塗りつぶし
  M5.Lcd.fillScreen(TFT_BLACK);
  // 文字色を白、背景色を黒に設定
  M5.Lcd.setTextColor(TFT_WHITE, TFT_BLACK);

  // M5StickCの向きを設定(M5ボタンが左)
  M5.Lcd.setRotation(1);
  // 文字サイズを設定
  M5.Lcd.setTextSize(6);

  // カウント表示
  print_count();
}

void loop() {

  // M5ボタンが押された時の処理
  if (digitalRead(M5_BUTTON_HOME) == LOW) {
    // ボタンを離すまで待つ
    while (digitalRead(M5_BUTTON_HOME) == LOW) ;
    // カウントアップ
    count++;
    // 9999以上は9999にする
    if (count > 9999) {
      count = 9999;
    }
    // カウント表示
    print_count();
  }

  // リセットが押された時の処理
  if (digitalRead(M5_BUTTON_RST) == LOW) {
    // ボタンを離すまで待つ
    while (digitalRead(M5_BUTTON_RST) == LOW) ;
    // カウントを0に
    count = 0;
    // カウント表示
    print_count();
  }

}

void print_count() {
  // カーソル位置をセット
  M5.Lcd.setCursor(10, 20);
  // カウントを4桁0埋めで表示
  M5.Lcd.printf("%04d", count);
}

Hallo world を少し発展させたようなプログラムですが、基本の文字の表示とボタンの状態取得はわかると思います。