Leds BlinkM 驱动程序

leds-blinkm 驱动程序支持 BlinkM 系列设备。

它们是 RGB-LED 模块,由 (AT)tiny 微控制器驱动,并通过 I2C 进行通信。这些模块的默认地址是 0x09,但可以通过命令更改。通过这种方式,您可以在一条 I2C 总线上菊花链连接多达 127 个 BlinkM 模块。

该设备通过单独的命令接受 RGB 和 HSB 颜色值。您还可以将闪烁序列作为“脚本”存储在控制器中并运行它们。渐变也是一个选项。

此驱动程序提供的接口分为三类

a) 用于触发器的 LED 多色类接口

注册遵循以下方案

blinkm-<i2c-bus-nr>-<i2c-device-nr>:rgb:indicator

$ ls -h /sys/class/leds/blinkm-1-9:rgb:indicator
brightness  device  max_brightness  multi_index  multi_intensity  power  subsystem  trigger  uevent

色调由 multi_intensity 文件控制,亮度由 brightness 文件控制。

写入强度值的顺序可以在 multi_index 中找到。必须向 multi_intensity 写入三个介于 0 到 255 之间的值才能改变颜色

$ echo 255 100 50 > multi_intensity

可以通过向 brightness 文件写入 0 到 255 之间的值来改变整体亮度。

b) 用于触发器的 LED 类接口

注册遵循以下方案

blinkm-<i2c-bus-nr>-<i2c-device-nr>-<color>

$ ls -h /sys/class/leds/blinkm-6-*
/sys/class/leds/blinkm-6-9-blue:
brightness  device  max_brightness  power  subsystem  trigger  uevent

/sys/class/leds/blinkm-6-9-green:
brightness  device  max_brightness  power  subsystem  trigger  uevent

/sys/class/leds/blinkm-6-9-red:
brightness  device  max_brightness  power  subsystem  trigger  uevent

(与 /sys/bus/i2c/devices/6-0009/leds 相同)

我们可以将颜色分为红、绿、蓝进行控制,并为每种颜色分配触发器。

例如:

$ cat blinkm-6-9-blue/brightness
05

$ echo 200 > blinkm-6-9-blue/brightness
$

$ modprobe ledtrig-heartbeat
$ echo heartbeat > blinkm-6-9-green/trigger
$

b) Sysfs 组,用于控制 rgb、渐变、hsb、脚本等...

此扩展接口在 I2C 设备的 sysfs 文件夹中作为 blinkm 文件夹提供。例如,在 /sys/bus/i2c/devices/6-0009/blinkm 下

$ ls -h /sys/bus/i2c/devices/6-0009/blinkm/ blue green red test

目前仅支持设置红色、绿色、蓝色和测试序列。

例如:

$ cat *
00
00
00
#Write into test to start test sequence!#

$ echo 1 > test
$

$ echo 255 > red
$

截至 2024 年 7 月

dl9pf <at> gmx <dot> de jstrauss <at> mailbox <dot> org