Hello Worldのサンプルの解説

環境構築 (PlatformIO) のHello Worldから

include文

#include <Arduino.h>
#include <M5Unified.h>

#include <XXXX.h> は指定したファイルの内容をソースコードに差し込む命令 (ヘッダファイルの読み込みを行うプリプロセッサ命令)

このサンプルでは, Arduino.hというファイルと, M5Unified.hというファイルを展開している

<aside> 💡

プリプロセスはコンパイルする前の前処理のこと

# を使ったキーワードを見つけると, コンパイルす前に特定の処理を行ってから, コンパイラに結果を返す (#define , #undef , #if , #ifdef など)

#include <M5Unified.h> はプリプロセス時に, /.pio/libdeps/m5stack-core2/M5Unified/src/M5Unified.h の内容をmain.cppに差し込む

Arduino.hの実体は, おそらく.platformio/packages/framework-arduinoespressif32/cores/esp32/Arduino.h

</aside>

setup関数

void setup() {                      // マイコンの起動時に1度だけ呼び出される関数
	auto cfg = M5.config();           // 初期化オプションを取得する. M5Unifiedでは必須
	M5.begin(cfg);                    // M5Stackの初期化. 引数として直前の初期化オプション(cfg)が必要
	
	M5.Display.print("Hello World");  // M5Stackのディスプレイに文字列"Hello World"を出力する
}

void setup(){ 処理 } はマイコンの起動時に1度だけ呼び出される関数. 通常, マイコン, センサの初期化や, 無線通信のセットアップなどを行う

setup()内の処理はM5Stackの固有の処理である

<aside> 💡

M5は, M5Unifiedクラスのグローバルインスタンスであり, M5のメンバ変数に, Display, Imu, Btnなどの内蔵機能にアクセスするためのクラスが存在する

M5Unified/src/M5Unified.hpp の65行目以降を参照

</aside>

loop関数