本文来源电子发烧友社区,作者:HonestQiao, 帖子地址:https://bbs.elecfans.com/jishu_2287630_1_1.html
流水灯效果(开发板体验视频,详见作者原文链接)
赛昉科技昉·星光RISC-V单板计算机上,为我们提供了40Pin接口,其中就要SPI接口。
今天的实例分享,就是使用SPI来驱动WS2812B炫彩灯珠。
WS2812B是个好东西,在很多场合,都能使用。
节假日,有很多地方,也用到了上面这种炫彩灯带装点气氛。
另外,还有下面这种点阵炫彩灯板:
作为技术宅男,情人节or七夕做一个,保准抱得美人夜归!
另外,在很多开发板上,也提供了一颗WS2812B灯珠,方便测试使用:
除了上面的单颗、点阵、条带等,还能根据自己需要,给整成各种各样的形状。
因为,它本质上,都是有一颗颗小灯珠给连起来的:
可以单颗使用,也可以上千颗使用。
今天不玩复杂的,就先分享,驱动WS2812B灯板上的单颗灯珠(第一颗)的方法。
首先,请参考官方文档,启用SPI:
启用成功后,登录系统,执行命令 ls -lh /dev/spi*,就能看到/dev/spidev0.0:
然后设置/dev/spidev0.0可被普通用户使用:
WS2812B的电源,需要单独的5V供电,不要使用40Pin的接口,输出电流有限制,避免产生副作用。
我使用的是用USB接口接了一个USB2TTL,把其中的电源+给WS2812B灯板供电。
参考官方文档,后,具体的连线如下:
连好后如下:
然后,就可以使用python进行编程,通过spi控制WS2812B灯珠了。
首先,需要安装spidev:
安装后spidev后,我们就在python中,通过spidev控制WS2812B了。
其次,通过网上众多的WS2812B资料,了解到,要控制一颗灯珠,需要发送24bits的数据,每8bits为一组,分别用于控制GRB三种颜色。
而控制设备发送数据的时候,通常需要发送24bytes,具体如下:
第一行,WS2812B自身的控制器收到后,每byte会解析为0或者1,以上0x80解析为0,0xf8解析为1,最终为8bits:00000001,表示G的亮度为0x01。
如果第一行,全部为0xf8,则最终为11111111,表示G的亮度为0xff,也就是255。
如果第一行,全部为0x80,则最终为00000000,表示G的亮度为0x00,也就是0,熄灭。
以上的0x80和0xf8为经验数值,大家可以查看网上的资料了解。
除了发送的数据,SPI还需要设置发送的速度,经验值为6.4MHz,也就是6400000。
最终的代码如下:
上面的代码,重点只有下面三条:
- spidev.SpiDev():实例化一个spidev设备
- spi.open(0, 0):打开/dev/spi0.0
- spi.xfer(ledArray, speed_hz):以指定的速率发送需要的数据
然后,就是交替发送[0,0,0]和[1,0,0]来控制第一颗灯珠GRB,从而形成亮灭效果了。
在发送数据的定义数组中:
前面说了,可以通过设置0x80和0xf8,来控制G的亮度。
同样的,还可以设置第二行、第三行,来控制GRB三中颜色的力度,从而达到炫彩的目的。
具体的颜色数目:255 * 255 * 255 = 16581375,160多万,真得很炫彩。
以上展示的,是控制第一颗灯珠,需要24bytes的数据;而发送2组24bytes数据,就可以控制两颗;以此类推,要控制更多的,就发送24倍数组bytes了。
附带的视频,就是控制了64颗,形成了简单流水灯的效果。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
RISC-V
+关注
关注
45文章
2271浏览量
46131 -
赛昉科技
+关注
关注
3文章
152浏览量
14275
发布评论请先 登录
相关推荐
预售启动!昉·星光 2 AI套件正式发布,基于RISC-V构建AI算力
10月24日,昉·星光2(VisionFive2)AI套件正式开启预售。该套件由中国RISC-V软硬件生态领导者赛昉科技携手边缘人工智能(A
Ubuntu现已适配RISC-V单板计算机Milk-V Mars
近期,Canonical宣布优化的Ubuntu24.04镜像已可用于RISC-V单板计算机Milk-VMars。Milk-VMars由深圳市群芯闪耀科技有限公司(Milk-V)设计并推出,搭载
信用卡大小的 RISC-V 单板计算机介绍
信用卡大小的 RISC-V 单板计算机 —— Mars
Mars 由深圳市群芯闪耀科技有限公司(Milk-V)设计并推出,搭载赛昉科技
发表于 04-12 16:39
赛昉科技VisionFive 2生态进展双周报(2.1-2.29)
Image for VisionFive 2)
社区开发者发布4篇【昉·星光 2高性能RISC-V单板计算机体验】系列文章,内容包括:为Ubuntu安装Docker及常用软件;以容器
发表于 02-29 15:45
【昉·星光 2 高性能RISC-V单板计算机体验】以容器的方式安装 HomeAssistant
【昉·星光 2 高性能RISC-V单板计算机体验】以容器的方式安装 HomeAssistant
下载并启动容器
HomeAssisatant 官方并没有提供基于
发表于 02-21 18:07
【昉·星光 2 高性能RISC-V单板计算机体验】为 Ubuntu 安装 Docker 及常用软件
【昉·星光 2 高性能RISC-V单板计算机体验】为 Ubuntu 安装 Docker 及常用软件
目的
为了更好的利用星光2,决定使用容器
发表于 02-21 17:54
【昉·星光 2 高性能RISC-V单板计算机体验】VisionFive2开箱+安装Ubuntu
【昉·星光 2 高性能RISC-V单板计算机体验】VisionFive2开箱+安装Ubuntu
前言
很感谢赛
发表于 02-21 17:49
昉·星光2 RISC-V单板计算机体验(三) - SSH连接
昉·星光2 RISC-V单板计算机体验(三) - SSH连接 一、官方资料 RISC-V官网: [https://rvspace.org]
评论