本文来源电子发烧友社区,作者: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
+关注
关注
41文章
1908浏览量
45078 -
赛昉科技
+关注
关注
3文章
126浏览量
14146
发布评论请先 登录
相关推荐
信用卡大小的 RISC-V 单板计算机介绍
信用卡大小的 RISC-V 单板计算机 —— Mars
Mars 由深圳市群芯闪耀科技有限公司(Milk-V)设计并推出,搭载赛昉科技
发表于 04-12 16:39
【昉·星光 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单板计算机体验】在昉·星光2上安装配置新编译的OpenWRT
本文是《【昉·星光 2 高性能RISC-V单板计算机体验】在昉·星光2上编译OpenWRT》的下
发表于 11-18 11:22
【昉·星光 2 高性能RISC-V单板计算机体验】+6手把手实战Linux控制小车
感谢 电子发烧友论坛网
感谢 上海赛昉科技有限公司
昉·星光 2 高性能RISC-V单板计算机的
发表于 10-12 10:05
【昉·星光 2 高性能RISC-V单板计算机体验】星光 2 功耗测评
星光 2是迄今最高性能单板机。 搭载高性能昉·惊鸿7110搭载64位高性能四核RISC-V CPU,2MB的二级缓存,工作频率最高可达1.5 GHz。
发表于 09-28 10:34
VisionFive 2单板计算机成功支持Docker容器解决方案
赛昉科技进一步获取。
关于 VisionFive 2
VisionFive 2 是全球第一款集成 3D GPU 的高性能量产 RISC-V 单板计算机,它优越的性能与合理的价格使其成为
发表于 09-08 11:45
【RISC-V + OpenCV 计算机视觉】用 VisionFive 2 昉·星光 2 进行物体识别
广泛应用于视频监控、自动驾驶等领域。
基于Debain操作系统和OpenCV框架,赛昉科技在VisionFive 2(昉·星光 2)RISC-V
发表于 09-08 11:42
【昉·星光 2 高性能RISC-V单板计算机体验】原创3 控制螺旋桨电路的升力大小
控制螺旋桨电路的升力大小,昉·星光 2 高性能RISC-V单板计算机反应敏捷,控制到位,值得上手!
GPIO接口也非常多,非常全。如下图:
谢谢!
发表于 08-31 16:45
【昉·星光 2 高性能RISC-V单板计算机体验】+1控制小车前进后退
感谢 电子发烧友论坛网
感谢 上海赛昉科技有限公司
下面用GPIO方式控制小车前进与后退,如视频所示。
GPIO接口控制效果不错,接下来再用这款“单板计算机”做一些项目。
发表于 08-30 20:15
【昉·星光 2 高性能RISC-V单板计算机体验】1初识赛昉科技StarFive
初识赛昉科技StarFive
接下来为大家做一些小东西,玩一玩。
板子的做工整体来看是非常不错的!值得入手。
谢谢!
发表于 08-07 20:47
【昉·星光 2 高性能RISC-V单板计算机体验】使用之一:星光 2开箱之硬件分析
昉·星光 2 是全球首款集成了GPU的高性能RISC-V单板计算机。与昉·星光1 相比( J
发表于 07-28 15:02
【RISC-V专题】昉·星光 2(VisionFive 2)RISC-V单板计算机免费试用
VisionFive 2是全球首款集成3D GPU的高性能量产RISC-V 单板计算机 。与上一代相比,VisionFive 2全面升级,在处理器工作频率、多媒体处理能力、可扩展性等方面都有显着提升
发表于 05-16 11:26
评论