はじめに
M5Stackシリーズの中でも一際目を引くかわいいデバイス「Unit Neco」をご紹介します!猫耳形状のRGB LEDパネルで、35個のフルカラーLEDが搭載されています。パーティーや装飾に最適なユニットです🎉
Unit Necoとは?
Unit Necoは、M5Stackが提供する猫耳形状のRGB LEDライトパネルユニットです。
主な特徴
| 項目 | 仕様 |
|---|---|
| LED | WS2812C-2020 × 35個 |
| 色数 | 16,777,216色(フルカラー) |
| 輝度レベル | 256段階 |
| 接続方式 | シリアルカスケードインターフェース |
| インターフェース | HY2.0-4P(Groveポート)× 2 |
| サイズ | 44.6 x 43.0 x 10.1mm |
| 重量 | 9.6g |
| 動作温度 | 0-85°C |
パッケージ内容
- Unit Neco × 2個
- HY2.0-4P Grove接続ケーブル(20cm)× 1
- HY2.0-4P Grove接続ケーブル(1m)× 1
- プラスチックコーティングワイヤー × 2
2個セットで販売されているので、両耳を表現したり、カスケード接続で拡張できます!
接続方法
Unit NecoはPORT.Bを使用して接続します。
| ピン | 機能 |
|---|---|
| GND | グランド |
| 5V | 電源 |
| DATA | LEDデータ信号 |
| BTN | タクトスイッチ |
Unit NecoとCoreS3のピン配置
Unit NecoのGroveコネクタとCoreS3の各ポートのピン配置を確認しましょう。
Unit Neco側
| GND | 5V | DATA | BTN |
|---|
CoreS3側
| ポート | GND | 5V | 3番目 | 4番目 |
|---|---|---|---|---|
| PORT.A | GND | 5V | G2 | G1 |
| PORT.B | GND | 5V | G9 | G8 |
| PORT.C | GND | 5V | G17 | G18 |
Groveケーブルで接続すると、Unit NecoのDATAピン(3番目)がCoreS3の各ポートの3番目のピンに対応します。
DATAピンの対応関係
- PORT.Aに接続 →
PIN = 2 - PORT.Bに接続 →
PIN = 9 - PORT.Cに接続 →
PIN = 17
ピン配置は公式サイトの一番下のほうで確認できます。
プルダウンお使いの機種を選択してください。
他のセンサーと併用する場合
例えば、PORT.AにI2Cセンサー(環境センサーなど)を接続している場合、Unit NecoはPORT.BまたはPORT.Cに接続することになります。
この設定が誤っているとうまく動きません。
// PORT.Aに接続した場合
#define PIN 2
// PORT.Bに接続した場合
#define PIN 9
// PORT.Cに接続した場合
#define PIN 17
ピン番号を間違えるとLEDが点灯しません。接続するポートに応じて必ずPINの値を変更してください!
Arduinoでの使い方
必要なライブラリ
Adafruit NeoPixelライブラリを使用します。Arduino IDEのライブラリマネージャーからインストールしてください。
サンプルコード
#include <Adafruit_NeoPixel.h>
// 接続ポートに応じてPINを変更してください
// CoreS3: PORT.A=2, PORT.B=9, PORT.C=17
#define PIN 9 // CoreS3のPORT.Bに接続した場合
#define NUMPIXELS 70 // Unit Neco 2個分(35 × 2)
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#define DELAYVAL 100
void setup() {
pixels.setBrightness(20); // 輝度を20に設定(推奨値)
pixels.begin();
}
void loop() {
pixels.clear();
// すべてのLEDをピンク色に点灯
for (int i = 0; i < NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(244, 24, 208));
}
pixels.show();
}
レインボーエフェクトのサンプル
#include <Adafruit_NeoPixel.h>
#define PIN 2
#define NUMPIXELS 35
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
void setup() {
pixels.setBrightness(20);
pixels.begin();
}
void loop() {
rainbow(10);
}
void rainbow(int wait) {
for (long firstPixelHue = 0; firstPixelHue < 65536; firstPixelHue += 256) {
for (int i = 0; i < pixels.numPixels(); i++) {
int pixelHue = firstPixelHue + (i * 65536L / pixels.numPixels());
pixels.setPixelColor(i, pixels.gamma32(pixels.ColorHSV(pixelHue)));
}
pixels.show();
delay(wait);
}
}
応用サンプル
GitHubにUnit Necoを使ったサンプルコードを公開しています。
sample1.ino - シンプルな点滅
タイマーベースでLEDを点滅させるシンプルなサンプルです。
// 🐱 猫耳LED点滅スケッチ (シンプル版)
#include <M5CoreS3.h>
#include <Wire.h>
#include <Adafruit_NeoPixel.h>
#define PIN 2 // PortA 🐱
#define NUMPIXELS 70
#define BLINK_INTERVAL_MS 1000
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
sample2.ino - タッチボタンでエフェクト切り替え
CoreS3のタッチパネルを使って、6種類のLEDエフェクトを切り替えられるサンプルです。
- 🌊 CHASE - 流れる光
- 💡 BLINK - 点滅
- 🌈 RAINBOW - 虹色グラデーション
- ✨ SPARKLE - キラキラ
- 💨 BREATHE - 呼吸(フェード)
- 🎉 PARTY - パーティーモード
心拍センサー連携サンプル
HEARTRATEフォルダには、心拍センサー(MAX30100)とUnit Necoを組み合わせたサンプルがあります。心拍を検知するとLEDが光る、面白い応用例です!
⚠️ 注意事項
LEDの焼損に注意!
全点灯状態を長時間続けるとLEDが焼損する恐れがあります。輝度は20前後に設定することを強く推奨します。
// 推奨設定
pixels.setBrightness(20);
UIFlowでの使い方
UIFlowを使えば、ビジュアルプログラミングでUnit Necoを制御できます。
活用アイデア
- 🏠 家庭装飾 - デスク周りのアクセントライトとして
- 🎉 パーティー演出 - 音楽に合わせたライティングエフェクト
- 🎭 コスプレ - 猫耳ヘッドバンドに装着
- 📢 通知ライト - Slack/Teamsの通知を光で表現
- 🎮 ゲーム連動 - ゲームの状態に応じて色を変化
- 💓 心拍連動 - 心拍センサーと組み合わせてビートに合わせて光らせる
まとめ
Unit Necoは、かわいい猫耳デザインと実用的なRGB LED機能を兼ね備えた魅力的なユニットです。M5Stackエコシステムとの親和性も高く、ArduinoやUIFlowで簡単にプログラミングできます。
2個セットなので、両耳を光らせたり、カスケード接続でさらに拡張したりと、創造性を発揮できるデバイスです!
