Pimoroniは、人々が愛着を持つようなハードウェアを作っています。Badger 2350は開発キットではなく、バッジです。名前を表示できる電子ペーパー画面、前面の5つのボタン、背面のバッテリー、そしてToDoリスト、ポモドーロタイマー、レイキャスターゲームがプリインストールされたファームウェアを備えています。Pimoroniと彼らのボードをVelxioに持ち込むことについて話し合ったとき、目標は簡単に言えて、達成するのは難しいものでした。ブラウザの中のバッジは、ボタンも含めて、ストラップにつけた実際のバッジと同じように感じられるべきだ、ということです。
これは、Seeed StudioとM5Stackに続く、Velxioをサポートするハードウェア企業に関するシリーズの第3回目の記事です。Pimoroniのエントリーは、電子ペーパーを中心に構築された最初のものです。電子ペーパーはシミュレーションの感触を変えます。何も毎秒60フレームでアニメーションせず、画面は実際のインクのようにリフレッシュされ、表示されたものはそこに留まり続けます。

実際にチェックできるToDoリスト
velxio.dev/example/badger-2350-listを開いて、再生ボタンを押してください。スケッチがコンパイルされると、電子ペーパーにチェックリストが描画されます。これはバッジの公式ファームウェアにある「リスト」アプリと同じアイデアです。その後、実際のボードと同じように操作できます。
- UP / DOWN(バッジの右端)でカーソルを移動します。
- Aでハイライトされたタスクにチェックを入れます。チェックされたタスクにはチェックボックスが塗りつぶされ、取り消し線が引かれます。
- Bで全てクリア、Cで全てチェックします。
- 進捗に応じて、背面ケースのライトが点灯していきます。
ボタンがこの例の要点です。シミュレーションが画面を描画するのを見るのと、物理的に見えるボタンをクリックしてインクが反応するのを見るのとでは、全く異なります。すべての操作は、実際のBadgerが行うのと同じGPIO読み取り(プルアップとアクティブロー動作を含む)を経由します。そのため、このスケッチを後で物理的なバッジで実行した場合も、ボタンは同じように動作します。
未変更の工場出荷時ファームウェア
上記の例はArduino C++スケッチで、回路図を読んだ後に書くであろう方法で書かれています。しかし、Velxio内のBadger 2350はさらに一歩進むことができます。 velxio.dev/example/badger-2350-badgeosは、Pimoroniが工場で書き込むのと同じファームウェアであるBadgeOS v2.0.2を起動します。これはARM MicroPythonとPimoroniのCモジュール、github.com/pimoroni/badger2350からの完全なソースツリーがブラウザ上で動作するものです。工場出荷時メニューが電子ペーパーに表示され、5つのボタンでバッジアプリ、時計、ギャラリー、水分補給カウンターなどに移動できます。
私たちはこのテストが好きです。なぜなら、誰もシミュレーター用にこれを書いていないからです。BadgeOSはバッジのために書かれ、そしてそのバッジが今やタブの中にも存在するのです。
MicroPythonで作業するなら、MicroPython REPLの例でライブプロンプトを試せます。ボードは標準のRP2350 MicroPythonで起動し、小さなファイルシステムからmain.pyを実行し、シリアルモニターのREPLにドロップして、インタラクティブにピンを操作できます。
3つのボード、1つのチップファミリー
VelxioにあるPimoroniのボードはすべて、Raspberry Pi RP2350をベースにしています。

Badger 2350 — 電子ペーパーバッジ。264 x 176のSSD1680電子ペーパーパネル、5つの前面ボタン、4つのケースライト、サイドコネクタにI2Cを搭載。上記のようにArduino C++、MicroPython、BadgeOSを実行します。

Pico Plus 2 W — Pico 2フォームファクタに対するPimoroniの解釈です。VelxioではRP2350コードをRISC-Vコア上で実行します。これは素晴らしいディテールです。同じチップ、異なる命令セット、そしてblinkの例がGPIO、タイミング、UARTがすべて正しく動作することを証明しています。

Galactic Unicorn — 53 x 11のLEDマトリクス。このボードの現状について率直に言うと、今日のVelxioはボードを起動してコードを実行できます(heartbeatの例はGPIOをトグルし、シリアル経由でループをカウントします)が、LEDマトリクス自体はまだエミュレートされていません。これはロードマップに載っており、パートナーシップが存在するまさにその理由のような作業です。マトリクスは「だいたい正しい」ではなく、「正しく」見える必要があるからです。
Pimoroniとの協業
Pimoroniはこの作業をサポートし、ハードウェアを提供してくれました。そして、彼らの公開方法によって、残りの部分が可能になりました。Badgerのファームウェアはオープンソースであり、回路図も公開されています。シミュレートされたバッジが、机の上の物理的なバッジとは異なる動作をした場合、それは再現手順付きのバグレポートとなります。上記のBadgeOS起動はその結果です。エミュレートされたボードが、ファームウェアが期待するものをピン単位で一致させているからこそ、機能するのです。
Pimoroniチームが、自社ハードウェアの本格的な居場所としてシミュレーターを支援してくれたことに感謝します。Badgerを使って教えているなら、クラス全員が箱が届く前に試すことができます。所有しているなら、バスの中でアプリのアイデアをスケッチして、家でフラッシュすることができます。
物理ボードはshop.pimoroni.comで購入できます。Badger 2350、Pico Plus 2 W、Galactic Unicornに加え、pimoroni.comでドキュメントも提供されています。
Velxio内のPimoroni関連のすべては、無料プランで実行できます。コンポーネントピッカーを開き、Boardsを選択すると、3つともリストに表示されます。
ギャラリーのすべてのPimoroni例
各リンクは、実行準備が整ったプロジェクトを開きます。
Badger 2350
- Badger 2350:ToDoリスト(ボタン+ケースライト)
- Badger 2350:BadgeOS工場出荷時ファームウェア、フルブート
- Badger 2350:電子ペーパー名札
- Badger 2350:RTCアラーム時計
- Badger 2350:水分補給カウンター(部分更新)
- Badger 2350:電子ペーパー上のI2Cスキャナー
- Badger 2350:MicroPython REPL
Pico Plus 2 W と Galactic Unicorn
ボードのリファレンスページには完全なピン配置が記載されています。 Badger 2350、 Pico Plus 2 W、 Galactic Unicorn。