Как управлять неопикселями, прикрепленными к Digispark?
Я хочу использовать строку Neopixels, прикрепленную к Digispark, свисающему с Rasp 3, в качестве индикаторов для различных ситуаций. Например: двигатель (подключенный к шляпе водителя на шине I2C RasPi) включается или меняет направление. Могу ли я использовать Firmata, или есть что-то подобное для Digispark, что я могу использовать с Python?
@David Contreni, 👍0
Обсуждение2 ответа
Вам нужен специальный микроконтроллер, так как вам нужно очень точное время для управления неопикселями. Он хорошо работает на ATtiny85, мы используем платы Adafruit Trinket для управления неопикселями и хорошо работаем. Пока что до 12 пикселей :)
Вы можете скачать библиотеку Trinket Neopixel, которая модифицирована для внутреннего osc ATtiny85 от Adafruit.
Затем ваш Raspi может разговаривать с микроконтроллером. Однако это немного проблематично, так как программная обработка последовательного порта потребляет слишком много памяти на ATtiny, и ATtiny будет игнорировать весь последовательный ввод при обновлении neopixels. Поэтому вы можете сделать это проще, используя Arduino UNO, или Leonardo, или Micro, который достаточно мощный для многих пикселей и имеет встроенный аппаратный последовательный порт.
На самом деле вы можете разговаривать с этими платами Arduino так, как если бы это был последовательный порт, поэтому просто подключите Leonardo через USB, и вы получите новый последовательный порт в Rpi для разговора.
Я использую максимум 8 пикселей, и я уже получил strandtest для работы. Мне нужно обдумать, как заставить его общаться с Raspi с помощью Python, как это делает Firmata. Тот факт, что он подключается как ключ, является для меня очень привлекательной особенностью. Тхо, если я не могу заставить Неопиксели включаться и выключаться под контролем Распи, я думаю, это спорный вопрос., @David Contreni
Отправьте значение RGB через USB/serial/COM - порт. И прочитайте их на стороне Arduino. Затем установите свою прядь соответствующим образом., @Paul
Afaik, Firmata предназначена для низкоуровневого битового стука портов на стороне Arduino. Вы можете красиво включать и выключать их, однако скорость и время недостаточно хороши, чтобы имитировать связь Neopixel. Боюсь, вам нужно сделать свои руки "грязными" и расширить приложение strandtest обработкой последовательных команд, вместо того чтобы возиться с Firmata., @Gee Bee
Схема может быть выполнена с использованием двух 74HC121s и затвора OR, который будет подключен к периферийному устройству SPI в микроконтроллере. Синхронизация будет осуществляться мультивибраторами, в то время как каждый байт будет выводиться через последовательный порт.
- серийные данные портятся
- Не удается связаться с ардуино с помощью python (Windows)
- Последовательная связь Arduino с Python: отправка массива
- Построение графика на Python с использованием Tkinter Canvas
- Как отправить целое число через pyserial с Python на Arduino и получить тот же результат?
- MQTT через serial
- Сброс последовательного порта Arduino в последовательном мониторе и Python
- Отправка числа с плавающей запятой из python в arduino
Это ATtiny85, верно? Библиотека NeoPixel, похоже, поддерживает это. Но он, возможно, не сможет контролировать многое из них. Проверьте использование оперативной памяти и потребляемый ток, @Paul
Что такое Digispark? Это компания, не так ли? :), @Gee Bee
Digispark-это крошечная Arduino-совместимая плата ATiny85, впервые выпущенная компанией Digistump. Я должен был упомянуть, что мне удалось загрузить и запустить пример strandtest от Adafruit., @David Contreni
Проклятые ограничения редактирования поймали меня-Digispark подключается к USB-порту, как ключ, и использует контакты 3 и 4 для USB-связи, но, видимо, это "странно" в том смысле, что я не совсем понимаю. Существует устаревший скетч "digiUSB" и более новый "digiCDC", но они немного выходят за рамки того, что я вижу на данный момент. Думаю, мне следует взглянуть на них поближе., @David Contreni
Вы можете управлять базовыми полосками APA102 от raspberry pi (хотя им может потребоваться преобразователь логического уровня от 3,3 В до 5 В)., @Paul
Кроме того, я нашел источник, объясняющий, как использовать NeoPixels с Raspberry Pi directty: http://popoklopsi.github.io/RaspberryPi-LedStrip/#!/ws2812, @Paul