Невозможно запустить rpi_WS281x на 64-битной Raspberry PiPython

Программы на Python
Anonymous
Невозможно запустить rpi_WS281x на 64-битной Raspberry Pi

Сообщение Anonymous »

Когда я пытаюсь инициализировать интерфейс WS281x с помощью
from rpi_ws281x import *
strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS, LED_CHANNEL)
strip.begin()

Это вызывает ошибку на 64-битных версиях Pi
Traceback (most recent call last):
File "/home/pi/Documents/Test.py", line 28, in
strip.begin()
File "/usr/local/lib/python3.9/dist-packages/rpi_ws281x/rpi_ws281x.py", line 143, in begin
raise RuntimeError('ws2811_init failed with code {0} ({1})'.format(resp, str_resp))
RuntimeError: ws2811_init failed with code -3 (Hardware revision is not supported)

Если я запускаю тот же код на том же Raspberry Pi с 32-битной операционной системой, это работает
Я пробовал различные ОС RPi:
  • Raspbian GNU/Linux 10 (buster) – 32-битная версия
  • Debian GNU/Linux 11 (яблочко) – 32-битная версия это работает
  • Книжный червь, 64-битный полный образ (Debian 12) – 64-битная версия выдает код ошибки -3
Чтобы воспроизвести эту ошибку. Начните с 64-битного образа RPi
sudo pip3 install rpi_ws281x
sudo pip3 install adafruit-circuitpython-neopixel
sudo python3 -m pip install --force-reinstall adafruit-blinka

Отредактируйте файл /boot/config.txt и измените dtparam=audio=on на dtparam=audio=off.
Из окна терминала: Sudo Thonny
Создайте новый py-файл
from rpi_ws281x import *
LED_COUNT = 50
LED_PIN = 18
#LED_PIN = 10
LED_FREQ_HZ = 800000
LED_DMA = 10
LED_BRIGHTNESS = 65
LED_INVERT = False
LED_CHANNEL = 0
strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS, LED_CHANNEL)
strip.begin() #This throws an error on 64 bit Pi's

color = Color(50, 50, 50)
for i in range(strip.numPixels()):
strip.setPixelColor(i, color)
strip.show()


Подробнее здесь: https://stackoverflow.com/questions/798 ... spberry-pi

Вернуться в «Python»