Orange Pi + SPI点亮 ws2812

  • 开发板型号:OrangePi One
  • 系统版本:Ubuntu 20.04 focal Desktop
  • 接口:SPI

1. 连线

TB上买的ws2812大概长这样:

pA1wQWn.jpg

细节标在图上了。

带插头的一端连上即可。其带针脚一端是多组灯带串联时候用。DI接SPI的MOSI

参考博客[1]

2. 启用硬件SPI

在设置里有一个orangepi-config的执行程序,可以对硬件设备进行配置。

好像需要先联网,才能正常打开。

进入system>hardware,把SPI相关选项勾上。按要求重启。

重启之后,用sudo 编辑/boot/orangepiEnv.txt,添加如下语句:

param_spidev_spi_bus=0

再重启,重启之后查看spi设备,应该有结果了

orangepi@orangepione:~/Desktop$ ls /dev | grep spi
spidev0.0

之后重启。

参考了博客[2]

3. 安装wiringOP

3.1 C语言版

从Github仓库[3]下载:

git clone https://github.com/orangepi-xunlong/wiringOP.git

编译安装:

cd wiringOP
sudo ./build clean
sudo ./build

完成后的结果

All Done.
NOTE:To compile programs with wiringPi,you need to add:
-lwiringPi
to your compile line(s)To use the Gertboard,MaxDetect,etc.
code (the devLib),you need to also add:
-1wiringPiDev
to your compile line(s). 

关于WiringOP的其它用法可以参考这往篇博客[4]

3.2 Python版

首先下载仓库:

git clone --recursive https://github.com/orangepi-xunlong/wiringOP-Python.git # 一定带上--recursive

git clone加速可以看看参考资料里的[5]

然后安装前置库:

sudo apt-get install swig python3-dev python3-setuptools

之后build:

python3 generate-bindings.py > bindings.i
sudo python3 setup.py install

4. 使用Python点亮ws2812

按照此博客[6]的方法写Python程序即可。当心长时间通电可能导致过热

注:

  1. 运行python时需要用sudo
  2. 6600000的波特率,mode=3[7]时效果较好
  3. 灯珠数在WS2812初始化时设置,亮度从0x000xff设置(就2个16进制位)。

参考资料


  1. 【全网最详细】 树莓派控制ws2812b灯带 点亮教程_ws2812b直接给5v会亮吗-CSDN博客 ↩︎

  2. Orangepi切换国内源以及spi使能问题_香橙派换华为源-CSDN博客 ↩︎

  3. GitHub - orangepi-xunlong/wiringOP-Python ↩︎

  4. [香橙派开发系列]使用wiringPi控制26个引脚 - Lavender·edgar - 博客园 (cnblogs.com) ↩︎

  5. (不换镜像源、不改host)解决git clone和git clone --recursive速度过慢的问题_git clone以及 recursive慢的问题-CSDN博客 ↩︎

  6. OrangePi——基于SPI驱动ws2812呼吸/渐变灯带_orangepi ws2812-CSDN博客 ↩︎

  7. SPI总线传输的4种模式 - 广漠飘羽 - 博客园 (cnblogs.com) ↩︎

posted @ 2024-09-29 15:17  砥安  阅读(28)  评论(0编辑  收藏  举报