因为树莓派5用了新的GPIO驱动方式(Linux系统原生驱动)
导致旧的python库不能用
rpi_ws281x的作者推出了测试版的python库,采用C语言驱动+python调用实现


在这里插入图片描述
ws2812是一款很厉害的芯片,可以用一根线控制多达1000个灯珠,原理可以参考B站: 【颠覆认知!WS2812彻底改变了灯光玩法!一根线如何操控千颗LED?】
本教程需连接github,需要挂梯子
本教程预计花费30+分钟

操作方法

参考:https://github.com/rpi-ws281x/rpi-ws281x-python/releases/tag/pi5-beta2

在安装python库前,首先要编译C语言底层。进入一个你喜欢的目录

编译C语言

参考:https://github.com/rpi-ws281x/rpi-ws281x-python/releases/tag/pi5-beta2
安装准备工具:内核头文件包,设备树编译器, 引脚控制工具,以及git和cmake编译工具

sudo apt install linux-headers device-tree-compiler raspi-utils git cmake

git下载代码源码,并切换到pi5测试分支

git clone https://github.com/jgarff/rpi_ws281x.git
git checkout pi5

进入工程的rp1_ws281x_pwm目录

cd rp1_ws281x
cd rp1_ws281x_pwm

用make编译工程

make
选择使用的引脚

我们一般用BCM的编码作为引脚的常用序号
在这里插入图片描述
这里采用GPIO 18引脚,也可以采用其他引脚

构建设备树,导入到Linux系统

./dts.sh
sudo insmod ./rp1_ws281x_pwm.ko pwm_channel=2
sudo dtoverlay -d . rp1_ws281x_pwm
sudo pinctrl set 18 a3 pn
cd ..
cmake . ; make

运行测试程序,不出所料的话灯应该开始闪烁

sudo ./test

安装python库

树莓派5搭载的新系统,要求python库只能安装在venv虚拟环境里

python -m venv venv
source venv/bin/activate

安装测试库

pip install https://github.com/rpi-ws281x/rpi-ws281x-python/releases/download/pi5-beta2/rpi_ws281x-6.0.0-cp311-cp311-linux_aarch64.whl

下载源码

wget https://github.com/rpi-ws281x/rpi-ws281x-python/archive/refs/tags/pi5-beta2.zip
unzip pi5-beta2.zip

运行测试程序(用venv虚拟环境的路径,在外部系统环境运行)
这时候应该灯就会正常闪了

cd rpi-ws281x-python-pi5-beta2
cd examples
sudo --preserve-env=PATH python strandtest.py

剩下的就修改示例代码吧!

提示

WiringPi官方已停止维护
其作者Gordon Henderson在2019年宣布,由于树莓派基金会官方GPIO驱动和内核的不断变化,他无法再跟上更新,正式停止维护WiringPi。随后在2020年,该库被标记为“已废弃”。

最重要的是,WiringPi不支持树莓派4B及之后的型号(如Pi 5)。如果你在Pi 4/5上强制安装旧版,要么无法安装,要么会导致GPIO控制混乱、系统不稳定甚至损坏。
建议改为用其他库

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐