M5StampS3の使い方、端子配列、初期設定、サンプルプログラムで詳しく紹介

M5StampS3の使い方(アイキャッチ)

「M5Stamp S3」について、端子配列から初期設定、基本的な使い方をサンプルプログラムで詳しく紹介します。

「M5Stamp S3」と同じコントローラ「ESP32-S3FN8」を搭載した「AtomS3 Lite」についても以下のリンクで詳しく紹介しています。

AtomS3 Liteの使い方、端子配列、初期設定をサンプルプログラムで詳しく紹介
Atom Liteの高機能版AtomS3 Liteの使い方を,端子配列,開発環境別の初期設定,Atom Liteとの違い等をサンプルプログラムで詳しく紹介します。

Wi-Fi機能はないですが、さらに小型な「ラズパイPico」互換ボード「XIAO RP2040」についても、以下のリンクで詳しく紹介しています。

ラズパイPICO互換ボード XIAO RP2040の使い方
XIAO RP2040のピン配置や端子機能、使い方をMicroPythonとCircuitPythonのサンプルプログラム(ADC,NeoPixel,OLED,PWM,UART)で詳しく紹介します。

スポンサーリンク

1.M5Stamp S3とは

「M5Stamp S3」とは「M5Stack社」製のマイコンボードです。

「Stampシリーズ」は薄型でコンパクトな設計ですが、多くのI/O端子を備えており、これらの端子はA/D変換やタッチスイッチ、シリアル通信用端子として自由に割り付けて使用することができます。

Wi-Fi通信にも対応しており、本体ボタンとフルカラーLEDも搭載、「M5Stamp S3」では端子間隔が2.54mmと1.27mm両方に対応しています。

2.54mmピッチで使用すると最大10個のI/O端子が使用でき、ブレッドボード等を使用する場合はこの使い方になります。

1.27mmピッチで使用する場合は基板実装やピッチ変換基板の使用、リード線のハンダ付けが必要となりますが、この場合は最大で23個のI/O端子が使用できるため拡張性がさらに広がりました。

Groveコネクタは搭載されていませんが、付属品として同梱されているため、半田付けすればGroveコネクタ対応ユニットも使用できます。
スポンサーリンク

2.外観

梱包状態は下画像のように袋に入っています。

M5StampS3の使い方、梱包状態
M5StampS3の使い方、梱包状態

本体や付属品は下画像のようになります。

M5StampS3の使い方、外観

付属品として、説明資料(シール)、ピンヘッダ(2.54mm)、Groveコネクタ、六角レンチが入っています

M5StampS3の使い方、外観

本体正面はボタン付きのカバーで覆われていて、付属の六角レンチで外すことができます。
裏面は基板端子が剥き出しなため、使用中は金属等に触れないよう注意しましょう。

M5StampS3の使い方、外観

付属のピンヘッダを実装すると上画像のようになります。
半田付けは正面カバーを外して行います。

M5StampS3の使い方、外観

通信コネクタとしてUSB Type-Cが実装されています。USBケーブルは付属しないため、別途準備する必要があります。


説明資料には書いていませんが、下画像のようにGroveコネクタを実装することもできます。

M5StampS3の使い方、Groveコネクタ取付

Groveコネクタを実装するには、まず付属の六角レンチを使用して正面カバーを外します。(カバーの加工は先にしておいた方が良いです。)

M5StampS3の使い方、Groveコネクタ取付

上画像のようにコネクタを取り付けて半田付けします。

M5StampS3の使い方、Groveコネクタ取付

カバーの加工は注意が必要です。私は失敗しました(泣)。
カバーを外した状態で上画像程度のサイズのニッパーで切ろうとすると割れます・・・。
カバーは先に本体につけたまま加工しておいた方がUSBが壁になるので割れにくいと思います。

M5StampS3の使い方、Groveコネクタ取付

コネクタを実装すると上画像のようになります。
用途に応じて実装して使用しましょう。
(割れたカバーは接着剤で着けましたw)

ピンヘッダーやGroveコネクタは半田付けしなくても差し込むだけでそれなりに保持されているため、動作確認程度なら使えないこともないですが、バラツキもあり接触不良(特に通信)でうまく動作しないことが多いため、半田付けして使うことをおすすめします。
スポンサーリンク

3.基本仕様

基本的な仕様は下表のようになります。

仕様(Resources)詳細内容(Parameters)
コントローラ(MCU)ESP32-S3FN8
DCDCコンバータMUN3CAD01-SC
メモリ(Flash)8MB
電源電圧(Input voltage)5V
フルカラーLED(RGB)WS2812B-2020(G21) x 1
本体ボタン(Button)Programmable physical button(G0) x 1
通信アンテナ(Antenna)2.4G 3D antenna
内蔵機能
(Module resource interface)
Touch sensor,
SD/SDIO/MMC master controller,
SPI, SDIO/SPI slave controller, EMAC,
motor PWM, LED PWM,
UART, I2C, I2S, GPIO, pulse counter
入出力端子(IO interface)x23G0/G1/G2/G3/G4/G5/G6/G7/G8/G9
/G10/G11/G12/G13/G14/G15
/G39/G40/G41/G42/G43/G44/G46
端子接続仕様(Connection method)SMT/DIP (pitch 2.54mm and 1.27mm)/Jump Wire
使用温度(Operating temperature)0°C to 40°C
製品サイズ(Product Size)26mm × 18mm × 5mm
梱包サイズ(Package Size)136mm × 92mm × 13mm
製品重量(Product Weight)3.2g
梱包重量(Package Weight)7.5g

4.端子配列

本体基板には1.27mmと2.54mmピッチのピンヘッダ等が実装できるようになっています。
全ての端子を使用したい場合は1.27mmピッチ、ブレッドボード等を使用して便利に使いたい場合は2.54mmピッチでの使用が良いと思います。

・1.27mmピッチで使用した場合

1.27mmピッチで使用すると全ての端子を使用することができます。端子配列は下画像のようになります。
※メーカーサイト(https://docs.m5stack.com/en/core/StampS3)より抜粋

M5StampS3の使い方、端子配列 1.27mmピッチ

・2.54mmピッチで使用した場合

2.54mmピッチで使用すると下画像のように使用できる端子は制限されます。
それでも10個の多機能なI/O端子を使用することができます。

M5StampS3の使い方、端子配列 2.54mmピッチ

・入力/出力:入出力端子として使用可能
・ADC:アナログ入力(12ビットA/D変換)として使用可能
・Touch:タッチスイッチとして使用可能
・SDA・SCL:I2C通信のデフォルト端子(プログラムで他の入出力端子に割り付けての使用も可)
・TXD・RXD:UART通信のデフォルト端子(プログラムで他の入出力端子に割り付けての使用も可)


多くの端子でタッチスイッチ機能が使用できます。
「AtomS3 Lite」で使ってみましたが意外に使えたので、以下のリンクで使い方を詳しく紹介しています。

Arduinoタッチスイッチの使い方、M5Stack AtomS3 Lite使用
標準のタッチスイッチ機能が意外と使える!Arduinoコマンドで簡単な使い方から感度調整方法までサンプルプログラムで詳しく紹介。使った事ない人必見です!
端子G0は本体ボタンと共用になっています。出力設定もできますがボタンを押した時に短絡状態になると思われるので、使用する場合は入力専用として使いましょう。
(アナログ入力設定はできません)
基板製造ならPCBgogoバナー2

5.端子機能詳細

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

M5StampS3の使い方、端子機能一覧表
I/Oの「pu」はプルアップ可能な端子を表します。
実装されているコントローラの「ESP32-S3FN8」はJTAGによるデバッグに対応しています。
JTAGとは「ジョイント・テスト・アクション・グループ(Joint Test Action Group)』の略語で、ボード・テストやデバッグ等のために使用される標準的なハードウェアインターフェースです。
JTAGでは、CPU内の様々なコンポーネントをテストし、診断することができます。
マイコンボードでは、JTAGポートを通じて外部のデバッグツールと接続することができ、プログラムのデバッグや書き込み、メモリの内容の確認や変更、状態の監視等を行うことができます。

6.開発環境別初期設定、使い方

開発環境として「ArduinoIDE」と「PlatformIO」での使い方を「初期設定」から必要な「ライブラリ」の追加、「プログラムの書き込み」方法まで詳しく紹介します。

・Arduino IDE

「Arduino IDE」を使用した「M5Stamp S3」の使い方を紹介します。
手軽に動作確認したい場合は「ArduinoIDE」、本格的にプログラミングするならこの次に紹介する「PlatformIO」がおすすめです。

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

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

ArduinoIDEのインストールから初期設定までは「M5Stackシリーズ」で共通です。

ArduinoIDEで「M5Stack」の初期設定完了後に以下の手順で、使用する「ボード選択」と「ライブラリの追加」「通信ポートの確認」を行なって「書き込み」を行います。

ボード情報の更新(インストール)

まずはボード情報を最新のものに更新(最新バージョンのインストール)しておきましょう。
下画像のように[ツール]→[ボード:”(ここは環境によって異なります)”]→[ボードマネージャ]をクリックしてください。

AtomS3 Liteの使い方ArduinoIDEの初期設定

下画像のようなウインドウが表示されたら検索窓に「m5stack」と入力すると「M5Stack」が表示されるので[バージョンを選択]をクリックし、一番上のバージョンを選択します。

M5StampS3初期設定ArduinoIDE

バージョンを選択したら[インストール]をクリックします。

M5StampS3初期設定ArduinoIDE

更新には結構時間がかかるのでしばらく待ちましょう。
以下のようにバージョンが変更されれば更新完了です。

M5StampS3初期設定ArduinoIDE
バージョンは頻繁に更新されるためバージョン番号は上画像と異なる場合があります。
また、バージョンによってはうまく動かない時もあるため、場合によっては古いバージョンで動作確認すると動くこともあります。

ライブラリの追加

次にライブラリの追加を行います。
「M5Stamp S3」を動かすために最低限必要なライブラリは本体のフルカラーLEDを制御するための「FastLED」だけです。

ライブラリを追加するには下画像のように[ツール]→[ライブラリ管理]をクリックします。

AtomS3 Liteの使い方ArduinoIDEの初期設定

下画像のようなウインドウが表示されたら検索窓に「fastled」と入力します。
「FastLED」が表示されたら[インストール]をクリックします。

M5StampS3初期設定ArduinoIDE

以上でライブラリの追加は完了です。必要に応じて他のライブラリをインストールしてください。

使用するボード選択

次にボードの選択を行います。
下画像のように[ツール]→[ボード:”(ここは環境によって異なります)”]→[M5Stack Arduino]→[STAMP-S3]をクリックして選択します。

M5StampS3初期設定ArduinoIDE
「STAMP-S3」が表示されない場合は「ArduinoIDE」を一度閉じて、再度開いてから確認してみましょう。

通信ポートの選択

最後に通信ポートの選択を行います。
「M5Stamp S3」をUSBケーブルでパソコンと接続します。

初めて接続する場合はUSBのセットアップが行われます。
パソコン画面の右下に下画像のような表示(すぐ消えます)が確認できれば使用可能な状態となります。

M5StampS3初期設定ArduinoIDE
既に接続済みの場合でも、ボードの更新を行なった後には再度接続し直した方が良いです。うまく認識しない場合は「ArduinoIDE」を一度閉じて、再度開いてから確認してみましょう。

次に、下画像のように[ツール]→[シリアルポート]→[COM番号(番号は環境によって異なります)(M5Stack-ATOMS3)]をクリックして選択します。

M5StampS3初期設定ArduinoIDE
私の環境ではCOM番号の横に(M5Stack-ATOMS3)と表示されていましたが、そのまま選択して問題なく書き込みできました。

以上で初期設定は完了です。

プログラムの書き込み

プログラムの書き込みは下画像のように、プログラムを作成またはコピペ(コピー&ペースト)して[→]アイコンをクリックします。

サンプルプログラムは「こちら」を使用してください。

M5StampS3初期設定ArduinoIDE

画面下部に「ボードへの書き込みが完了しました」と表示されたら書き込み完了です。

M5StampS3初期設定ArduinoIDE

以上が「ArduinoIDE」を使用した初期設定から書き込みまでの手順です。


 ・PlatformIO

「PlatformIO」を使用した「M5Stamp S3」の初期設定から書き込み方法まで紹介します。
本格的にプログラミングするなら書き込みが早い「PlatformIO」がおすすめです!

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

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

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

ボード情報の更新

まずは下画像のように「PlatformIO」の画面左下の「ホーム」アイコンをクリックして「HOME」画面を表示させます。

AtomS3 Liteの使い方PlatformIOの初期設定

次にボード情報更新のため、下画像のように[Platforms]アイコンのクリックで表示される画面の[Updates]をクリックし「Espressif32」の欄に表示されている[Update to *.*.*(バージョン番号は異なる場合があります)]ボタンをクリックします。

アップデートが始まりますが結構時間がかかるのでしばらく待ちましょう。

AtomS3 Liteの使い方PlatformIOの初期設定
「Updates」に「Espressif32」が表示されていない場合は「Installed」からインストールを行なってください。

新規プロジェクトの作成

次に[Home]アイコンをクリックして、下画像のように[New Project]をクリックします。

AtomS3 Liteの使い方PlatformIOの初期設定

下画像のようなウインドウが表示されるので「Name:」に任意のファイル名(ここではStampS3)を入力します。

「Board:」に「esp32-s3-devkit」を入力すると、その下に「Espressif ESP32-S3-DevKitC-1-N8」が表示されるのでこれを選択して[Finish]ボタンをクリックします。

M5StampS3初期設定PlatformIO

ライブラリの追加

「M5Stamp S3」を動かすために最低限必要なライブラリは本体のフルカラーLEDを制御するための「FastLED」だけです。

ライブラリを追加するには下画像のように[Libraries]アイコンをクリックして、検索窓に「fastled」を入力し[虫眼鏡]アイコンをクリックします。

「FastLED」ライブラリが表示されるので、これをクリックします。

M5StampS3初期設定PlatformIO

下画像のような画面が表示されたら[Add to Project]ボタンをクリックします。

M5StampS3初期設定PlatformIO

下画像のようなウインドウが表示されたら[Select a project]をクリックしてドロップダウンリストから先程作成したプロジェクト名(ここではProjects\StampS3)を選択します。

M5StampS3初期設定PlatformIO

プロジェクトを選択したら[Add]ボタンをクリックします。

M5StampS3初期設定PlatformIO

しばらく待って、画面右上に「Congrats!」と表示されたらライブラリの追加完了です。

M5StampS3初期設定PlatformIO

プログラムの書き込み

プログラムを作成またはコピペ(コピー&ペースト)して書き込みを行う方法は以下になります。

[ファイル]アイコンをクリックすると下画像のようにファイルの一覧が表示されます。
その中の[src]から[main.cpp]をクリックすると右ウインドウに「main.cpp」ファイルが開きます。

M5StampS3初期設定PlatformIO

「main.cpp」には最初から雛形のプログラムが書かれていますが、使用しない場合は消してから作成、または下画像のようにコピペします。

サンプルプログラムは「こちら」に準備してあります。

M5StampS3初期設定PlatformIO

プログラムの書き込みを行うには、下画像のように画面左下の[→]アイコンをクリックすると書き込みが始まります。

M5StampS3初期設定PlatformIO

画面下部に「SUCCESS」と表示されたら書き込み完了です。

M5StampS3初期設定PlatformIO

以上が「PlatformIO」を使用した初期設定から書き込みまでの手順です。

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

基本的な「Lチカ(LEDを点灯/消灯させる)」のサンプルプログラムを以下に準備しました。

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

#include <FastLED.h>    // フルカラーLED制御用

#define PIN_BUTTON 0    // 本体ボタンの使用端子(G0)
#define PIN_OUTPUT 43   // 外部LED
#define PIN_LED    21   // 本体フルカラーLEDの使用端子(G21)
#define NUM_LEDS   1    // 本体フルカラーLEDの数

CRGB leds[NUM_LEDS];    // FastLEDで制御するLEDの数を指定して使用する準備

// 変数宣言
bool state = false;     // 本体ボタン状態格納用
bool led_value = false; // LED状態格納用

// 初期設定 -------------------------------------------------
void setup() {
  USBSerial.begin(9600);        // USBシリアル通信初期化
  // FastLEDの初期設定
  FastLED.addLeds<WS2812B, PIN_LED, GRB>(leds, NUM_LEDS); // LED型式、使用端子、LED数を指定(定型文)
  // 入出力端子設定
  pinMode(PIN_BUTTON, INPUT);   // 本体ボタン(入力)(INPUT_PULLUPでプルアップ指定)
  pinMode(PIN_OUTPUT, OUTPUT);  // 外付けLED(出力)
  // LED初期点灯色指定
  leds[0] = CRGB(40, 40, 40);   // 白色(赤, 緑, 青)※3色それぞれの明るさを0〜255で指定
}
// メイン ---------------------------------------------------
void loop() {
  // 本体ボタン処理
  if (digitalRead(PIN_BUTTON) == LOW && state == false) { // 本体ボタンONで state が false なら
    state = true;                     // state を true に
    led_value = !led_value;           // LED状態反転
    if (led_value == true) {          // led_value が true なら
      leds[0] = CRGB(0, 60, 60);      // フルカラーLED水色指定(赤, 緑, 青)※3色それぞれの明るさを0〜255で指定
      digitalWrite(PIN_OUTPUT, LOW);  // 外部LED点灯
    } else {                          // led_value が true なら
      leds[0] = CRGB(40, 40, 40);     // フルカラーLED白色指定(赤, 緑, 青)※3色それぞれの明るさを0〜255で指定
      digitalWrite(PIN_OUTPUT, HIGH); // 外部LED消灯
    }
    USBSerial.println("ON!");         // USBシリアル出力
  }
  if (digitalRead(PIN_BUTTON) == HIGH) {  // 本体ボタンOFFなら
    state = false;                        // ボタン状態を false に
  }
  FastLED.show(); // フルカラーLED指定色で点灯
  delay(50);      // 遅延時間
}

8.動作確認

動作確認はブレッドボードを使用して、LEDとスイッチを以下のような配線図で接続して行います。

M5StampS3の使い方、動作確認(配線図)
抵抗は330Ω〜510Ω程度で、使用するLED(発光ダイオード)に合わせて選定してください。

LEDについては以下のリンクで詳しく紹介しています。

LED(発光ダイオード)の使い方。Lチカでの動作確認方法
LEDが登場するまで光源としては白熱電球が主流でした。白熱電球は電気を熱に変えて光りますがLEDは+と-の電気が結合する時のエネルギーで光り、電気を直接光に変換するため発光効率が非常に良いです。

実際に動作確認を行なったものは下画像のようになります。

M5StampS3の使い方、動作確認

USBコネクタを接続して電源を供給すると、本体LEDが白色に点灯します。

M5StampS3の使い方、動作確認

本体ボタンを押すとLEDが点灯します。
もう一度押すと消灯します。

M5StampS3の使い方、動作確認

本体LEDは水色に点灯し、同時に外付けの赤色LEDも点灯します。

M5StampS3の使い方、動作確認

外付けのスイッチは本体ボタンと共用の「G0」端子に接続しているので、本体ボタンと同様にLEDをON/OFFすることができます。

9.まとめ

「M5Stamp S3」の仕様や端子配列から初期設定、基本的な使い方をサンプルプログラムで詳しく紹介しました

「M5Stamp S3」は「M5Stack社」のマイコンボードで、同社の「Stampシリーズ」は薄型でコンパクトな設計で多くの多機能なI/O端子を備えています。
その中でも、今回紹介した「M5Stamp S3」では端子構成に2.54mmピッチと共用の1.27mmピッチを採用しており、特に多くの端子が使用できます。

2.54mmピッチで使用すると最大10個、1.27mmピッチで最大23個のI/O端子が使用でき、これらの端子はA/D変換やタッチスイッチ、シリアル通信用端子として自由に割り付けて使用することができます。

Wi-Fi通信にも対応しており、本体ボタンとフルカラーLEDも搭載しているため、マイコンボードとしての機能をフルに活用しながら様々なアイデアを形にすることができます。

今回はシンプルな「Lチカ」動作だけの紹介でしたが、Wi-Fiやシリアル通信、有機ELディスプレイ(OLED)等の使い方も紹介していきたいと思います。

「M5Stamp S3」と同じコントローラ「ESP32-S3FN8」を搭載した「AtomS3 Lite」についても以下のリンクで詳しく紹介しています。

AtomS3 Liteの使い方、端子配列、初期設定をサンプルプログラムで詳しく紹介
Atom Liteの高機能版AtomS3 Liteの使い方を,端子配列,開発環境別の初期設定,Atom Liteとの違い等をサンプルプログラムで詳しく紹介します。

コメント

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