Ищу библиотеку для управления светодиодами с помощью FastLED через последовательную связь с другим устройством, работающим на Python.
У меня есть светодиодный дисплей, подключенный к микроконтроллеру Teensy с помощью библиотеки FastLED, который подключен к Raspberry Pi Zero, работающему на Python, через USB-концентратор.
Я ищу существующую библиотеку, которая обрабатывает последовательную связь, чтобы я мог запускать команды на Python, которые запускают эквивалентные команды в FastLED на Teensy эффективно и с учетом частоты кадров.
Я много раз пытался найти информацию в Google и в документации FastLED, чтобы найти что-нибудь подобное. Хотя существует множество примеров кода для управления светодиодными дисплеями через последовательный порт, я не нашёл универсальной библиотеки или пакета для этого.
Например, я ищу что-то вроде этого (упрощенно):
На RPi:
dis = Display()
dis.connect()
for i in range(10):
dis.setLED(i, (64, 0, 0))
Заставит Тинси выполнить:
leds[i].r = data[i];
leds[i].g = data[i + 1];
leds[i].b = data[i + 2];
Я ожидаю других удобных функций, таких как:
leds = [11, 15, 19]
data = [
(32, 64, 96),
(64, 32, 96)
(96, 32, 64)
]
dis.setLEDs(leds, data)
data = ...
dis.setAllLEDs(data)
dis.clear()
Что-то в этом роде.
Конечно, я могу пойти дальше и написать библиотеку, чтобы сделать это самостоятельно, но я не могу поверить, что ее еще не существует, поэтому надеюсь, кто-нибудь укажет мне на что-нибудь.
@Bill, 👍-1
Обсуждение1 ответ
Это не идеальный ответ, но это лучшее, что я смог найти.
Robin2 на форуме Arduino написал хорошую статью о передовых методах последовательной связи и демонстрацию того, как организовать связь между Arduino и другим компьютером под управлением Python:
- Основы последовательного ввода — обновлено ( апрель 2016 г.)
- Демонстрация связи ПК-Arduino с использованием Python (март 2014 г.)
Хотя эти ресурсы не являются специализированными для работы со светодиодами, я нашел их очень полезными при написании собственного кода.
Ваш ответ можно улучшить, добавив дополнительную информацию. Пожалуйста, [редактируйте], чтобы добавить дополнительные сведения, например, ссылки или документацию, чтобы другие могли подтвердить правильность вашего ответа. Подробнее о том, как писать хорошие ответы, можно узнать [в справочном центре](/help/how-to-answer)., @Community
@CommunityBot Этот ответ содержит две ссылки на материал, частично отвечающий на вопрос, и ссылку на автора. Я не знаю другого способа цитировать веб-ресурсы, кроме URL, автора и даты., @Bill
Для тех, кому интересно, я уже написал обновлённые версии этих скриптов для Python 2 и 3+ и опубликовал их здесь: https://github.com/billtubbs/pyserial-examples/tree/main/robin2_demo, @Bill
- Не удается связаться с ардуино с помощью python (Windows)
- Последовательная связь Arduino с Python: отправка массива
- Построение графика на Python с использованием Tkinter Canvas
- Как отправить целое число через pyserial с Python на Arduino и получить тот же результат?
- Сброс последовательного порта Arduino в последовательном мониторе и Python
- Отправка числа с плавающей запятой из python в arduino
- Serial Comm. проблема синхронизации между Arduino и Pyserial
- Связь Arduino-Pyserial на Python 3, машина Windows: Pyserial.write(), похоже, ничего не делает
Аналогичный вопрос был на Reddit 4 года назад: [Есть ли эквивалентный модуль FastLED для Python?](https://www.reddit.com/r/arduino/comments/knl140/is_there_a_fastled_equivalent_module_for_python/). Один из ответов включает библиотеку Micropython., @Bill
На стороне Python (RPi) используйте PySerial для отправки структурированных данных светодиода. На стороне Teensy (FastLED) считывайте данные с последовательного порта и обновляйте FastLED соответствующим образом., @liaifat85
@liaifat85 спасибо за объяснение. Как я уже сказал, я мог бы сделать это сам, но надеялся, что для этого уже есть библиотека., @Bill
Только что нашел эту библиотеку для обработки последовательной связи Arduino, [Serial_Packets](https://registry.platformio.org/libraries/zapta/Serial_Packets), которую можно использовать в паре с этой библиотекой Python, [serial-packets](https://pypi.org/project/serial-packets/)., @Bill