アドレッサブルピクセル
ここ5年ほど、さまざまなLEDやそれにともなう技術が、一般に利用できるようになりました。過去には、LEDを使いたければ個々にLEDを手に入れ、マイクロコントローラーで制御しなければなりませんでした。これらは長さのあるフルカラーピクセルを驚嘆のカラーアニメーションでドライブできます。デコラティブなライティング、ストリップライティング等に向いています。ただし、一度にストリップの1つのセグメントしか制御できません。
ピクセルのグリッドを作成し、それぞれを独立してコントロールしたいですか?そこで、アドレッサブルピクセルの登場です。
APA102 / SK9822 アドレッサブルピクセル
この小さく優れた機器には沢山の種類、サイズ、レイアウト、ドライブメカニズム、カラー構成がありますが、キーとなるアスペクトのいくつかは共通です:
- それぞれに、Ultra Bright LED3つを内蔵しています。レッド、グリーンおよびブルーです。RGBWhiteのバリエーションもありますが、こちらは後ほど解説します。
- それぞれピクセルに、各ライトのアクティベートを制御する、IC (Integrated Circuit)を内蔵しています。
- デイジーチェインで、長く複雑なシステムを作成できます。
- 更に重要な事には、アドレスが個別に付与できます。
非常に高いフレームレートで、ロングストリップのピクセルのひとつひとつに、実行する内容や方法を伝達できます。これらは通常、複数のコンフィギュレーションおよび幅の、セミフレキシブルのカッパーストリップです。グリッド、サークルほか、思いつくどのような構成でも、どのようなサイズのPCBでも購入できます。個別にも!
12mmストリップでメーターあたり144ピクセルの密度の、WS2812ピクセルです。
多数の異なるタイプのピクセル
このカテゴリー内のアドレッサブルピクセルには、さまざまな技術が多数採用されています。それらは個々に異なっており、それぞれにユースケースがあります。
- ピクセルの個々のRGB LEDの、レートおよび物理的なコントロール方法
- ピクセルICへの伝達にコントロール機器が使用するコミュニケーションプロトコル
- 冗長性のレベル
- 個々のカラーレベルおよび輝度コントロール
最も一般的なタイプのピクセル2種類について、少しだけ触れます。本ガイドの最後のユースケースは、ある1つのタイプで有効です。
4ピン アドレッサブルピクセル
Neopixel / WS2812 / SK6812
まったく同じ技術を採用した3つのモデルです。ピクセルは4ピンです。
- Ground - パワーサプライレールの接地に接続します。
- Data IN - お使いのコントロール機器か、前のピクセルのデータアウトのいずれかに接続します。
- Data OUT - 次のピクセルのDATA INに接続します。
- +5V - パワーサプライレールの一般的な +5V に接続します。
これらのピクセルはPWM (Pulse Width Modulation) に基づくプロトコルを使用し、他のピクセルと伝達しあいます。
お使いのコントロール機器はシリアル信号をあらかじめ定義されたスピード(大体800Khzですが、モデルによってわずかに異なります)で送信します。 信号は、順番に並んだバイトのリストで、各々が、各ピクセルのRGB値の輝度レベルを表します。バイトを送る順序によって、ライトアップするピクセルを制御します。 たとえば、チェーンに3つのピクセルがある場合、R G Bのパターンでライトアップするには、ピクセル 1 をレッドに、ピクセル2はグリーン、ピクセル3はブルーになります。それには次のデータを送信します:
[255 0 0] [0 255 0] [0 0 255]
これらのタイプのピクセルは、購入できる変型タイプのうち安価なものです。最大転送速度は800Khzで、ラージスケールのインスタレーションには制限要因となり、特にお使いのコントロール機器で、非常に長いピクセルのチェインへデータを転送する際にはそれが顕著になります。
これに対処するには、インスタレーションをいくつかのパラレルアウトプットフレームに分解します。たとえば、幅100ストリップで高さ100ピクセルのピクセルグリッドを長いデイジーチェインに接続している場合、全てのピクセルがアップデートされるには時間かかり、リフレッシュレートは低くなります。10のパラレルアウトプットが可能なドライバーがあれば、インスタレーションを10個のブロックに分け、フレームレートを上げることができます。
ここで使用可能なピクセルのレンジ:
これらはさまざまな密度のレンジ、ストリップ幅およびウォータープルーフレベルで購入できます。非ウォータープルーフ製品で一般的な密度は下記の通りです。
6ピン (SPI 駆動) アドレッサブルピクセル
カラーと輝度の設定にハイグレインコントロールを備えた、高パフォーマンスのピクセルです。
上の3つのモデルは、全く同じピクセルですが、別々の企業によって商標登録された製品です。3つのうち、APA102 がオリジナルです。Adafruit は"Dotstar"という名前を商標登録し、SK9822は別の企業が製作した一番最近のモデルです。
これらはパフォーマンスが高く私の好みです。これらのピクセルは次のようにラベリングされた6ピンを備えています
- Ground - パワーサプライレールの通常の接地に接続します。
- Clock IN - シリアルCLK 信号入力
- Data IN - シリアルDAT 信号入力
- Clock Out - インバーテッドのシリアルCLK 出力
- Data Out - シリアル DAT信号出力
- +5V - パワーサプライレールの通常の +5V に接続します。
これらのピクセルを駆動するには、大抵のプログラミング言語で容易に実行できるシリアルプロトコルが必要です。また、すぐに使用できるドライバーも多数あり、これについては後ほどお話しします。次のようなバイトの配列を作成し、これらのピクセルへ伝達します:
スタートフレーム | Pix 1 GB フレーム | Pix 1 Blue | Pix 1 Green | Pix 1 Red | ... | 次の4 bytes ピクセルデータ | ... | エンドフレーム |
- スタートフレーム (32 ビット): このフレームは、ピクセルにこれからデータが入力されることを伝達します。32 x 0'sに設定されています。
- Pix 1 GB フレーム (8 ビット): このフレームでは、特定のピクセルのグローバル輝度レベルをwin32インクリメントでコントロールします。223 = が輝度の最低値で、255が最高値です。
- Pix 1 Blue (8ビット): このピクセルのブルーレベルを、値0 〜255 の間でコントロールします。
- Pix 1 Green (8ビット): このピクセルのグリーンレベルを、値0 〜255 の間でコントロールします。
- Pix 1 Red (8ビット): このピクセルのレッドレベルを、値0 〜255 の間でコントロールします。
- エンドフレーム (32ビット): 32 x 1s のこのフレームは、すべてのピクセルに、受信したデータの適用を指示するため送信されます!このブロックは、すべてのピクセルがアドレスされた後に送信されます。
これらのピクセルは非常に高い周波数で駆動できるため、大規模なインスタレーションで使用できます。SK9822 には最高で30Mhz (30Mbit)でデータを送信できます。
ただし実際には、このレートは技術的要件に左右されるため、もっと低いものになりがちです。必ず、ピクセルに十分な電力の供給と、適切な接地およびノイズ遮蔽、適切なパワーバッファリング等々をおこなってください。密度の異なる2〜3のリンクがあります。Neopixelとまったく同様の密度となります:
このガイドの残りの部分では、シンプルに解説するためSK9822ピクセルを使用します。こちらに書かれているすべてのユースケースに有効です。 SK9822 5050 (5x5mm)を使用した場合は特にです。