灯带的彩虹条驱动(python)

micro:bit编程、教学、展示
STEM
回复
头像
shaoziyang
帖子: 3919
注册时间: 2019年 10月 21日 13:48

灯带的彩虹条驱动(python)

#1

帖子 shaoziyang »

在makecode中,灯带有专门的彩虹条显示,可以让灯带以彩虹方式渐变。在python中,没有直接提供这样的函数,因此我写了一个,给大家参考。

代码: 全选

from microbit import *
import neopixel

np = neopixel.NeoPixel(pin1 ,32)

def np_rainbow(np, num, bright=32, offset = 0):
    rb = ((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((rb[t0][0] + (t-t0)*(rb[t0+1][0]-rb[t0][0]))*bright)>>8
        g = round((rb[t0][1] + (t-t0)*(rb[t0+1][1]-rb[t0][1]))*bright)>>8
        b = round((rb[t0][2] + (t-t0)*(rb[t0+1][2]-rb[t0][2]))*bright)>>8
        np[(i+offset)%num] = (r, g, b)

np_rainbow(np, 32, bright=16, offset=0)
np.show()
可以通过np_rainbow()函数,设置彩虹条的长度、亮度、偏移量等参数,适合不同型号的灯带(如果需要在灯板上显示,需要做少量修改)。
如果我们定时修改偏移量,就可以实现选择彩虹的效果。如:

代码: 全选

n = 0
while 1:
    np_rainbow(np, 32, offset = n)
    np.show()
    n += 1
    s leep(100)
将 n+=1 改为 n-=1就可以变为反向旋转。

 

回复

  • 随机主题
    回复总数
    阅读次数
    最新文章