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
    +关注

    关注

    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单板计算机试用体验】开箱及装载Debian系统

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

    ·星光 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单板计算机体验】2更换Debian操作系统

    接上两篇:【·星光 2 高性能RISC-V单板计算机体验】1初识科技
    发表于 08-31 00:03

    ·星光 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