戻る

Velxio における M5Stack — Cardputer ADV と Core がブラウザ上で M5Stack 公式サンプルを実行

M5Stack は、手のひらに収まり、開封したそのまま使えるハードウェアを製造しています。画面、ボタン、スピーカー、バッテリーがパッケージを開けた時点で揃っています。これはまさに、シミュレータが細部に至るまで正確に再現しなければ役に立たない種類のボードです。ブレッドボードに責任を転嫁できないからです。この記事では、M5Stack ハードウェアがどのように Velxio に搭載されたか、現在何が動作するか、そしてその過程で設けた小さなテストについて説明します。それは、M5Stack 公式のサンプルスケッチが、コードを一行も変更せずにブラウザ上で実行できるかどうか、というテストです。

結論から言うと、実行できます。それでは始めましょう。

無修正で動作する M5Stack 公式ディスプレイテスト

M5Stack は Cardputer ライブラリにディスプレイサンプルを同梱しています。ランダムな色の長方形とテキストが画面全体に散りばめられ、LCD パスがフルスピードで動作していることを素早く確認できるものです。私たちはこれをギャラリーにそのまま掲載しました。

Velxio 上で M5Stack 公式ディスプレイサンプルを実行中の M5 Cardputer ADV。240x135 画面に色付きの長方形とテキストが散りばめられています

ご自身で試すには:

  1. velxio.dev/example/cardputer-adv-m5-display を開きます。サインアップは不要です。
  2. 上部のツールバーで再生ボタンをクリックします。スケッチは、Arduino IDE で使用するのと同じ arduino-esp32 コアと M5Cardputer ライブラリに対してコンパイルされます。コールドビルドには数分かかりますが、ウォームビルドははるかに高速です。
  3. ボードが起動すると、画面はパネルのフル解像度 240x135 で長方形で埋め尽くされます。
  4. キーボードをクリックするか、ボードをクリックしてご自身のキーボードを使用し、記事末尾にリストされているキーボードサンプルのいずれかを開くと、キーストロークがスケッチに届くのを確認できます。

このスケッチは、ギャラリーにある 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 つのボード

Velxio に描画された M5 Cardputer ADV。ST7789 スクリーン、56 キーキーボード、上端のボタン、STAMP S3A モジュールを備えています

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 無線はエミュレートされていません。

Velxio に描画された M5Stack Core。320x240 スクリーン、A、B、C ボタン、4 辺すべてに色分けされた M-Bus ピンカードを備えています

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 マトリクス

Velxio 上の M5Stack Chain RGB Matrix と Chain Mono Matrix。側面に HY2.0 チェーンポートを備えた 2 つの 8x8 LED パネル

カタログには 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 ADVBasic Core v2.7Chain RGB MatrixChain Mono Matrix です。M5Stack のドキュメントは docs.m5stack.com にあります。

Velxio の M5Stack 関連機能はすべて無料プランで利用できます。コンポーネントピッカーを開き、Boards を選択すると、Cardputer ADV と Core が他の ESP32 ボードの隣に表示されます。

ギャラリーの全 M5Stack サンプル

各リンクは、実行準備が整ったプロジェクトを開きます。

M5 Cardputer ADV

M5Stack Core

Chain マトリクス(Arduino Uno 上)

ドキュメントのボードページには完全なピン配置が記載されています。M5 Cardputer ADVM5Stack Core です。このシリーズの前回の記事では Seeed Studio を取り上げました。


共有:
David Montero

執筆者

David Montero

Creator of Velxio, the open-source circuit and Arduino simulator.

GitHub velxio.dev

関連記事


前の記事
PimoroniがVelxioをサポート — ブラウザタブの中のBadger 2350電子ペーパーバッジ
次の記事
Seeed StudioのハードウェアがVelxioに対応 — XIAOボード、Round Display、Grove、ReSpeakerをブラウザで