XIAO 用 6x10 RGB MATRIX の使い方
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
XIAO 用 6x10 RGB MATRIX の使い方

「6x10 RGB-MATRIX for XIAO」は、Seeed Studio の XIAO 製品シリーズに新たに加わった魅力的なアイテムです。この 6x10 RGB-MATRIX を使用すれば、プロジェクトを色鮮やかに照らすことができます。60 個の精密に配置された WS2812 LED で構成されており、このマトリックスは単なる美観を超え、創造的なビジョンを実現するツールです。インタラクティブなアート作品を作成したり、動的な通知システムを設計したり、単に作品に色彩を加えたい場合でも、このマトリックスはあなたのキャンバスとなります。XIAO メインコントローラーとのシームレスな統合を目的として設計されており、VCC、GND、DIN のはんだ付けパッドが含まれているため、多様なシナリオでの柔軟性がさらに強調されています。
概要
特徴
- 60 個の WS2812 LED: 6x10 グリッドに配置されており、鮮やかなディスプレイを作成するのに最適です。
- コンパクトなデザイン: 各 LED はわずか 1mm x 1mm で、高密度のディスプレイを提供しながらスペースをほとんど取りません。
- 多用途な接続: XIAO メインコントローラー用に設計されていますが、VCC、GND、DIN のはんだ付けパッドも含まれており、幅広い用途に対応します。
- RGB 機能: 各 LED は幅広い色を表示できるため、動的でカラフルなディスプレイを作成する自由があります。
仕様
- LED タイプ: WS2812
- LED 数: 60
- 配置: 6 行 x 10 列
- LED サイズ: 1mm x 1mm
- XIAO 用接続ポート: D0
- 追加パッド: VCC、GND、DIN、DOUT
応用例
- インタラクティブディスプレイ: プロジェクトで動的な視覚フィードバックを提供するために LED マトリックスを使用。
- 通知: デバイスのカラフルな通知やアラートを作成。
- アートインスタレーション: LED マトリックスをアート作品に組み込んでモダンなタッチを追加。
- ウェアラブル技術: 衣類やアクセサリーに統合して未来的な外観を実現。
- ゲーム: 鮮やかな視覚効果でゲーム体験を向上。
- 一般照明: 様々な環境での間接照明やムード設定に使用。
始め方
XIAO 用 6x10 RGB-MATRIX のクイックスタートガイドへようこそ。このガイドでは、新しい LED マトリックス拡張ボードを XIAO RP2040 メインコントローラーと組み合わせてセットアップする方法を説明します。
ハードウェア準備
製品を受け取ったら、いくつかのはんだ付けが必要になります。パッケージには 2 つのピンヘッダーが付属しています。これらのヘッダーを拡張ボードに取り付ける必要があります。

はんだ付けが完了したら、拡張ボードを XIAO RP2040 メインコントローラーに接続する準備が整います。

接続時には特に注意してください。XIAO が通電している状態で接続しないでください。また、電源ピンを間違えて接続しないようにしてください。そうしないと、ボードが焼損する可能性があります。
ソフトウェア準備
このチュートリアルでは XIAO RP2040 をマスターとして使用します。初めて XIAO RP2040 を使用する場合は、その「Getting Started Wiki」を参照してください。
なお、このチュートリアルで提供されるすべてのサンプルプログラムは他の XIAO でも動作します。また、使用している XIAO に応じて Arduino 開発環境を事前に設定することもできます。
Arduino ライブラリ概要
Arduino を初めて使用する場合は、Arduino の始め方を参照することを強くお勧めします。
機能
スケッチを開発する前に、ライブラリの利用可能な機能を確認しましょう。
Adafruit_NeoPixel(uint16_t n, int16_t pin = 6, neoPixelType type = NEO_GRB + NEO_KHZ800);
—— 長さ、ピン、ピクセルタイプがコンパイル時に既知の場合の NeoPixel コンストラクタ。入力パラメータ:
n
: NeoPixel の数。p
: NeoPixel データを駆動する Arduino ピン番号。t
: ピクセルタイプ -- AdafruitNeoPixel.h に定義された NEO* 定数を組み合わせます。例えば、NEO_GRB+NEO_KHZ800
は、800 KHz(400 KHz ではなく)のデータストリームを期待し、各ピクセルの色バイトが緑、赤、青の順で表される NeoPixel を意味します。
戻り値: Adafruit_NeoPixel オブジェクト。使用する前に
begin()
関数を呼び出してください。void begin(void)
—— NeoPixel ピンを出力用に設定します。void show(void)
—— RAM 内のピクセルデータを NeoPixel に送信します。void setPin(int16_t p)
—— NeoPixel 出力ピン番号を設定/変更します。以前のピンがある場合は INPUT に設定され、新しいピンが OUTPUT に設定されます。入力パラメータ:
p
: Arduino ピン番号 (-1 = ピンなし)。
void setPixelColor(uint16_t n, uint8_t r, uint8_t g, uint8_t b, uint8_t w)
—— 赤、緑、青、白の個別のコンポーネントを使用してピクセルの色を設定します(RGBW NeoPixel のみ)。入力パラメータ:
n
: ピクセルインデックス(0 から開始)。r
: 赤の明るさ、0 = 最小(オフ)、255 = 最大。g
: 緑の明るさ、0 = 最小(オフ)、255 = 最大。b
: 青の明るさ、0 = 最小(オフ)、255 = 最大。w
(オプション): 白の明るさ、0 = 最小(オフ)、255 = 最大。RGB ピクセルを使用している場合は無視されます。
void setPixelColor(uint16_t n, uint32_t c)
—— 32 ビットの「パックされた」RGB または RGBW 値を使用してピクセルの色を設定します。入力パラメータ:
n
: ピクセルインデックス(0 から開始)。c
: 32 ビットの色値。最上位バイトは白(RGBW ピクセルの場合)または無視されます(RGB ピクセルの場合)。次は赤、その次は緑、最下位バイトは青です。
void fill(uint32_t c = 0, uint16_t first = 0, uint16_t count = 0)
—— NeoPixel ストリップ全体または一部を色で埋めます。入力パラメータ:
c
: 32 ビットの色値。最上位バイトは白(RGBW ピクセルの場合)または無視されます(RGB ピクセルの場合)。次は赤、その次は緑、最下位バイトは青です。すべての引数が指定されていない場合、これは 0(オフ)になります。first
: 埋める最初のピクセルのインデックス(0 から開始)。範囲内である必要があり、クリッピングは行われません。指定されていない場合は 0。count
: 埋めるピクセルの数(正の値)。0 を渡すか指定しない場合はストリップの終わりまで埋めます。
void setBrightness(uint8_t b)
—— 出力の明るさを調整します。現在 LED に表示されている内容にはすぐには影響しません。次回show()
を呼び出すと、このレベルで LED が更新されます。入力パラメータ:
b
: 明るさ設定、0=最小(オフ)、255=最大。
void clear(void)
—— NeoPixel ストリップ全体を 0 / 黒 / オフで埋めます。void updateLength(uint16_t n)
—— 以前に宣言された Adafruit_NeoPixel ストリップオブジェクトの長さを変更します。古いデータは解放され、新しいデータはクリアされます。ピン番号とピクセルフォーマットは変更されません。入力パラメータ:
n
: ストリップの新しい長さ(ピクセル単位)。
void updateType(neoPixelType t)
—— 以前に宣言された Adafruit_NeoPixel ストリップオブジェクトのピクセルフォーマットを変更します。フォーマットが RGB バリアントのいずれかから RGBW バリアント(または RGBW から RGB)に変更される場合、古いデータは解放され、新しいデータはクリアされます。それ以外の場合、古いデータは RAM に残り、新しいフォーマットに再配置されないため、clear()
を続けて呼び出すことをお勧めします。入力パラメータ:
t
: ピクセルタイプ -- AdafruitNeoPixel.h に定義された NEO* 定数を組み合わせます。例えば、NEO_GRB+NEO_KHZ800
は、800 KHz(400 KHz ではなく)のデータストリームを期待し、各ピクセルの色バイトが緑、赤、青の順で表される NeoPixel を意味します。
static uint32_t Color(uint8_t r, uint8_t g, uint8_t b)
—— 赤、緑、青の個別の値を単一の「パックされた」32 ビット RGB 色に変換します。入力パラメータ:
r
: 赤の明るさ、0 から 255。g
: 緑の明るさ、0 から 255。b
: 青の明るさ、0 から 255。
戻り値: 32 ビットのパックされた RGB 値。この値は後で使用するために変数に割り当てるか、
setPixelColor()
関数に渡すことができます。パックされた RGB フォーマットは、LED ストランドの色順に関係なく予測可能です。
インストール
- 方法 1
このチュートリアルでは Adafruit NeoPixel ライブラリ を使用します。Arduino のライブラリマネージャーで検索し、ダウンロードしてインストールしてください。

- 方法 2
以下のボタンからライブラリをダウンロードしてください。
Arduino IDE を開き、スケッチ > ライブラリをインクルード > .ZIP形式のライブラリを追加 をクリックします。ダウンロードした ZIP ファイルを選択してください。ライブラリが正しくインストールされると、通知ウィンドウに ライブラリがライブラリに追加されました と表示されます。これでライブラリが正常にインストールされたことを意味します。

デモ: 流れる光
以下のサンプルプログラムは、ランニングライトの効果を実現するためのものです。ランプビーズが一つずつ順番に点灯します。このプログラムはすべての XIAO に対応しています。
#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h> // 16 MHz Adafruit Trinket 用に必要
#endif
// NeoPixel が接続されている Arduino のピン
#define PIN A0 // Trinket または Gemma の場合、1 に変更を推奨
// Arduino に接続されている NeoPixel の数
#define NUMPIXELS 60 // 一般的な NeoPixel リングのサイズ
// NeoPixel ライブラリを設定する際、ピクセル数と信号を送るピンを指定します。
// 古い NeoPixel ストリップの場合、3 番目のパラメータを変更する必要があるかもしれません。
// 詳細は strandtest の例を参照してください。
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#define DELAYVAL 500 // ピクセル間の一時停止時間 (ミリ秒)
void setup() {
// 以下のコードは Adafruit Trinket 5V 16 MHz をサポートするためのものです。
// 他のボードでは、この部分を削除しても問題ありません (削除しなくても害はありません)。
#if defined(__AVR_ATtiny85__) && (F_CPU == 16000000)
clock_prescale_set(clock_div_1);
#endif
// Trinket 固有のコード終了。
pixels.begin(); // NeoPixel ストリップオブジェクトを初期化 (必須)
}
void loop() {
pixels.clear(); // すべてのピクセルの色を「オフ」に設定
// ストランド内の最初の NeoPixel は #0、2 番目は 1、最後はピクセル数 - 1 です。
for(int i=0; i<NUMPIXELS; i++) { // 各ピクセルについて...
// pixels.Color() は RGB 値を受け取ります (0,0,0 から 255,255,255 まで)。
// ここでは中程度の明るさの緑色を使用しています:
pixels.setPixelColor(i, pixels.Color(0, 10, 0));
pixels.show(); // 更新されたピクセルの色をハードウェアに送信。
delay(DELAYVAL); // 次のループまで一時停止
}
}
プログラムをアップロードし、すべてが正常に動作すれば、ランプビーズが一つずつ順番に点灯するのが確認できます。

このプログラムでは特にランプビーズの明るさを抑えています。明るさを最大にすると、ランプビーズを長時間直視することで目にダメージを与える可能性があります。
複数のライトボードの接続
RGB MATRIX for XIAO は、電源供給が保証されている場合、複数のスプライス拡張をサポートします。以下の図に示すように、複数のライトボードを順番に接続することができます。

複数のライトパネルを接続すると、熱くなったり電力不足になる可能性があります。この場合、ライトボードが異常に表示されることがあります。その際は、ライトボードに追加の電力を供給し、各ライトボードが安定した 5V 入力を確保できるようにしてください。
リソース
- [ZIP] PCB&SCH Eagle ファイル
- [PDF] データシート - WS2812B
技術サポート & 製品ディスカッション
弊社製品をお選びいただきありがとうございます!お客様が弊社製品をスムーズにご利用いただけるよう、さまざまなサポートをご提供しております。お客様のご希望やニーズに応じた複数のコミュニケーションチャネルをご用意しています。