2018-11-15 19:49:32 [显示全部楼层]
7396浏览
查看: 7396|回复: 5

[入门教程] 【掌控】mpython_28…掌控WS2812 灯带&七彩灯世界

[复制链接]
NeoPixels也被称为WS2812 LED彩带,是连接在一起的全彩色led灯串。你可以设置他它们的红色,绿色和蓝色值, 在0到255之间。neopixel模块可通过精确的时间控制,生成WS2812控制信号。
【掌控】mpython_28…掌控WS2812 灯带&七彩灯世界图1

【实验目的】
1、认识掌控输入输出引脚,初步学习掌控模拟引脚的使用
2、练习WS2812 LED彩带的各种代码控制,实现炫目效果。

【器材准备】
1、掌控板        1
2、DF micro:bit电机扩展板 1 (含电源线)【掌控】mpython_28…掌控WS2812 灯带&七彩灯世界图4
3、WS2812 LED彩灯带   1(本例使用了DF的30灯灯带)

【1】点亮整条灯带

【掌控】mpython_28…掌控WS2812 灯带&七彩灯世界图2

[mw_shl_code=python,true]from mpython import *
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(p16, n=30, bpp=3, timing = 1)  
# 输出引脚 n LED灯的个数 bpp:3:默认为3元组RGB timing:默认等于0,为400KHz速率;等于1,为800KHz速率
np.fill((50, 0, 50))  # 填充所有LED像素 r g b 取值0-255
np.write()  # 数据写入执行[/mw_shl_code]

【2】点亮第n个灯

[mw_shl_code=python,true]from mpython import *
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(p16, n=30, bpp=3, timing = 1)  
# 输出引脚 n LED灯的个数 bpp:3:默认为3元组RGB timing:默认等于0,为400KHz速率;等于1,为800KHz速率

np[0] = (255, 255, 255) # 设置第一个LED像素为白色
np.write()  # 数据写入执行[/mw_shl_code]

【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(p16, n=30, bpp=3, timing = 1)  
# 输出引脚 n LED灯的个数 bpp:3:默认为3元组RGB timing:默认等于0,为400KHz速率;等于1,为800KHz速率

while True:
    for i in range(30):
        np.fill((0, 0, 0))
        np = (255, 0, 255) # 改变颜色
np.write()  # 数据写入执行
        time.sleep_ms(10)  # 改变时间[/mw_shl_code]

【4】经大圣老师验证过的官方例程这个例程可厉害,研究好了,可以学好多东西。

【掌控】mpython_28…掌控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(p16, n=30, bpp=3, timing = 1)  
# 输出引脚 n LED灯的个数 bpp:3:默认为3元组RGB timing:默认等于0,为400KHz速率;等于1,为800KHz速率

def demo(np):
  n = np.n

  # cycle  白色流水灯效
  for i in range(4 * n):
    for j in range(n):
      np[j] = (0, 0, 0)
    np[i % n] = (255, 255, 255)
    np.write()
    time.sleep_ms(25)

  # bounce  蓝色背景 暗灯流水灯效
  for i in range(4 * n):
    for j in range(n):
      np[j] = (0, 0, 128)
    if (i // n) % 2 == 0:
      np[i % n] = (0, 0, 0)
    else:
      np[n - 1 - (i % n)] = (0, 0, 0)
    np.write()
    time.sleep_ms(50)

  # fade in/out  红色呼吸灯效
  for i in range(0, 4 * 256, 8):
    for j in range(n):
      if (i // 256) % 2 == 0:
        val = i & 0xff
      else:
        val = 255 - (i & 0xff)
      np[j] = (val, 0, 0)
    np.write()

  # clear  灭灯
  for i in range(n):
   np = (0, 0, 0)
  np.write()

while True:

  demo(np)[/mw_shl_code]

【扩展练习】
自己玩起来吧。
超多灯效可玩。




44107900  初级技师

发表于 2018-12-23 18:09:32

DF micro:bit电机扩展板可以插掌控板?哪里有销售?
回复

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2018-12-23 18:30:01

44107900 发表于 2018-12-23 18:09
DF micro:bit电机扩展板可以插掌控板?哪里有销售?

扩展板名字上有链接的。https://www.dfrobot.com.cn/goods-1730.html
回复

使用道具 举报

liuyu1009  学徒

发表于 2019-7-22 16:56:42

求详细教程,例如线如何连接等等,小白求助
回复

使用道具 举报

rzyzzxw  版主
 楼主|

发表于 2019-7-22 20:01:45

本帖最后由 rzyzzxw 于 2019-7-22 20:03 编辑
liuyu1009 发表于 2019-7-22 16:56
求详细教程,例如线如何连接等等,小白求助

mPythonX中有图形化编程,也自带例程。接线自定义。MIND+中也很方便编程。
回复

使用道具 举报

liuyu1009  学徒

发表于 2019-7-23 11:02:23

我买了商城里的灯带,加掌控板自家的扩展板,怎么也点不亮,是因为工作电压不够吗?扩展板提供的是3v3的,灯带需要5v的
回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail