【掌控】mpython-6…三颗小灯的大舞台

2018-10-028822
AI 快速预览详细 收起
本文介绍了如何使用mPython掌控板上的3颗ws2812灯珠进行编程控制,实现渐变、流水、呼吸等多种灯效。首先导入mpython模块,然后通过for循环控制每个像素点的颜色,并使用write()函数将颜色输出到RGB灯。适合初学者学习for循环,激发孩子对编程的兴趣。


掌控板上有三颗板载ws2812灯珠,还没有玩到哎。今天拿来玩,主要学习for循环。


【学习小目标】
1、了解mPython掌控板载3颗ws2812。
2、编程控制,尝试渐变、流水、呼吸灯效。



【一起玩起来】
mPython掌控板载3颗ws2812灯珠,WS2812是一种集成了电流控制芯片的低功耗的RGB三色灯。采用特殊的单线通讯方式控制rgb灯颜色,使用简单。
1、点亮那指路的明灯控制mPython掌控上的3颗RGB, 首先导入mpython模块:from mpython import *
注解导入mpython模块后,会为掌控创建一个NeoPixel对象rgb,控制板载的RGB只需对rgb对象操作。
设置每个像素点颜色:rgb[0] = (255, 0, 0)  # 设置为红色,全亮度rgb[1] = (0, 128, 0)  # 设定为绿色,半亮度rgb[2] = (0, 0, 64)   # 设置为蓝色,四分之一亮度然后使用 write() 将颜色输出到RGB灯: rgb.write()


试试效果,亮起来了,成就感来了;P
【掌控】mpython-6…三颗小灯的大舞台图1

2、来一组灯效
【渐亮】
[mw_shl_code=python,true]from mpython import *
import time

while True:
    for i in range(0,255):
    #设置每个像素点颜色
        rgb[0] = (i,0,0)    # 设置红色
        rgb[1] = (0,i,0)  # 设定为绿色
        rgb[2] = (0,0,i)   # 设置为蓝色
        rgb.write()           #将颜色输出到RGB灯
        time.sleep_ms(10)
       [/mw_shl_code]

【渐暗】
[mw_shl_code=python,true]from mpython import *
import time

while True:
    for i in range(255,0,-1):
    #设置每个像素点颜色
        rgb[0] = (i,0,0)    # 设置为红色
        rgb[1] = (0,i,0)  # 设定为绿色
        rgb[2] = (0,0,i)   # 设置为蓝色
        rgb.write()           #将颜色输出到RGB灯
        time.sleep_ms(10)
       [/mw_shl_code]

【渐亮再渐暗】
[mw_shl_code=python,true]from mpython import *
import time

while True:
    for i in range(255,0,-1):
        #设置每个像素点颜色
        rgb[0] = (i,0,0)    # 设置为红色
        rgb[1] = (0,i,0)  # 设定为绿色
        rgb[2] = (0,0,i)   # 设置为蓝色
        rgb.write()           #将颜色输出到RGB灯
        time.sleep_ms(1)
    for i in range(0,255):
        #设置每个像素点颜色
        rgb[0] = (i,0,0)    # 设置为红色
        rgb[1] = (0,i,0)  # 设定为绿色
        rgb[2] = (0,0,i)   # 设置为蓝色
        rgb.write()           #将颜色输出到RGB灯
        time.sleep_ms(1)      [/mw_shl_code]
【同色呼吸】
[mw_shl_code=python,true]from mpython import *
import time

while True:
    for i in range(0, 256):
        rgb.fill((i, 0, 0))   # 三灯全红
        rgb.write()
        time.sleep_ms(3)
    for i in range(0, 256):
        rgb.fill((0, i, 0))   # 三灯全绿
        rgb.write()
        time.sleep_ms(3)
    for i in range(0, 256):
        rgb.fill((0, 0, i))   # 三灯全蓝
        rgb.write()
        time.sleep_ms(3)        [/mw_shl_code]

来一个效果:




【流水渐亮】
[mw_shl_code=python,true]from mpython import *
import time

while True:
    for i in range(0,255,5):
        #设置每个像素点颜色
        rgb[0] = (i,0,0)    # 设置红色
        rgb[1] = (0,0,0)  # 设定为绿色
        rgb[2] = (0,0,0)   # 设置为蓝色
        rgb.write()           #将颜色输出到RGB灯
        time.sleep_ms(100)   
        rgb[0] = (0,0,0)   
        rgb[1] = (0,i,0)   
        rgb[2] = (0,0,0)   
        rgb.write()           
        time.sleep_ms(100)
        rgb[0] = (0,0,0)   
        rgb[1] = (0,0,0)   
        rgb[2] = (0,0,i)   
        rgb.write()           
        time.sleep_ms(100)      [/mw_shl_code]



【RGB彩色呼吸氛围灯】
程序效果:RGB氛围灯红、绿、蓝三色混合渐变显示出多种颜色,呈现出彩色呼吸效果。
[mw_shl_code=python,true]
from mpython import *  #导入掌控库
import time   #引入时间库

while True:
    red = 0
    green = 0
    blue = 255
    for i in range(255):   
        rgb.fill((i, 0, 255 - i))        
        rgb.write()
        time.sleep_ms(1)
    for i in range(255):   
        rgb.fill((255 - i, i, 0))   
        rgb.write()
        time.sleep_ms(1)
    for i in range(255):   
        rgb.fill((0, 255 - i, i))   
        rgb.write()
        time.sleep_ms(1)[/mw_shl_code]


【全亮全灭】
这里用到了目前帮助文档里还没写上的函数。

[mw_shl_code=python,true]from mpython import *
import time

while True:
    rgb.fill((50,0,0))   # 三灯全红
    rgb.write()
    time.sleep(3)
    rgb.fill((0,0,0))    # 三灯全灭
    rgb.write()
    time.sleep(3)[/mw_shl_code]



上面程序也不够简练,灯效也一般。建议自定义函数,也可以整合到别的项目中,例如上一帖子的个性徽章。
好吧,各种灯效自己来玩吧。
欢迎来拍砖。

创作许可协议

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

评论(4)
三春牛-创客
三春牛-创客
灯挺漂亮的。
三春牛-创客
三春牛-创客
可以做mind+的程序吗?
三春牛-创客
三春牛-创客
但是代码看不懂
三春牛-创客
三春牛-创客
这个不错
- 没有更多了 -