911|6

2462

帖子

0

资源

纯净的硅(高级)

【行空板 Python编程学习主控板】四:驱动RGB led灯 [复制链接]

本帖最后由 数码小叶 于 2022-11-13 20:31 编辑

行空板外设采用的是pinpong库去驱动,之前没有接触过pinpong库,所以还是需要先了解下。在官方文档里有介绍“pinpong库是一套控制开源硬件主控板的Python库,基于Firmata协议并兼容MicroPython语法。借助于pinpong库,直接用Python代码就能给各种常见的开源硬件编程。pinpong库的设计,是为了让开发者在开发过程中不用被繁杂的硬件型号束缚,而将重点转移到软件的实现。

pinpong库的文档结构很清晰,示例以及教程都是由易到难,由简单到复杂

2022-11-13_15-36-40.png

 

pinpong库由于支持众多的主控板及开源硬件,因此分成了3个包,board、extension和libs,board包中放置主板支持的功能及常用库,extension为定制类主控,libs中放置其他传感器的扩展库”,因此使用时,需要先导入

from pinpong.board import xxx   #board包中的库
from pinpong.libs.xxx    #libs包中的库
from pinpong.extension.xxx    #extension包中的主板

Board().begin() #初始化,连接协处理器,检查固件为空或版本不对则自动烧录

2022-11-13_20-02-07.png

 

行空板背面有三个led在一起,一个红色的POWER,一个红色的USER,一个蓝色的L。行空板没有提供原理图,在引脚说明里可以找到L的定义 :P25,因此可以pinpong来点亮L试试。

在pinpong库文档里,有Pin类介绍说明

2022-11-13_16-23-07.png

 

导入需要的模块,需要延时操作,因此也导入了time模块

from pinpong.board import Board,Pin
import time

Board().begin()
led = Pin(Pin.P25, Pin.OUT)

while True:
  led.value(1)
  time.sleep(0.5)
  led.value(0)
  time.sleep(0.5)


 

 

驱动单个的led已经ok,就可以去驱动WS2812B了,WS2812B是比较常见的RGB led,其优点是集发光和控制于一体,数据协议采用单线归零码的通讯方式

2022-11-13_16-39-15.png

 

之所以应用广泛,就是因为只需要一个引脚就可以控制N个LED,只要电流足够。

2022-11-13_16-40-12.png

 

在pinpong库里,有WS2812的应用示例-2-07-neopixel:WS2812灯带,根据应用示例,只需要导入neopixel类,就可以很方便的直接操作了

from pinpong.board import Board,Pin,NeoPixel
from unihiker import GUI
import time

u_gui=GUI()
Board().begin()
NEOPIXEL_PIN = Pin(Pin.P1)
PIXELS_NUM = 6

u_gui.draw_text(text="测试五:Mind+",x=20,y=160,font_size=20, color="#CC33CC")
np1 = NeoPixel(NEOPIXEL_PIN,PIXELS_NUM)
np1[1] = (0,255,0)

while True:
   time.sleep(1)

微信图片_20221113162144.jpg

while True:
    for RGB_LED in range(0, 6):
        np1[RGB_LED] = (0,255,0)
        time.sleep(0.5)
    for RGB_LED in range(0, 6):
        np1[RGB_LED] = (0,0,0)
        time.sleep(0.5)



 

NeoPixel类里实现了很多操作,比如移位操作(设定好的颜色依次移动),循环操作(设定好的颜色和灯数循环移动)、随机色等等,几乎满足了常见的LED灯串的需求。


回复

2931

帖子

3

资源

版主

这是自己打了一个底板吗?非常牛的操作!

点评

额。。。买的成品  详情 回复 发表于 2022-11-14 21:20

回复

5748

帖子

18

资源

五彩晶圆(中级)

确实比C码一堆代码方便!

点评

那得感谢前人,用C封装好了库  详情 回复 发表于 2022-11-14 21:19
个人签名

默认摸鱼,再摸鱼。2022、9、28


回复

2462

帖子

0

资源

纯净的硅(高级)

freebsder 发表于 2022-11-14 19:09 确实比C码一堆代码方便!

那得感谢前人,用C封装好了库

点评

如果不考虑效率和资源用量,嵌入式都能用这种做开放,时间上确实快多了。  详情 回复 发表于 2022-11-15 16:54

回复

2462

帖子

0

资源

纯净的硅(高级)

lugl4313820 发表于 2022-11-14 08:05 这是自己打了一个底板吗?非常牛的操作!

额。。。买的成品


回复

5748

帖子

18

资源

五彩晶圆(中级)

数码小叶 发表于 2022-11-14 21:19 那得感谢前人,用C封装好了库

如果不考虑效率和资源用量,嵌入式都能用这种做开放,时间上确实快多了。

点评

确实,投入时间几乎是几何倍数的减少,犹如用树莓派做核心板一个效果  详情 回复 发表于 2022-11-15 21:59
个人签名

默认摸鱼,再摸鱼。2022、9、28


回复

2462

帖子

0

资源

纯净的硅(高级)

freebsder 发表于 2022-11-15 16:54 如果不考虑效率和资源用量,嵌入式都能用这种做开放,时间上确实快多了。

确实,投入时间几乎是几何倍数的减少,犹如用树莓派做核心板一个效果


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

相关帖子
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2022 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表