树莓派上 apa102-pi 库的使用(LED 灯条)

Spoony 64.55m2019-09-212311 次点击
Apa102-pi is a pure Python library to drive APA102 type LED strands. It is supposed to work on a Raspberry Pi, and is not tested on any other platform.

首先需要安装 Adafruit_Python_GPIO
https://github.com/adafruit/Adafruit_Python_GPIO
```
sudo apt-get update
sudo apt-get install build-essential python-pip python-dev python-smbus git
git clone https://github.com/adafruit/Adafruit_Python_GPIO.git
cd Adafruit_Python_GPIO
sudo python setup.py install
```
再安 Clone
https://github.com/tinue/apa102-pi

修改 sample.py,可选
```
# Initialize the library and the strip
strip = apa102.APA102(num_led=4, global_brightness=20, mosi=17, sclk=4,
order='rbg')

# Turn off all pixels (sometimes a few light up when the strip gets power)
strip.clear_strip()

# Prepare a few individual pixels
strip.set_pixel_rgb(0, 0xFF0000) # Red
strip.set_pixel_rgb(1, 0x00FF00) # White
strip.set_pixel_rgb(2, 0x0000FF) # Green
strip.set_pixel_rgb(3, 0xFF00FF) # Green

# Copy the buffer to the Strip (i.e. show the prepared pixels)
strip.show()

# Wait a few Seconds, to check the result
time.sleep(20)
```
num_led 是灯条上 LED 的数量。
set_pixel_rgb 方法后面第一个参数是灯条上 LED 的索引,从 0 开始,再后面的参数是颜色编码。
收藏 ♥ 感谢
RaspiSQH 120.5m 2019-09-21 
我看见adafruit-gpio就生气.....上次搞小时钟的时候,这个库莫名其妙地报错,好多文件明明在那个地方却提示找不到,当时所有办法试过了无奈重刷.....昨天打开想更新一下,结果又出现了......
Spoony 小组长 2019-09-21 
@RaspiSQH 卸载之后,指定python版本号重装一般可以解决。
RaspiSQH 120.5m 2019-09-21 
@Spoony QAQ要是有用我也不重刷了....淦.....pip装过,git clone下来装也不行,不知道卸载重装多少次了......唉,不说了,换luma去了。看了一下,luma的库确实比adafruit的要完善很多,代码可读性更高,用户也比较多,而且有多到感人的example。
RaspiSQH 120.5m 2020-07-21 
刚才发现这个库有点问题。。。。
用这个库运行一段时间后就会卡住,show()可以正常调用但是硬件不反应。
盲猜spi问题。
用的是这个程序:

from apa102_pi.driver import apa102
from time import sleep

s = apa102.APA102(num_led=4, global_brightness=20, mosi=17, sclk=4, order='rgb')

while True:
s.set_pixel_rgb(3,0x000000)
s.set_pixel_rgb(0,0xff0000)
s.set_pixel_rgb(1,0x00ff00)
s.show()
print("1")
sleep(0.5)
s.set_pixel_rgb(0,0x000000)
s.set_pixel_rgb(1,0xff0000)
s.set_pixel_rgb(2,0x00ff00)
s.show()
print("2")
sleep(0.5)
s.set_pixel_rgb(1,0x000000)
s.set_pixel_rgb(2,0xff0000)
s.set_pixel_rgb(3,0x00ff00)
s.show()
print("3")
sleep(0.5)
s.set_pixel_rgb(2,0x000000)
s.set_pixel_rgb(3,0xff0000)
s.set_pixel_rgb(0,0x00ff00)
s.show()
print("4")
sleep(0.5)
Spoony 小组长 2020-07-21 
@RaspiSQH 是有这个问题,所以我每次都是 new 一个 apa102,然而你提交的 PR 给修复了这个问题。。
RaspiSQH 120.5m 2020-07-21 
@Spoony emmm,原来是这样...怪不得我用修改后的程序过一会儿就不动了.....
但是github issues里面没有相关的报告?
所以这个是哪里的问题呢.....
Spoony 小组长 2020-07-21 
猜测是 SPI 控制方面不同步,也是调试过一阵才发现只能这么解决。

登录注册 后可回复。




› 相关内容关注微信公众号