戻る

Seeedの新しいXIAO IPSディスプレイボードが、発売から数日でブラウザ上で動作

9月8日、Seeed Studioは3つの新しいガジェットを発表しました。0.96インチ、1.14インチ、1.47インチのIPSディスプレイで、それぞれがXIAO nRF52840 Plusをすでにはんだ付けされたキャリアボードです。画面、ボタン、6軸IMU、マイク、バッテリーコネクタを、指先に乗るサイズに収めています。

それらは今Velxioにあります。ボードを注文することなく、無料プランで、開いてRunを押すだけで、Seeed自身のデモファームウェアがガラスに描く様子を見ることができます。キャンバス上のボードは、Seeedが撮影したのと同じように表裏が描かれています。片面にはガラス、USRボタン、マイク。もう片面には、はんだ付けされたXIAO nRF52840 Plus、バッテリーソケット、電源スイッチ、カードスロットまたはGroveポート、そして配線可能なパッドがあります。

XIAO 1.47インチIPSタッチディスプレイ。左に組み立て済みボードが工場出荷時のダッシュボードを表示し、右にXIAO nRF52840 Plus、バッテリーコネクタ、microSDスロットを備えたキャリアの裏面が、手に持たれた状態で写っている

3つのボード

3つすべてが同じコンピュータ — XIAO nRF52840 Plus — と同じ周辺センサーを搭載しています。6軸IMU、PDMマイク、Bluetooth Low Energy、充電検知付きのJSTバッテリーコネクタです。異なるのはガラスと、その周りにSeeedが何を配置したかです。

XIAO 0.96インチIPSディスプレイ — ST7789パネル、80 x 160、2つのユーザーボタン付き。小型モデルです。ステータス表示、ウェアラブル、1行のテキストと数字が必要なあらゆる用途に。

XIAO 0.96インチIPSディスプレイの表と裏。バッテリー、モーション、マイクの読み取り値を表示する工場出荷時のダッシュボードが見える

XIAO 1.14インチIPSディスプレイ — ST7789パネル、135 x 240、3つのユーザーボタン、そして他の2つと違いGrove I2Cコネクタを搭載。このコネクタがあるからこそ、センサーを接続したいならこれを選ぶべきです。

XIAO 1.14インチIPSディスプレイの表と裏。3つのユーザーボタン、Grove I2Cコネクタ、バッテリーコネクタが見える

XIAO 1.47インチIPSタッチディスプレイ — JD9853Aパネル、172 x 320、静電容量式タッチ層とmicroSDスロット付き。フラッグシップであり、内部で最も多くのことが行われているモデルです。

ブラウザが実際に描いているもの

3つのエミュレートされたパネルが並んでいる。0.96インチはSeeedのElectronic Quicksandを実行し砂粒が一角に積もり、1.14インチはGraphicTestのカラーバーを表示し、1.47インチはTouch Circleを実行し指でタップした場所に9つの白い円が描かれている

これらの3枚の画像はモックアップではありません。それぞれがエミュレートされたディスプレイコントローラのフレームバッファであり、Seeed自身のコンパイル済みファームウェアによって埋められています。

この連鎖は詳しく説明する価値があります。それが要点だからです。あなたのスケッチは、Seeed自身のnRF52コアを備えた本物のarduino-cliによって、ボード自身のFQBN向けにコンパイルされます。得られたファームウェアは、新しいブラウザ内nRF52840エンジンによって1命令ずつ実行されます — Velxioで既にESP32やRP2040ボードを動かしているのと同じ種類のエンジンです。ファームウェアはSPIペリフェラルを起動しバイトを送り出し始めます。ST7789のモデルは、チップセレクト線とデータ/コマンド線を毎バイトごとにピンから読み取り、何をするよう命じられているかをデコードします。画面に表示されるのは、そのコントローラのメモリの内容です。

ライブラリレベルでの傍受は一切ありません。Seeedのグラフィックスライブラリを独自のSPI書き込みに置き換えても、パネルは依然として描画します。

グラフィックテストから始める

  1. velxio.dev/example/xiao-114-graphictestを開きます。アカウントは必要ありません。
  2. ツールバーの再生ボタンを押します。スケッチはVelxioのサーバー上でコンパイルされ — 新しいライブラリの初回ビルドは数分かかりますが、以降は素早く終わります — その後ボードが起動します。
  3. パネルが10種類の描画プリミティブを順に実行するのを見てください。カラーバー、線、矩形、円、三角形、テキスト、ピクセルグラデーション。下部のシリアルモニタは、ベンチでUSB経由の場合とまったく同じように、それぞれにかかった時間を出力します。
  4. それから何かを変えてみてください。色を入れ替えたり、fillCircleを追加したりして、もう一度実行します。

傾け、タップし、カードにファイルを置く

パネルは難しい部分ですが、面白い部分ではありません。これらのボードをシミュレートする価値があるのは、ボード上の他のすべてであり、そのすべてがマウスで動かせる何かに配線されています。

IMU。 Seeedの_Electronic Quicksand_デモは、数百粒の砂を落とし、ボードを傾けた方向に砂が流れます。キャンバスツールバーのSensorsを押し、Tiltパッド上のドットをドラッグすると、砂が隅に流れ込みます。LSM6DS3TR-Cは、実際のアドレスとデータシートが指定する感度でI2Cに応答するので、スケッチが変換する数値は、その部品が返すであろう数値そのものです。同じパッドは今、同じ部品を搭載するベアのXIAO nRF52840 Sense、MG24 Sense、nRF54L15 SenseのIMUも動かします。

タッチガラス。 1.47インチボードでは、静電容量式コントローラが、Seeedのドライバが読み取るのと同じ14バイトのレポートに応答し、指が触れている間は割り込み線がローに引かれます。マウスでパネルに描くと、円はクリックした場所に現れます。

microSDスロット。 実機ではカードとパネルが1本のSPIバスを共有し、チップセレクトで区別されますが、ここでも同じように共有します。スケッチがマウントすると、プロジェクトのファイルがカード上にあり、ボードのSD Cardパネルから自分のファイルを入れることもできます。

バッテリー。 これは一番嬉しい驚きです。Seeedのバッテリーデモは静的電圧を信用しません — USB接続時には、充電器自身のノードがセルに見えることがあるからです — そのため、まずUSBのみのベースラインを学習し、持続的な電圧降下があって初めてバッテリーが存在すると判定します。同じSensorsパネルのバッテリースライダーを0.1ボルト下げて、スケッチのステートマシンがどう判断するか見てみてください。

エミュレートされた0.96インチパネル。スライダーを下げた後のSeeedのバッテリーデモを表示 — 緑のバッテリーアイコン、52パーセント、3.80 V

ベンダーのコードを動かして見つかったこと

ギャラリーの15個のサンプルのうち14個はSeeed自身のファイルで、変更は2点だけです。先頭の移植メモが、スケッチの出所を示す短いヘッダーになり、コアが既に提供している#includeが1つ削除されます。それらを動かすことで、これらのボードに同梱されているグラフィックスライブラリSeeed_GFX2 1.0.0に2つの実際の問題が見つかりました。

大文字小文字を区別するファイルシステムではビルドできません。 ライブラリの製品カタログにはXIAO_ePaper_Boards.hとreTerminal_ePaper_Boards.hが含まれていますが、ファイルの綴りはEPaperです — さらに、これら2つのヘッダーはそれぞれ自身の設定ヘッダーを同じ間違った方法で指定するため、2つ目のペアは最初のペアを修正して初めて表面化します。3ファイル中の4つの#include行です。macOSとWindowsでは解決しますが、Linux — コンパイルファームが動かす環境 — では、このライブラリに触れるすべてのスケッチが「No such file or directory」で停止します。これは今日も上流のmainブランチに残っています。Velxioはライブラリを取得する際にこの4行を修復するので、サンプルはビルドできます。

1.14インチパネルの設定は色の順序が間違っています。 ライブラリはこのボードをRGBとして設定していますが、パネルはBGRで配線されています。Seeedは知っています — このボード向けの彼ら自身のデモには「the panel is physically wired for BGR color order」というコメント付きのスケッチローカルなオーバーライドが含まれています — しかしライブラリ自身の設定は追いついておらず、その結果はSeeed自身がwikiに載せたグラフィックテストの録画で確認できます。最初のカラーバーは赤で描かれているのに青で表示され、黄色で描かれたものはシアンで表示されます。

この2つ目は、Velxioがパネルをモデル化する方法を変えました。固定の「赤と青を入れ替える」フラグを持つディスプレイモデルではこれを再現できません。入れ替えはパネル単独の性質ではなく、パネルの配線とコントローラの色順序ビットが食い違ったときに生じるものだからです。そこでVelxioは両者を別々にモデル化し、打ち消し合わせます。Seeedのオーバーライドを使うスケッチは正しくレンダリングされ、ライブラリをそのまま信じるスケッチは、机の上で見せるのと同じ赤と青の入れ替えを示します。同じ修正はディスプレイの反転にも適用され、これによってこのボードの黒い背景が白く出ることがなくなりました。

モデル化されていないもの

ギャップについては正直に話します。何もせずに黙っているシミュレータは、そうだと明言するシミュレータよりも悪いからです。

ギャラリー内のすべてのサンプル

XIAO 0.96インチ IPSディスプレイ

XIAO 1.14インチ IPSディスプレイ

XIAO 1.47インチ IPSタッチディスプレイ

ボードはSeeedのストアで販売されています — 0.96インチ、 1.14インチ、 そして1.47インチタッチ — デモスケッチは Seeed-Projects/Display-Gadgetsにあります。 まずはここで試してみてください。スケッチはどちらでも変更なしで動作します。

ボードの写真はSeeed Studioの提供です。


共有:
David Montero

執筆者

David Montero

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

GitHub velxio.dev

関連記事


前の記事
222個のSeeed Groveモジュールがブラウザで動作するようになりました
次の記事
ZバッファなしでESP32-S3向けのOutRun風3Dレーシングゲームを作る