2018-11-16 09:38:28 [显示全部楼层]
7020浏览
查看: 7020|回复: 0

[入门教程] 【掌控】mpython_29…掌控WS2812灯带&彩虹灯效

[复制链接]
哪里有彩虹告诉我
能不能把我的愿望还给我

【掌控】mpython_29…掌控WS2812灯带&彩虹灯效图1

听杰伦的彩虹
写彩虹灯效的帖子
【小目标】
1、用掌控实现彩虹灯效
2、尝试实现动起来的彩虹灯效

【器材】
1、掌控板   1
2、DF micro:bit电机扩展板  1(带电源线)【掌控】mpython_29…掌控WS2812灯带&彩虹灯效图4
3、30灯WSDL812灯带
4、浪漫的心情      少许

【效果】
【掌控】mpython_29…掌控WS2812灯带&彩虹灯效图2【掌控】mpython_29…掌控WS2812灯带&彩虹灯效图3

【代码】

[mw_shl_code=python,true]# 源代码来自邵子扬老师
# 汝州一中大圣老师修改测试
from mpython import *
import time
import machine, neopixel

# 定义引脚 经不完全测试 如下引脚可用
p8 = machine.Pin(26)
p13 = machine.Pin(18)
p14 = machine.Pin(19)
p15 = machine.Pin(21)
p16 = machine.Pin(5)

np = neopixel.NeoPixel(p13, n=30, bpp=3, timing = 1)  
# 输出引脚 n LED灯的个数 bpp:3:默认为3元组RGB timing:默认等于0,为400KHz速率;等于1,为800KHz速率

# 定义彩虹灯效
def np_rainbow(np, num, bright=32, offset = 0):
    rgb = ((255,0,0), (255,127,0), (255,255,0), (0,255,0), (0,255,255),(0,0,255),(136,0,255), (255,0,0))
    for i in range(num):
        t = 7*i/num
        t0 = int(t)
        r = round((rgb[t0][0] + (t-t0)*(rgb[t0+1][0]-rgb[t0][0]))*bright)>>8
        g = round((rgb[t0][1] + (t-t0)*(rgb[t0+1][1]-rgb[t0][1]))*bright)>>8
        b = round((rgb[t0][2] + (t-t0)*(rgb[t0+1][2]-rgb[t0][2]))*bright)>>8
        np[(i+offset)%num] = (r, g, b)

np_rainbow(np, 30, bright=255, offset=0) # 设置彩虹条的长度、亮度、偏移量等参数
np.write()  # 执行数据写入[/mw_shl_code]

【扩展】
渐渐增多的彩虹灯

[mw_shl_code=python,true]# 代码前面相同
while 1:
    for j in range(31):
        np.fill((0, 0, 0))
        np_rainbow(np, j, bright=255, offset=0) # 设置彩虹条的长度、亮度、偏移量等参数
        np.write()  # 执行数据写入
        time.sleep(0.1)[/mw_shl_code]
【旋转的彩虹】


[mw_shl_code=python,true]n = 0
while 1:
    np_rainbow(np, 30, bright=255, offset=n) # 设置彩虹条的长度、亮度、偏移量等参数
    n += 1
    np.write()  # 执行数据写入
    time.sleep(0.1)[/mw_shl_code]

将 n+=1 改为 n-=1就可以变为反向旋转。

感谢邵子扬老师论坛教程。
https://www.micropython.org.cn/bbs/forum.php?mod=viewthread&tid=790




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail