0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

【赛昉科技昉·星光RISC-V单板计算机试用体验】Debian-StarFive下的SPI驱动WS2812B炫彩灯珠

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-11-14 14:44 次阅读

本文来源电子发烧友社区,作者:HonestQiao, 帖子地址:https://bbs.elecfans.com/jishu_2287630_1_1.html

流水灯效果(开发板体验视频,详见作者原文链接)

本帖最后由 HonestQiao 于 2022-6-19 00:22 编辑

赛昉科技昉·星光RISC-V单板计算机上,为我们提供了40Pin接口,其中就要SPI接口。
今天的实例分享,就是使用SPI来驱动WS2812B炫彩灯珠。

WS2812B是个好东西,在很多场合,都能使用。

poYBAGKt6rSAZk6VAAIB1_oaHJs71.jpeg

节假日,有很多地方,也用到了上面这种炫彩灯带装点气氛。

另外,还有下面这种点阵炫彩灯板:
poYBAGKt6_eAYSosAAGs1FlOtW8353.jpg

作为技术宅男,情人节or七夕做一个,保准抱得美人夜归!

另外,在很多开发板上,也提供了一颗WS2812B灯珠,方便测试使用:
pYYBAGKt7KyAWcmGAAL8MPei8oE937.jpg


除了上面的单颗、点阵、条带等,还能根据自己需要,给整成各种各样的形状。
因为,它本质上,都是有一颗颗小灯珠给连起来的:
pYYBAGKt7feAKtQ7AAYwUv_XZiI133.jpg

可以单颗使用,也可以上千颗使用。

今天不玩复杂的,就先分享,驱动WS2812B灯板上的单颗灯珠(第一颗)的方法。

首先,请参考官方文档,启用SPI:
poYBAGKt7mGAGkopAAp0FtLNk88629.png


启用成功后,登录系统,执行命令 ls -lh /dev/spi*,就能看到/dev/spidev0.0:
poYBAGKt7q-AZ5m3AAE67YNDzFE935.png

然后设置/dev/spidev0.0可被普通用户使用:
pYYBAGKt-6uAB_5tAAEESwhcg0A705.png


WS2812B的电源,需要单独的5V供电,不要使用40Pin的接口,输出电流有限制,避免产生副作用。
我使用的是用USB接口接了一个USB2TTL,把其中的电源+给WS2812B灯板供电。
poYBAGKt7-WAPPWtADLNWuoxK5A61.jpeg


参考官方文档,后,具体的连线如下:
poYBAGKt8TOANLibADEUfgO6_eo257.png


连好后如下:
poYBAGKt792AX7-nACfUkmy9IHI931.png


然后,就可以使用python进行编程,通过spi控制WS2812B灯珠了。

首先,需要安装spidev:
pYYBAGKt8ZCAe1BOAAJF3oJPf6Y957.png

安装后spidev后,我们就在python中,通过spidev控制WS2812B了。

其次,通过网上众多的WS2812B资料,了解到,要控制一颗灯珠,需要发送24bits的数据,每8bits为一组,分别用于控制GRB三种颜色。
而控制设备发送数据的时候,通常需要发送24bytes,具体如下:
pYYBAGKt9z6AU5vWAACTF-xg8zg836.png

第一行,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。
最终的代码如下:
pYYBAGKt-HqAck3sAAOhe5TwfMo852.png


上面的代码,重点只有下面三条:
  • 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
收藏 人收藏

    评论

    相关推荐

    科技亮相世界互联网大会,精彩呈现RISC-V创新成果

    丰富的RISC-V创新成果,包括·惊鸿-7110(JH-7110)RISC-V应用处理器,·星光2(VisionFive2)
    的头像 发表于 11-28 15:14 329次阅读
    <b class='flag-5'>赛</b><b class='flag-5'>昉</b>科技亮相世界互联网大会,精彩呈现<b class='flag-5'>RISC-V</b>创新成果

    预售启动!·星光 2 AI套件正式发布,基于RISC-V构建AI算力

    10月24日,·星光2(VisionFive2)AI套件正式开启预售。该套件由中国RISC-V软硬件生态领导者科技携手边缘人工智能(A
    的头像 发表于 10-25 08:05 204次阅读
    预售启动!<b class='flag-5'>昉</b>·<b class='flag-5'>星光</b> 2 AI套件正式发布,基于<b class='flag-5'>RISC-V</b>构建AI算力

    Ubuntu现已适配RISC-V单板计算机Milk-V Mars

    近期,Canonical宣布优化的Ubuntu24.04镜像已可用于RISC-V单板计算机Milk-VMars。Milk-VMars由深圳市群芯闪耀科技有限公司(Milk-V)设计并推出,搭载
    的头像 发表于 06-12 08:19 456次阅读
    Ubuntu现已适配<b class='flag-5'>RISC-V</b><b class='flag-5'>单板计算机</b>Milk-<b class='flag-5'>V</b> Mars

    畅玩·星光 2|手把手教你搭建基于RISC-V的家用NAS

    方案。通过科技与开源社区的共同努力,·星光2(VisionFive2)RISC-V单板计算机
    的头像 发表于 06-04 08:19 919次阅读
    畅玩<b class='flag-5'>昉</b>·<b class='flag-5'>星光</b> 2|手把手教你搭建基于<b class='flag-5'>RISC-V</b>的家用NAS

    信用卡大小的 RISC-V 单板计算机介绍

    信用卡大小的 RISC-V 单板计算机 —— Mars Mars 由深圳市群芯闪耀科技有限公司(Milk-V)设计并推出,搭载科技
    发表于 04-12 16:39

    科技为RISC-V人才培育赋能

    中国RISC-V软硬件生态领导者,科技受邀在峰会发表主题演讲,并正式加入RISC-V国际人才培养认证中心。
    的头像 发表于 04-02 08:18 496次阅读
    <b class='flag-5'>赛</b><b class='flag-5'>昉</b>科技为<b class='flag-5'>RISC-V</b>人才培育赋能

    科技VisionFive 2生态进展双周报(2.1-2.29)

    Image for VisionFive 2) 社区开发者发布4篇【·星光 2高性能RISC-V单板计算机体验】系列文章,内容包括:为Ubuntu安装Docker及常用软件;以容器
    发表于 02-29 15:45

    RISC-V智能化网络解决方案|科技·星光 2成功运行OpenWrt

    。近期,科技在·星光2(VisionFive2)RISC-V单板计算机上成功运行OpenW
    的头像 发表于 02-23 08:18 666次阅读
    <b class='flag-5'>RISC-V</b>智能化网络解决方案|<b class='flag-5'>赛</b><b class='flag-5'>昉</b>科技<b class='flag-5'>昉</b>·<b class='flag-5'>星光</b> 2成功运行OpenWrt

    ·星光 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]
    的头像 发表于 02-21 10:21 495次阅读
    <b class='flag-5'>昉</b>·<b class='flag-5'>星光</b>2 <b class='flag-5'>RISC-V</b><b class='flag-5'>单板计算机</b>体验(三) - SSH连接

    ·星光2 RISC-V单板计算机体验(二) - 系统环境

    ·星光2 RISC-V单板计算机体验(二) - 系统环境 一、官方资料 RISC-V官网: [https://rvspace.org]
    的头像 发表于 02-21 10:15 652次阅读
    <b class='flag-5'>昉</b>·<b class='flag-5'>星光</b>2 <b class='flag-5'>RISC-V</b><b class='flag-5'>单板计算机</b>体验(二) - 系统环境

    ·星光2 RISC-V单板计算机体验(一) - 开箱

    ·星光2 RISC-V单板计算机体验(一) - 开箱 一、开箱 ·星光2( VisionFi
    的头像 发表于 02-21 10:10 714次阅读
    <b class='flag-5'>昉</b>·<b class='flag-5'>星光</b>2 <b class='flag-5'>RISC-V</b><b class='flag-5'>单板计算机</b>体验(一) - 开箱

    ·星光 2 高性能RISC-V单板计算机试用体验】开箱及装载Debian系统

    上周收到了·星光 2高性能RISC-V单板计算机开发板,在此非常感谢科技提供的
    发表于 01-24 00:32