RGB mood light ・ RGB氛围灯
Core2でRGB LEDユニットを制御し、色が変わるムードライトを作ります。
この構成をエディタで開く・編集する →| 部品 | 役割 | ポート | リンク・価格 |
|---|---|---|---|
| M5Stack Core2 | Controller | grove_i2c, grove_analog, grove_uart, mbus | official page — $46.9 |
| Unit RGB (SK6812) | RGB LED unit | grove_i2c | official page — $3.95 |
M5Stack Core2とUnit RGB(SK6812)で作る、色がゆっくり変化するムードライトです。Core2がI2C経由でRGB LEDを制御し、虹色のグラデーションを表示します。
# M5Stack Core2 + Unit RGB (SK6812) - Color-changing mood light
# Wiring: Unit RGB -> Core2 red Port.A (I2C)
import time
from machine import Pin, I2C
from m5stack import lcd
# I2C setup for Port.A (Core2: sda=21, scl=22)
i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=400000)
# Unit RGB I2C address is 0x38 (7-bit)
RGB_ADDR = 0x38
def set_rgb(r, g, b):
"""Set all three LEDs to same color (r,g,b: 0-255)"""
# Command: 0x00 for auto increment, then 9 bytes (3 LEDs * 3 colors)
buf = bytearray([0x00, r, g, b, r, g, b, r, g, b])
i2c.writeto(RGB_ADDR, buf)
def hsv_to_rgb(h, s, v):
"""Convert HSV to RGB, h: 0-360, s,v: 0-255"""
if s == 0:
return (v, v, v)
h = h / 60.0
i = int(h)
f = h - i
p = v * (255 - s) // 255
q = v * (255 - s * f) // 255
t = v * (255 - s * (1 - f)) // 255
if i == 0:
return (v, t, p)
elif i == 1:
return (q, v, p)
elif i == 2:
return (p, v, t)
elif i == 3:
return (p, q, v)
elif i == 4:
return (t, p, v)
else:
return (v, p, q)
hue = 0
while True:
r, g, b = hsv_to_rgb(hue, 255, 255)
set_rgb(r, g, b)
lcd.clear()
lcd.print('Hue: %d' % hue, 10, 20)
hue = (hue + 1) % 360
time.sleep_ms(50)
この作り方はAIが構成から生成したものです(未検証)。通電前に配線とコードをご確認ください。
この構成はAIが実在するM5Stack部品から設計し、ポート互換をサーバで検証したものです。編集・共有できます。
エディタで開く →UnitKit は M5Stack® 製品向けの非公式ツール。作りたいものを書くと、部品リストと配線図が出ます。