10mmRGB全彩LED传感器在掌控下的使用(搬运)

2019-04-287400
AI 快速预览详细 收起
本文介绍了如何在掌控板上使用10mmRGB全彩LED传感器。通过定义HSV到RGB的转换函数,并使用PWM模块控制引脚占空比,实现了颜色渐进变化。所需材料包括10mmRGB全彩LED、掌控板、microbit扩展板和杜邦线。接线方式为V接3.3V,R接P1,G接P0,B接P5。通过编写color.py文件并将其考入掌控板,在REPL界面下运行wheel()函数,可以实现10mmRGB全彩LED的颜色渐进变化。
近来在看台湾赵英杰的《超图解Python物联网实作入门:使用ESP8266与Micropython》(以下简称《超图解Python》)里面一些例子蛮有趣的。
掌控的主芯片是ESP32的,烧录的固件也是基于micropython的,应该可以通用,无非是掌控下的一些引脚及模块的定义重新做“改动”,所以有了“搬运”的想法。

材料:
1. RGB全彩LED一个(Arduino下传感器套装基本都会有)
2. 掌控板
3. microbit扩展板一个
   手头没有掌控的扩展板,盛思的又迟迟不见动静(吐槽下)。microbit的扩展板也可以用,不过需要掌控板反插,本人喵粉,用的是喵家的iobit扩展板。
4. 杜邦线若干(母对母杜邦线,也可以配合面包板使用公对母杜邦线)

接线:(此次用的RGB传感器是共电的,还有一种共地的。)
RGB     掌控
V       3.3V
R       P1
G       P0
B       P5
此次是要使用引脚的 PWM 模块,掌控上的P3和P4引脚不支持PWM。

原理:
颜色表达有RGB和HSV两种格式。两者的转换百度能够查到。此次是通过定义引脚的PWM(Pulse Width Modulation 脉宽调制)模块(module),给出特定的duty(占空比)值,让RGB传感器产生颜色变化。

准备:
需要进行HSV的颜色数据操作,RGB和HSV转换,先编程个color.py 文件作为这个RGB和HSV转换的“库文件”
此程序出处在《超图解Python》书上
color.py 文件内程序如下:

def hsv2rgb(h, s, v):
    if s == 0.0:
        return v, v, v

    r, g, b = v, v, v

    i = int(h/60.0)
    f = h/60.0 - i

    if i == 0:
        g *= 1.0 - s * (1.0 - f)
        b *= 1.0 - s
    elif i == 1:
        r *= 1.0 - s * f
        b *= 1.0 - s
    elif i == 2:
        r *= 1.0 - s
        b *= 1.0 - s * (1.0 - f)
    elif i == 3:
        r *= 1.0 - s
        g *= 1.0 - s * f
    elif i == 4:
        r *= 1.0 - s * (1.0 - f)
        g *= 1.0 - s
    elif i == 5:
        g *= 1.0 - s
        b *= 1.0 - s * f

    return (int(r * 1023.0), int(g * 1023.0), int(b * 1023.0))

把 color.py 文件考入掌控板中

在掌控的 REPL界面下试验:
from mpython import Pin, PWM
import time
import color
R_Pin = PWM(Pin(Pin.P1))
G_Pin = PWM(Pin(Pin.P0))
B_Pin = PWM(Pin(Pin.P5))
def wheel():
    for i in range(360):
        RGB = color.hsv2rgb(i, 1, 1)
        R_Pin.duty(RGB[0])
        G_Pin.duty(RGB[1])
        B_Pin.duty(RGB[2])
        time.sleep_ms(50)



wheel()    # 调用定义的wheel()函数

10mmRGB全彩LED灯会出现颜色的渐进式变化

P.S. 以上程序原出处均出自于《超图解Python》(针对掌控的一些模块及引脚定义做了相应的修改)

10mmRGB全彩LED传感器在掌控下的使用(搬运)图1

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(1)
rzyzzxw
rzyzzxw
DF很快要出掌控扩展板了,出了我送您一块哈。
- 没有更多了 -