一个用于计算CIE 1931亮度表的微型库,用于人眼友好的PWM LED亮度。
项目描述
pwm_lightness模块
生成适合人眼视觉感知的LED亮度的亮度校正表。
想要让你的闪烁LED平滑渐变吗?想给LED矩阵字体添加抗锯齿效果吗?使用这个库来校正你的原始线性亮度值,以适应人眼视觉感知的持续性。
这种调整通常被称为 CIE 1931亮度曲线。它也被许多书籍所涵盖。这项研究是在20世纪20年代进行的,最终成为国际照明委员会(CIE)1931标准的一部分。
此模块可以在CircuitPython(以及如果你启用浮点运算构建的MicroPython)上工作。在微控制器环境中,重新计算设备上的表通常过度。使用此库预先计算所需的表并存储为数据,以节省宝贵的RAM。
平滑渐变LED
此示例假设使用 CircuitPython 或 adafruit-blinka。
import time, board, pulseio, pwm_lightness
PWM = pwm_lightness.get_pwm_table(0xffff, max_input=100)
output_pin = pulseio.PWMOut(board.D13)
while True:
for v in range(100, -1, -1):
output_pin.duty_cycle = PWM[v]
time.sleep(0.02)
for v in range(1, 100):
output_pin.duty_cycle = PWM[v]
time.sleep(0.02)
它同样适用于您发送到可编程LED灯带的RGB值。
改善抗锯齿字体或其他8位图像
如下所示使用 Pillow 来让抗锯齿字体更加闪耀,而不是看起来像粗体模糊。
此示例假设一个连接到 I2C Adafruit charlieplexed LED矩阵 的RPi。
import pwm_lightness
PWM = pwm_lightness.get_pwm_table(60) # 0..255 is our max LED PWM value.
import board, busio, adafruit_is31fl3731, PIL
i2c = busio.I2C(board.SCL, board.SDA)
led_matrix = adafruit_is31fl3731.CharlieBonnet(i2c)
font = PIL.ImageFont.truetype('fonts/RobotoCondensed-Regular.ttf', 16)
image = PIL.Image.new('L', (led_matrix.height, led_matrix.width), 0)
draw = PIL.ImageDraw.Draw(image)
# fill=255 gives us the most antialiasing detail to work with. Control
# brightness using the max_output value passed to get_pwm_table() above.
draw.text((0,-1), '?', fill=255, font=font)
image = image.point(PWM) # Corrects linear 0..255 values for PWM lightness.
image = image.transpose(PIL.Image.ROTATE_90) # Match the matrix orientation.
led_matrix.image(image) # Send pixels to our LED display.
项目详情
关闭
pwm_lightness-1.0.1-py2.py3-none-any.whl 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9e4a6656038498d1e8dc921fc4262c2ea8de2afe4fb35b4f0917fe625b90150f |
|
MD5 | 0929f1ef5b5d8db51405121a908d218f |
|
BLAKE2b-256 | 878df35379342499580891ea5bef322b7eef2de4e16eb15414d60f9a5e084bb9 |