M5Stack は、手のひらに収まり、開封したそのまま使えるハードウェアを製造しています。画面、ボタン、スピーカー、バッテリーがパッケージを開けた時点で揃っています。これはまさに、シミュレータが細部に至るまで正確に再現しなければ役に立たない種類のボードです。ブレッドボードに責任を転嫁できないからです。この記事では、M5Stack ハードウェアがどのように Velxio に搭載されたか、現在何が動作するか、そしてその過程で設けた小さなテストについて説明します。それは、M5Stack 公式のサンプルスケッチが、コードを一行も変更せずにブラウザ上で実行できるかどうか、というテストです。
結論から言うと、実行できます。それでは始めましょう。
無修正で動作する M5Stack 公式ディスプレイテスト
M5Stack は Cardputer ライブラリにディスプレイサンプルを同梱しています。ランダムな色の長方形とテキストが画面全体に散りばめられ、LCD パスがフルスピードで動作していることを素早く確認できるものです。私たちはこれをギャラリーにそのまま掲載しました。

ご自身で試すには:
- velxio.dev/example/cardputer-adv-m5-display を開きます。サインアップは不要です。
- 上部のツールバーで再生ボタンをクリックします。スケッチは、Arduino IDE で使用するのと同じ arduino-esp32 コアと M5Cardputer ライブラリに対してコンパイルされます。コールドビルドには数分かかりますが、ウォームビルドははるかに高速です。
- ボードが起動すると、画面はパネルのフル解像度 240x135 で長方形で埋め尽くされます。
- キーボードをクリックするか、ボードをクリックしてご自身のキーボードを使用し、記事末尾にリストされているキーボードサンプルのいずれかを開くと、キーストロークがスケッチに届くのを確認できます。
このスケッチは、ギャラリーにある 15 個の M5Stack 公式サンプルのうちの 1 つです。Cardputer ADV では、テキストターミナル、ボタン、ブザー、ディスプレイ、IR NEC 送信、シングルキー、マルチキー、テキスト入力、microSD、REPL 推測ゲームのサンプルです。Core では、HelloWorld、Button、Display、Speaker、TFCard です。従来の M5Stack ライブラリを使用していたサンプル(Arduino IDE やその他の環境で、もはや arduino-esp32 3.x コアではコンパイルできないもの)は、M5Stack が現在推奨するライブラリである M5Unified に移植されました。それ以外はすべて手を加えていません。
2 つのボード

M5 Cardputer ADV。 カードサイズのコンピューターです。ESP32-S3、1.14 インチ 240x135 スクリーン、56 キーキーボード、IMU、ES8311 コーデックを介したマイクとスピーカー、IR エミッター、microSD スロット、バッテリーを搭載しています。Velxio では、画面はボード上に描画され、キーボード全体がタイピング可能です(キーをクリックするか、ボードにフォーカスしてご自身のキーボードで入力)。スピーカーはお使いのコンピューターから音を再生し、キャンバスヘッダーの Mic トグルをオンにすると、マイクはお使いのコンピューターのマイクをストリーミングします。その隣の Sensors ボタンは BMI270 IMU を傾け、バッテリーレベルを設定するため、いずれかに反応するコードをテストできます。IR エミッターも応答します。デコードされた送信のたびにボード上のドットが点滅します。microSD はアップロードパネルを備えた実際の FAT カードです。Wi-Fi と MicroPython は動作しますが、BLE 無線はエミュレートされていません。

M5Stack Core (Basic v2.7)。 クラシックな 54x54 mm のスタッカブル ESP32 で、ガラスの背後に 2 インチ 320x240 スクリーン、前面に 3 つのボタン、スピーカー、TF スロット、Grove ポートを備えています。画面は描画され、3 つのボタンはクリック可能で(配線どおりアクティブロー)、スピーカートーンはスケッチの実際のピッチで再生され、TF スロットは実際のカードとして機能します。M-Bus ピンカードはボードの 4 辺すべてに印刷されており、実際のケースと同様に色分けされ、その上のすべてのピンは配線可能なため、Core は外部パーツのホストとして他の DevKit と同様に優れています。
両ボードとも Arduino C++ と MicroPython に対応しており、コンポーネントピッカーにはホバーで表示されるデータシートがあり、ピン配置と M5Stack ショップへのリンクが記載されています。
Chain マトリクス

カタログには 2 つの M5Stack Chain モジュールも含まれています。Chain RGB Matrix(64 個の WS2812E LED)と Chain Mono Matrix(64 個の白色 LED)です。Velxio では、これらは DIN ピン上の通常の WS2812 マトリクスとして駆動されます。これは、ギャラリーの 5 つのサンプルが Arduino Uno から使用する方法です。虹、白スイープ、数字のカウント、バウンスボール、ファイアエフェクトです。実際の UART ベースの Chain プロトコルは現時点ではエミュレートされておらず、今後の課題としてリストに挙げられています。
M5Stack との協業
M5Stack はこの作業をサポートし、ハードウェアを提供しました。これらのボードを便利にしている要素の多くがボード自体に搭載されているため、これは通常以上に重要でした。Velxio の Cardputer ADV は実機と照合して開発されました。M5GFX がディスプレイ検出に読み取るパネル ID、ADV リビジョンをオリジナルから判別する GPIO シグネチャ、キーボードスキャン、I2C 上のコーデックなどです。シミュレートされたボードが実機と同じようにこれらの問い合わせに応答すると、M5Stack のライブラリが残りの処理を行うため、サンプルが編集なしで実行されるのです。
購入前にブラウザのタブでハードウェアを試せるプロジェクトを支援してくださった M5Stack チーム、そして統合をソフトウェアの書き直しではなくハードウェアの正確な再現の問題に変えてくれたオープンソースライブラリ(M5Unified、M5GFX、M5Cardputer)に感謝します。
実物のボードが必要な場合は、shop.m5stack.com で購入できます。Cardputer ADV、Basic Core v2.7、Chain RGB Matrix、Chain Mono Matrix です。M5Stack のドキュメントは docs.m5stack.com にあります。
Velxio の M5Stack 関連機能はすべて無料プランで利用できます。コンポーネントピッカーを開き、Boards を選択すると、Cardputer ADV と Core が他の ESP32 ボードの隣に表示されます。
ギャラリーの全 M5Stack サンプル
各リンクは、実行準備が整ったプロジェクトを開きます。
M5 Cardputer ADV
- M5 Cardputer ADV: LCD + キーボードエコー
- M5 Cardputer ADV: テキストターミナル(M5Stack 公式サンプル)
- M5 Cardputer ADV: ハードウェアツアー(ディスプレイ、キーボード、microSD、IMU、LED、バッテリー、マイク)
- M5 Cardputer ADV: サウンド付きゲーム Brick Blaster
- M5 Cardputer ADV: ボタン(公式サンプル)
- M5 Cardputer ADV: ブザー(公式サンプル)
- M5 Cardputer ADV: ディスプレイ(公式サンプル)
- M5 Cardputer ADV: IR NEC 送信(公式サンプル)
- M5 Cardputer ADV: シングルキー押下(公式サンプル)
- M5 Cardputer ADV: マルチキー押下(公式サンプル)
- M5 Cardputer ADV: テキスト入力(公式サンプル)
- M5 Cardputer ADV: microSD(公式サンプル)
- M5 Cardputer ADV: REPL 推測ゲーム(公式サンプル)
M5Stack Core
- M5Stack Core: Hello LCD + ボタン
- M5Stack Core: LCD (Adafruit_ILI9341)
- M5Stack Core: 内蔵 microSD + LCD
- M5Stack Core: ボタンピアノ(スピーカー)
- M5Stack Core: HelloWorld(公式サンプル)
- M5Stack Core: ボタン(公式サンプル)
- M5Stack Core: ディスプレイ(公式サンプル)
- M5Stack Core: スピーカー(公式サンプル)
- M5Stack Core: TFCard(公式サンプル)
Chain マトリクス(Arduino Uno 上)
- M5Stack Chain RGB Matrix: 虹
- M5Stack Chain RGB Matrix: 数字のカウント
- M5Stack Chain RGB Matrix: バウンスボール
- M5Stack Chain RGB Matrix: ファイア
- M5Stack Chain Mono Matrix: 白スイープ
ドキュメントのボードページには完全なピン配置が記載されています。M5 Cardputer ADV と M5Stack Core です。このシリーズの前回の記事では Seeed Studio を取り上げました。