M5StickS3の使い方、初期設定、サンプルプログラム、旧モデルとの違いを詳しく紹介

M5StickS3アイキャッチ
スポンサーリンク

「M5Stick」シリーズの最新版「M5StickS3」について、旧モデルとの違いを確認しながら、初期設定や端子配列、機能、使い方をサンプルプログラムで詳しく紹介します。

今回は基本的な機能や端子配列の確認を行い、サンプルプログラムでは液晶表示やバッテリー状態の確認から、入出力やアナログ入力、PWM出力の使い方を確認していきます。
次回はシリアル通信や無線(Wi-Fi、Bluetooth)通信、赤外線通信、音声録音や録音データの再生等を順次紹介できればと思っています。

旧モデルの 「M5StickC Plus」 は生産終了ですが、 その派生として IMU(振動センサ)を省いた廉価版の 「M5StickC Plus-SE」 が新たに販売されています。

一方で、「M5StickC Plus2」 は完全に生産終了となり、 今後はこの 「M5StickS3」 が「Stickシリーズ」の主力モデルとなっていくと思います。


旧モデルの「M5StickC Plus/Plus2」については以下のリンクで詳しく紹介しています。

M5StickC Plusの使い方、初期設定、サンプルプログラム、M5StickCとの違い等を詳しく紹介
M5StickC PlusをArduino IDEやPlatformIOで使うための初期設定やサンプルプログラムでの動作確認の方法です。ビジュアルプログラミングのUiFlowの初期設定についても紹介します。
M5StickC Plus2の使い方、初期設定、旧モデルとの違い等サンプルプログラムで詳しく紹介
M5StickCの最新版M5StickC Plus2について、旧モデルとの違いを確認しながら、初期設定や端子配列、機能、使い方をサンプルプログラムで詳しく紹介します。
スポンサーリンク

1.M5StickS3とは

「M5StickS3」とは「M5Stackテクノロジー社」のマイコンボードで「M5Stick」シリーズの最新バージョンです。

旧モデルと同様に、1.14インチTFT液晶画面や入出力端子、ボタン、スピーカー、3軸ジャイロ+3軸加速度センサ、マイク、バッテリーが内蔵されています。

旧モデルとの大きな違いは、赤外線が送信だけでなく受信もできるようになり、スピーカーは圧電ブザーではなく音声も再生できるスピーカーアンプが内蔵されました。さらに、出力端子は8ピンから16ピンに倍増し、「M5Stack」シリーズ並みの拡張性があります。

他にもシリアル通信はもちろんWiFiやBluetooth通信にも対応しており、これらの機能をプログラムで自由に使用することができるため、電子工作やデータ表示器、IoT機器の製作等いろいろなアイデアを形にすることができます。

プログラムは「C言語」ベースの「ArduinoIDE」「PlatformIO」や「ビジュアルプログラミング(UiFlow)」「Python(MicroPython)」さらに、「AiFlow」 という自然言語で指示を書くとMicroPythonコードを自動生成してくれる最新の「AIプログラミング環境」も使用することができます。

スポンサーリンク

2.外観

外観については以下のようになります。

梱包状態

梱包状態は以下になります。今までのプラスチックのケースではなくボール紙での梱包になります。
本体のみで、付属品のType-Cケーブルはありません。

M5StickS3梱包状態
M5StickS3梱包状態

本体外観

本体の外観は以下になります。

M5StickS3外観
M5StickS3外観
M5StickS3外観

正面には「ボタンA」がありますが、旧モデルに比べてかなり押しやすくていい感じです。

M5StickS3外観

背面にはいつものように各機能の接続図がありますが、機能が増えすぎて、ここまで来ると流石に読み取れないですね^^;

M5StickS3外観

本体上面には赤外線送受信ダイオードとマイク、8ピンから16ピンに倍増した出力端子が配置されています。

M5StickS3外観

本体底部は旧モデルと同様にUSBーCとGROVEコネクタが配置されています。

M5StickS3外観

左側面には「電源(ブート切替兼用)ボタン」があります。

M5StickS3外観

右側面には「ボタンB」がありますが、サイズが大きくなり、今までで一番押しやすいと思います。

HATユニットの接続

HATユニットは基本的にM5StickC用のものが使用できますが、下写真のように本体と密着するタイプは、本体形状が異なるため、取り付け時に隙間ができるものがあります。動作については問題ありません。

M5StickS3 HATユニット

公式サイトでは非対応となっている「エンコーダユニット」ですが動作はします。

M5StickS3 HATユニット

横から見ると形状の違いから隙間ができます。干渉部をカットすれば問題なく使用できそうです。

スポンサーリンク

3.基本仕様(旧モデルとの比較)

基本仕様について、旧モデルと比較した以下表で紹介します。
以下表の太文字が「M5StickS3」の仕様です。

StickS3StickC-Plus2StickC-Plus2
コントローラ SoCESP32-S3-PICO-1-N8R8ESP32-PICO-V3-02ESP32-PICO-D4
Flash8MB8MB4MB
PSRAM8MB Octal2MB Quad–
SRAM512KB520KB520KB
Battery250mAh200mAh120mAh
Display1.14インチ LCD 135×240 ST7789P31.14インチ LCD 135×240 ST7789V21.14インチ LCD 135×240 ST7789V2
内蔵LED–RED LED x1RED LED x1
Audio CodecES8311––
MICMEMSSPM1423SPM1423
SpeakerAW8737 + 8Ω@1WBuzzerBuzzer
ButtonButton x 2Button x 3Button x 2
IMUBMI270MPU6886MPU6886
RTC–BM8563BM8563
電源管理ICM5PM1–AXP192
赤外線送信+受信(VSOP38338)送信のみ送信のみ
USBドライバUSB-OTGCH9102CH552
Hat 出力端子2.54-16P2.54-8P2.54-8P

旧モデルとの大きな違いは以下です。
・赤外線:送信だけでなく受信(38kHz)も可能。
・スピーカー:音声も再生できるスピーカーアンプ搭載。
・Hat 出力端子:8ピンから16ピンに倍増。
・本体内蔵LEDとRTCは無くなりました。

スポンサーリンク

4.端子配列

端子配列は下画像のようになります。
端子配列について旧モデルとの最大の違いは、出力端子が8ピンから16ピンに倍増したことです。

背面側横一列の端子は旧モデルとほぼ同じ配列でHAT Untiも従来通り使用可能です。

正面側横一列の端子は汎用性の高い「I/O(入出力)端子」で「G1~G8端子」はアナログ入力が使用でき、「G43, G44端子」はシリアル通信(UART0)に使用できます。

M5StickS3 端子配列、機能
本体ボタンA,Bの配置は従来通りですが、どちらも押しやすくなったと思います。
電源ボタンは「単押し」で電源ON、「ダブルクリック」で電源OFFです。
また、ブートモード切り替えボタンと兼用になっており「長押し」で書き込みモードに切り替わります。(※電源ボタンは入力ボタンとして使用することはできません。)
本体LEDが無くなったのは残念ですが、赤外線は送信だけではなく受信(38kHz)もできるようになりました。
スポンサーリンク

5.端子機能詳細

端子機能詳細は以下のようになります。

M5StickS3 端子機能詳細
外部端子は旧モデルの8ピンから16ピンに増え、電源系を除いた11ピン全てが「汎用入出力端子(GPIO)」として使用できます。
 G1~G8:アナログ入力(ADC)使用可。
 G43, G44:シリアル通信(UART0)使用可。
 ※G0端子は10kΩの抵抗で3.3Vにプルアップされています。
・GROVEコネクタは「GPIO/ADC/I2C」と幅広い用途に使用できます。
・赤外線通信は送信だけでなく、受信もできるようになりました。
 G46:赤外線送信
 G42:赤外線受信(VSOP38338)※搬送波周波数38kHz
スポンサーリンク

6.開発環境別初期設定、ライブラリ

開発環境としては「ArduinoIDE」や「PlatformIO」、ビジュアルプラグラミングができる「UiFlow」が使用できます。

手軽に動作確認したい場合は「ArduinoIDE」、本格的にプログラミングするなら「PlatformIO」、ノーコードの「ビジュアルプログラミング」でプログラミング体験してみたい方は「UiFlow」がおすすめです。

・Arduino IDE

「Arduino IDE」のインストール方法や初期設定については以下のリンクで詳しく紹介しています。

M5StackシリーズのためのArduino IDEのインストール方法と初期設定、使い方紹介
ArduinoIDEバージョン2のインストール方法から初期設定、スケッチ例の書き込み、コピペでの使い方まで詳しく紹介します。インストールはArduinoでも同じです。
ArduinoIDEのインストールから初期設定までは「M5Stackシリーズ」で共通です。

ボードマネージャ、ライブラリの設定

「ArduinoIDE」で「M5stickS3」を使用するには以下のような設定を行います。

・ボードの更新:
 [ボードマネージャ]から「M5Stack」を最新版にアップデート。
  ※「バージョン 3.3.9」で動作確認済。
・必要なライブラリの準備:
 [ライブラリを管理(ライブラリマネージャ)]から以下のライブラリをインストール。
  ① M5Unified ※「バージョン 0.2.23」で動作確認済。
  ② M5GFX ※「バージョン 0.2.30」で動作確認済。

ポートの設定

「M5StickS3」本体とパソコンをUSBケーブルで接続してポートの設定を行います。
下画像のように電源ボタンを長押しすると、電源ボタンのLED緑が点滅し「ブートモード」に切替ります。

M5StickS3ブートモードへの切替

この状態で下画像のように[ツール]→[ポート:(COM番号は環境によります)]をクリックすると[COM番号(番号は環境によります)(ESP32 Family Device,Ozobot DRVKit)]のように表示されるためこれをクリックします。

M5StickS3ポートの設定

これで初期設定は完了です。スケッチを作成して書き込んでみましょう。


 

・PlatformIO

「PlatformIO」で「M5stickS3」を使用するには以下のような設定を行います。

・Platformsの更新:
 [ホーム]→[Platforms]→[Updates]から「Espressif 32」を最新版にアップデート。
  ※「バージョン 7.1.3」で動作確認済。
・ボード設定:
  Espressif ESP32-S3-DevKitC-1-N8
・必要なライブラリの準備:
 [ホーム]→[Libraries]から以下のライブラリをインストール。
  ① M5Unified ※「バージョン 0.2.22」で動作確認済。
  ② M5GFX ※「バージョン 0.2.29」で動作確認済。

「platformio.iniファイル」の内容は以下のようになります。
「公式サイト」より抜粋。

[env:m5stack-sticks3]
platform = espressif32@6.12.0
board = esp32-s3-devkitc-1
framework = arduino
board_build.arduino.partitions = default_8MB.csv
board_build.arduino.memory_type = qio_opi
build_flags =
    -DESP32S3
    -DBOARD_HAS_PSRAM
    -mfix-esp32-psram-cache-issue
    -DCORE_DEBUG_LEVEL=5
    -DARDUINO_USB_CDC_ON_BOOT=1
    -DARDUINO_USB_MODE=1
lib_deps =
    M5Unified=https://github.com/m5stack/M5Unified
    M5PM1=https://github.com/m5stack/M5PM1 
上記の「lib_deps = 」は最新のライブラリをインストールする仕組みです。
以下のように「GitHub」へのアドレスを指定して使用します。
lib_deps =
    M5Unified=https://github.com/m5stack/M5Unified
  M5PM1=https://github.com/m5stack/M5PM1
この書き方を使用するには「gitのインストール」が必要です。

 

「PlatformIO」のインストール方法は以下のリンクで詳しく紹介しています。
別途「VS Code」と「Python」のインストールも必要です。

インストール順は「① VS Code」「② Python」「③ PlatformIO」です。

Visual Studio Code (VSCode)のインストールと日本語化から基本設定まで紹介
簡単高機能エディタ「VS Code(Visual Studio Code)」のインストールから初期設定まで紹介。 様々な...
pythonのダウンロードからインストール方法の紹介
人気のプログラミング言語 python のインストール方法の紹介です。python はアプリ開発やWebサイト構築、ディ...
PlatformIO のダウンロードからインストールの紹介。Arduino IDEより速い!高性能!
Platform IOとは VSCode(エディタ)で動作する、IDEと呼ばれる統合開発環境です。 Arduino IDEでも開発できますが、見やすさ、編集のしやすさ、書込みスピード、どれをとってもPlatform IOの方がおすすめです

詳しい手順は旧モデルと同じで、以下のリンクで詳しく紹介しています。

M5StickC Plusの使い方、初期設定、サンプルプログラム、M5StickCとの違い等を詳しく紹介
M5StickC PlusをArduino IDEやPlatformIOで使うための初期設定やサンプルプログラムでの動作確認の方法です。ビジュアルプログラミングのUiFlowの初期設定についても紹介します。

・UiFlow(ビジュアルプログラミング)

「UiFlow」とは「M5Stackシリーズ」のための「ビジュアルプログラミング」環境で、ブラウザ上で動作します。

「ビジュアルプログラミング」とは、ブロックを組み合わせるようにプログラムを作成することができるプログラミング方法で「日本語の説明が表示されたブロック」があらかじめ用意されており、それらを組み合わせてプログラムを作成できるため、初心者でも感覚的にプログラミングを体験することができます。

実際に「ボタンを押すと液晶画面の色を変える」プログラムは下画像のようになります。

UiFlow2

 

以下のリンクから「UiFlow2.0」の開発画面をブラウザで開くことができます。

UIFlow 2.0
UIFlow2 is a graphical programming IDE that is easy for ever...

ページが開くと以下のような画面が表示されます。

UiFlow2
「UiFlow」には「UiFlow1.0」と「UiFlow2.0」がありますが「M5StickS3」でビジュアルプログラミングを行うには「UiFlow2.0」を使用します。

「UiFlow」を使用するには、本体にファームウェアを書き込む必要があります。(工場出荷状態では書き込み済み)
ファームウェアの書き込みには以下リンク先でダウンロードできる「M5Burner」を使用します。

m5-docs
The reference docs for M5Stack products. Quick start, get th...

UiFlow2.0の使い方は基本的にはUiFlow1.0と同じです。
UiFlow1.0の使い方やM5Burnerの使い方は以下のリンクで詳しく紹介しています。

最新版UIFlowの使い方。初期設定から動作確認まで詳しく紹介
M5Stack CORE2,StickC,ATOM LITE等でビジュアルプログラミング(ブロックプログラミング)の開発環境UIFlowを使うための使い方を詳しく紹介します。
他にも「生成AI」のサポートを受けながら、プログラミングを行う「AIFlow」という開発環境もあります。これについてはまた紹介していきたいと思います。
スポンサーリンク

7.サンプルプログラム(コピペ)

サンプルプログラムは基本的な動作を確認できるように以下の2種類準備しましたので、コピペで貼り付けて書き込んでみましょう。

・デモ動作1(液晶表示、ブザー、バッテリー)

デモ動作1では本体だけで確認できる動作を確認していきます。

下画像のように基本的な文字や線等の液晶表示や、バッテリーの容量等の情報を取得して表示しています。
また、本体ボタンA(正面)を押すとブザーが鳴り画面が一瞬青くなります。本体ボタンB(側面)を押すと違う音色でブザーが鳴り、画面が一瞬赤くなる動作が確認できます。
M5StickS3サンプルプログラム1

液晶表示には「M5GFX」ライブラリを使用しています。
「M5GFX」の使い方は以下のリンクで詳しく紹介しています。

M5Stack 液晶表示の使い方まとめ - 完全版 -(Arduinoコマンド)
M5Stackの液晶の使い方を初期設定から文字表示(print,draw関数)中央揃えや右揃え,フォント,線,図形,M5GFXのスプライト等わかりやすくまとめました。
私の個体ではUSB接続したままでも充電のON/OFFが繰り返されているようで、なかなか充電が進みませんでした。この個体の問題か、何か設定があるのか現時点では不明ですが、電源をOFFにしてUSB接続しておくと充電されていきました。

サンプルプログラムは以下になります。コピペで貼り付けて書き込んでください。
※下コード(黒枠)内の右上角にある小さなアイコンのクリックでもコピーできます。

#include <M5Unified.h>  // M5Stackシリーズ用共通ライブラリ
#include <M5GFX.h>      // グラフィックライブラリ(Canvas使用時はインクルード必要)

M5Canvas canvas(&M5.Display); // メモリ描画領域の設定

// 初期設定 *****************************************************
void setup() {
  auto cfg = M5.config(); // M5Unifiedの設定を取得
  M5.begin(cfg);          // M5Unifiedの初期化
  
  M5.Speaker.setVolume(150);  // ブザー音量設定(0~255)

  M5.Display.begin();
  M5.Display.setRotation(1);        // 必要なら画面回転
  M5.Display.fillScreen(TFT_BLACK); // 初期画面

  canvas.createSprite(M5.Display.width(), M5.Display.height()); // メモリ描画サイズを設定
  canvas.setFont(&fonts::lgfxJapanGothicP_28);  // フォント設定
  canvas.setTextSize(1);          // 文字サイズ
  canvas.setTextColor(TFT_WHITE); // 文字色

  M5.Power.setExtOutput(true);    // 外部電源を有効化(安定化)
}

// メインループ *************************************************
void loop() {
  M5.update();  // ボタン状態更新
  canvas.fillScreen(TFT_BLACK); // 背景色 黒

  bool isCharging = M5.Power.isCharging();  // 充電状態取得
  int vol_per = M5.Power.getBatteryLevel(); // バッテリー残量パーセント取得
  int vol = M5.Power.getBatteryVoltage();   // バッテリー電圧取得

  //  本体ボタン処理
  if (M5.BtnA.wasPressed()) {
    canvas.fillScreen(TFT_BLUE);  // 背景色 青
    M5.Speaker.tone(3000, 100);  // ブザー(周波数, 音の長さ)
  }
  if (M5.BtnB.wasPressed()) {
    canvas.fillScreen(TFT_RED); // 背景色 赤
    M5.Speaker.tone(1000, 200);  // ブザー(周波数, 音の長さ)
  }
  
  //  ディスプレイ表示処理
  canvas.drawString("M5StickS3 TEST", 0, 0);    // タイトル
  canvas.drawFastHLine(0, 32, 230, WHITE);      // 境界線
  canvas.setCursor(0, 34);                      // 座標指定
  canvas.setTextColor(TFT_WHITE);               // 文字色
  canvas.printf("Charging: %s \n", isCharging ? "Yes" : "No");  // 充電状態表示
  canvas.printf("Bat_level: %d%%\n", vol_per);  // バッテリー残量パーセント表示
  canvas.printf("Bat_volt: %d%mV\n", vol);      // バッテリー電圧表示
  canvas.pushSprite(5, 0);   // 画面に反映
  
  delay(200);  // 遅延時間
}

 

・デモ動作2(入出力、ADC、PWM)

デモ動作2では基本的な「入出力端子の使い方」の確認と、「アナログ入力とPWM出力の使い方」が確認できます。

ボリューム操作することでアナログ値を変化させ、その値に応じたPWM波形を出力することでLEDの明るさを変化させています。

動作確認の様子は以下写真のようになります。
GROVEコネクタに「Angle Unit(M5Stack製)」を接続し、G0端子にスイッチを、G1端子に青色LED(抵抗内蔵)、G8端子に赤色LED(抵抗内蔵)を接続しています。

M5StickS3サンプルプログラム2
M5Stack 回転角ユニット
共立電子産業株式会社 KYOHRITSU ELECTRONIC INDUSTRY CO.,LTD.
M5StickS3サンプルプログラム2

「正面ボタンA」を押すと画面が青色になりLED青が点灯します。「側面ボタンB」を押すと画面が黒になりLED青が消灯します。

M5StickS3サンプルプログラム2

「G0」の外付けスイッチを押すとLED青が点灯し、もう一度押すと消灯します。

M5StickS3サンプルプログラム2

ボリュームを可変させることで「アナログ入力値」が変化し「PWM出力」でLED赤の明るさを調整できます。

M5StickS3サンプルプログラム2

AD変換値は12bitで最大3.3V、PWM出力のDuty比は10bitとしています。


 

「アナログ入力」と「PWM出力」の使い方は、以下のリンク先で詳しく紹介しています。

アナログ入力(A/D変換)の使い方(Arduinoプログラミング)
Arduinoコマンドを使用した「アナログ入力」の使い方について紹介します。A/D変換とも呼ばれ「A/D」とは「Analog」と「Digital」の頭文字をとったもので、アナログデータをデジタルデータに変換する処理のことを言います。
PWM制御とは?Arduino(ESP32)コマンドで使い方を詳しく紹介
PWM制御の基本動作からArduinoコマンドを使ったプログラミング方法、サンプルプログラムを使用して音(ブザー)と光(LED)で動作確認しながら使い方を詳しく紹介します。

 

サンプルプログラムは以下になります。コピペで貼り付けて書き込んでください。
※下コード(黒枠)内の右上角にある小さなアイコンのクリックでもコピーできます。

#include <M5Unified.h>  // M5Stackシリーズ用共通ライブラリ
#include <M5GFX.h>      // グラフィックライブラリ(Canvas使用時はインクルード必要)

#define IN      0     // 入力端子
#define OUT     1     // 出力端子
#define ADC     10    // アナログ入力端子
#define LED_PIN 8     // PWM の端子番号
#define PWM_CH0 0     // PWM チャンネル
#define PWM_FREQ 1000 // PWM 周波数
#define BIT_NUM 10    // bit10数 10bit (0〜1023)

M5Canvas canvas(&M5.Display); // メモリ描画領域の設定

// 変数宣言
float ad_val;    // アナログ入力値格納用 12bit (0〜4095)
float ad_volt;   // アナログ入力格納電圧換算用 (0〜3.3V)
float duty = 0;  // アナログ入力電圧換算値をPWNのDuty比へ
bool btn_state = false; // 本体ボタンA,Bの状態
bool led_state = false; // LEDの状態
bool state = false;     // ボタン状態の保持

// 初期設定 *****************************************************
void setup() {
  auto cfg = M5.config(); // M5Unifiedの設定を取得
  M5.begin(cfg);          // M5Unifiedの初期化

  // 入出力端子設定
  pinMode(IN, INPUT_PULLUP); // 入力設定(プルアップ)
  pinMode(OUT, OUTPUT);      // 出力設定
  digitalWrite(OUT, LOW);    // 出力初期値

  // アナログ入力設定
  pinMode(ADC, ANALOG); // アナログ入力

  // PWM 初期化
  ledcSetup(PWM_CH0, PWM_FREQ, BIT_NUM); // PWM1出力波形の初期設定(チャンネル、周波数、分解能bit)
  ledcAttachPin(LED_PIN, PWM_CH0);       // チャンネルに対する出力端子を設定

  M5.Display.begin();
  M5.Display.setRotation(1);        // 必要なら画面回転
  M5.Display.fillScreen(TFT_BLACK); // 初期画面

  canvas.createSprite(M5.Display.width(), M5.Display.height());
  canvas.setFont(&fonts::lgfxJapanGothicP_28);  // フォント設定
  canvas.setTextSize(1);
  canvas.setTextColor(TFT_WHITE);
}

// メインループ *************************************************
void loop() {
  M5.update();  // ボタン状態更新

  //  本体ボタン処理
  if (M5.BtnA.wasPressed()) {
    btn_state = true;  // ボタン状態をtrueに
    led_state = true;  // 外部LED状態をtrueに
  }
  if (M5.BtnB.wasPressed()) {
    btn_state = false; // ボタン状態をfalseに
    led_state = false; // 外部LED状態をfalseに
  }

  // 外部スイッチ入力処理
  if (digitalRead(IN) == LOW && state == false) {
    state = true;           // ボタン状態stateをtrue
    led_state = !led_state; // 外部LED状態を反転
  }
  if (digitalRead(IN) == HIGH) { // ボタンCと外部入力がOFFなら
    state = false;          // ボタン状態stateをfalse
  }

  // 外部LED点灯処理
  if (led_state) {
    digitalWrite(OUT, HIGH); // LED点灯
  }
  else {
    digitalWrite(OUT, LOW);  // LED消灯
  }
  
  // アナログ入力処理
  ad_val = analogRead(ADC); // アナログ入力値を取得(0〜4095、12bit)
  ad_volt = 3.3 * (ad_val / 4095);   // アナログ入力電圧(0~3.3V)へ換算
  duty = ad_val * (1023.0 / 4095.0); // 1023Vへ換算
  ledcWrite(PWM_CH0, (int)duty);     // アナログ入力値をDuty比に指定してPWM出力(チャンネル, Duty比)

  //  ディスプレイ表示処理
  if (btn_state) {  // 本体ボタンA,Bの状態true(AがONされた)
    canvas.fillScreen(TFT_BLUE);  // 背景色 青
  }
  else {
    canvas.fillScreen(TFT_BLACK); // 背景色 黒
  }
  canvas.drawString("M5StickS3 TEST", 0, 0);    // タイトル
  canvas.drawFastHLine(0, 32, 230, WHITE);      // 境界線
  canvas.setCursor(0, 34);                      // 座標指定
  canvas.setTextColor(TFT_WHITE);               // 文字色
  canvas.printf("ADC_val:  %.0f\n", ad_val);    // アナログ入力値表示
  canvas.printf("ADC_volt: %.2fV\n", ad_volt);  // アナログ電圧換算値表示
  canvas.printf("PWM_duty: %.0f\n", duty);      // PWM Duty比表示
  canvas.pushSprite(5, 0);   // 画面に反映
  
  delay(100);  // 遅延時間
}
スポンサーリンク

8.まとめ

「M5Stick」シリーズの最新版「M5StickS3」について、旧モデルとの違いを確認しながら、初期設定や端子配列、機能、使い方をサンプルプログラムで詳しく紹介しました。

「M5StickS3」は、従来のM5Stickシリーズを大きく進化させた最新モデルであり、 赤外線受信の追加、スピーカーアンプの搭載、端子数の倍増(8→16ピン) によって、 小型ながらM5Stackシリーズ並みの拡張性を手に入れた点が最大の特徴です。

サンプルプログラムでは、基本的な入出力・液晶表示・ADC・PWMの使い方を紹介しました。
特に「M5Unified+M5GFX」による開発は扱いやすく、Arduino IDE・PlatformIO・UiFlow など複数の環境で柔軟に利用できます。

「M5StickS3」は旧モデル以上に、以下のような幅広い用途に活用できる非常に優秀なマイコンボードと思います。

・小型デバイスの試作
・IoT機器のプロトタイプ
・データ表示器
・センサー連携の電子工作 など

次回は、シリアル通信・Wi-Fi/Bluetooth・赤外線通信・音声録音/再生といった、 より実践的な機能を深掘りしていきますので、ぜひ楽しみにしていてください。

コメント

タイトルとURLをコピーしました