Leds BlinkM 驱动

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

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

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

此驱动程序提供的接口是 3 方面的

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 中找到。必须将三个介于 0 和 255 之间的值写入 multi_intensity 才能更改颜色

$ echo 255 100 50 > multi_intensity

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

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) 用于控制 rgb、淡入淡出、hsb、脚本等的 Sysfs 组...

这个扩展的接口在 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