rzyzzxw 发表于 2018-10-2 18:47:09

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

本帖最后由 rzyzzxw 于 2018-11-8 08:14 编辑

掌控板上有三颗板载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 = (255, 0, 0)# 设置为红色,全亮度rgb = (0, 128, 0)# 设定为绿色,半亮度rgb = (0, 0, 64)   # 设置为蓝色,四分之一亮度然后使用 write() 将颜色输出到RGB灯: rgb.write()


试试效果,亮起来了,成就感来了;P:


2、来一组灯效
【渐亮】
from mpython import *
import time

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

【渐暗】
from mpython import *
import time

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

【渐亮再渐暗】
from mpython import *
import time

while True:
    for i in range(255,0,-1):
      #设置每个像素点颜色
      rgb = (i,0,0)    # 设置为红色
      rgb = (0,i,0)# 设定为绿色
      rgb = (0,0,i)   # 设置为蓝色
      rgb.write()         #将颜色输出到RGB灯
      time.sleep_ms(1)
    for i in range(0,255):
      #设置每个像素点颜色
      rgb = (i,0,0)    # 设置为红色
      rgb = (0,i,0)# 设定为绿色
      rgb = (0,0,i)   # 设置为蓝色
      rgb.write()         #将颜色输出到RGB灯
      time.sleep_ms(1)      
【同色呼吸】
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)      

来一个效果:
http://v.youku.com/v_show/id_XMzg0Njk1ODcwOA==.html?spm=a2h3j.8428770.3416059.1

http://v.youku.com/v_show/id_XMzg0Njk1OTQ3Mg==.html?spm=a2h3j.8428770.3416059.1

【流水渐亮】
from mpython import *
import time

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

http://v.youku.com/v_show/id_XMzg0Njk3NTU4OA==.html?spm=a2h3j.8428770.3416059.1

【RGB彩色呼吸氛围灯】
程序效果:RGB氛围灯红、绿、蓝三色混合渐变显示出多种颜色,呈现出彩色呼吸效果。

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)
http://v.youku.com/v_show/id_XMzg1NzU0MDI3Mg==.html?spm=a2h3j.8428770.3416059.1

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

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)



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

赤星三春牛! 发表于 2022-2-8 10:47:32

这个不错

赤星三春牛! 发表于 2022-2-8 10:48:33

但是代码看不懂

赤星三春牛! 发表于 2022-2-8 10:49:34

可以做mind+的程序吗?

赤星三春牛! 发表于 2022-2-8 10:50:35

灯挺漂亮的。
页: [1]
查看完整版本: 【掌控】mpython-6…三颗小灯的大舞台