Orange Pi + SPI点亮 ws2812
- 开发板型号:
OrangePi One
- 系统版本:
Ubuntu 20.04 focal Desktop
- 接口:
SPI
1. 连线
TB上买的ws2812大概长这样:
细节标在图上了。
带插头的一端连上即可。其带针脚一端是多组灯带串联时候用。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程序即可。当心长时间通电可能导致过热。
注:
- 运行python时需要用sudo
6600000
的波特率,mode=3
[7]时效果较好- 灯珠数在
WS2812
初始化时设置,亮度从0x00
到0xff
设置(就2个16进制位)。