01.M5UnifiedでHelloWorld
01.M5UnifiedでHelloWorld
M5Stackシリーズの統一ライブラリM5Unifiedで、色々な機種に"HelloWorld"を表示しました。
M5Unified
今までは、製品ごとにライブラリやAPIが別々でした。しかし、M5Unifiedライブラリを使うと、1つのスケッチで異なるM5Stackシリーズ(M5StackとM5Atom等)を動かすことが可能になります。ESP32のM5StackやESP-IDFに使用できます。対応機種
M5Stack Core (BASIC / GRAY / GO / FIRE)M5Stack Core2 / Core2 v1.1 / Tough
M5Stack CoreS3
M5Stick C / CPlus / CPlus2
M5Paper
M5Stack CoreInk
M5ATOM Lite / Matrix / ECHO / PSRAM / U
M5ATOMS3 / S3Lite / S3U
M5STAMP PICO
M5STAMPC3 / C3U
M5STAMPS3
等あります。
M5Unifiedライブラリの始め方
https://docs.m5stack.com/ja/arduino/m5unified/helloworld
M5Unifiedのサンプル例
https://github.com/m5stack/M5Unified/tree/master/examples
M5Unified用API
・Button Class・Power Class
・IMU Class
・Touch Class
・Speaker Class ・Mic Class
・RTC8563(RTC) Class
https://docs.m5stack.com/ja/arduino/m5unified/m5unified_appendix
M5GFX
LovyanGFXを元にM5Stack公式ライブラリとしてM5GFXが作成され、各種ボードの制御コードが追加されたものがM5Unifiedとなります。https://lang-ship.com/blog/work/m5unified-1/ より
M5Unifiedライブラリは内部でM5GFXライブラリを使用しています。
https://qiita.com/villhell/items/84cb8d53fe13226bdd97 より
日本語はM5GFXを使用します。
対応デバイス: M5Stack Core(Basic, Gray, Fire, M5Go), M5StackCore2, M5Tough, M5StickC, M5StickCPlus, M5CoreInk, M5Paper
https://docs.m5stack.com/ja/arduino/m5gfx/m5gfx
M5Unifiedのライブラリをインストール
https://docs.m5stack.com/ja/arduino/m5unified/helloworldArduino-IDE > スケッチ > ライブラリをインクルード > ライブラリを管理... > "M5Unified"で検索 > "M5Unified by M5Stack 0.1.16" > インストール > "全てをインストール"
同一スケッチで動作しました。
・M5Stack Basic 画面:320x240 Flash:?MB SRAM:520kB
・CoreInk 画面:200x200 Flash:4MB SRAM:520kB
・M5StickCPlus 画面:240x135 Flash:4MB SRAM:520kB
・ATOMS3 画面:128x128 Flash:8MB SRAM:?kB
以下は動作しませんでした。
・T-Watch_2020
・Wio Terminal
スケッチ
// HelloWorld.ino
#include <M5Unified.h> // M5Unifiedライブラリを使用
uint32_t count; // 表示用count変数
void setup() {
auto cfg = M5.config(); // M5設定用の構造体を代入
M5.begin(cfg); // M5本体の初期化
M5.Lcd.setTextSize(2); // テキストサイズ(倍)
M5.Lcd.println("HelloWorld"); // 画面に表示
Serial.println("HelloWorld"); // シリアルモニターに表示
count = 0; // countを初期化
}
void loop() {
M5.Lcd.printf("COUNT: %d\n", count); // countを画面表示
Serial.printf("COUNT: %d\n", count); // countをシリアル表示
count++; // countを1加算
delay(1000); // 1秒待つ
}
* M5StickCPlusの時、flash memory(3.1Mbyte)のうち、スケッチが13%使用。RAM(328kbyte)のうち、global変数が7%使用、local変数で303kbyte使用可能。(1000byte=1kbyteで計算)