Методология проектирования/прототипирования светодиодных схем

led ws2812 prototype

Некоторые из моих проектов проходят этот трудоемкий и утомительный этап:

  1. разработать схему светодиодов для геометрии светодиодов WS2812
  2. реализовать это, например, с помощью FastLED
  3. напишите в Arduino и посмотрите результат
  4. перейти к шагу 1

Второй шаг — реализация различных идей на C с помощью FastLED (или аналогичного) занимает гораздо больше времени, чем мне бы хотелось. Как обычно решается этот шаг? Существуют ли программные решения более высокого уровня? Специализированное оборудование для тестирования идей?

Мне хотелось бы легко опробовать такие идеи, как «что, если бы эти четыре светодиода мигали пурпурным каждую секунду, пока градиент циклически вращался вокруг градиента здесь».

, 👍0

Обсуждение

Посетите https://www.bhencke.com/pixelblaze. Он работает на ESP8266 и имеет веб-интерфейс. Здесь вы можете создавать свои собственные анимации, используя несколько собственный язык сценариев. Вы можете почти мгновенно увидеть результаты и настраивать их, пока не добьетесь правильного результата., @Gerben

Я настроил свою полосу для прослушивания розеток и могу переключать около 100 уровней RGB примерно 15 раз в секунду, прежде чем она станет прерывистой. Затем я могу использовать JS для предварительного просмотра придуманных мной эффектов и быстрого написания кода. У меня есть пример http://pagedemos.com/wcz9t2xytf76/4; я не знаю, насколько это можно экспортировать, но это может дать вам идеи..., @dandavis

Pixelblaze звучит как раз то, что я ищу. Только что заказал один. Спасибо @gerben!, @Anna


2 ответа


0

Я не уверен, что уже существуют решения для этой проблемы (высокая вероятность, что они есть, возможно, в некоторых «моделированиях» DMX), однако не должно быть слишком сложно создать свое собственное.

Используйте язык программирования, который вам нравится, который может обрабатывать графику, используйте ту же структуру данных, что и в FastLed, и позвольте программе (написанной вами) отображать пиксели на экране. Это означает, что вам не нужен код Arduino.

Если вы разделите заполнение пикселей и их отображение на экране, вы сможете скопировать полученный код «заполнения пикселей» на Arduino.

Обновить Другое решение, если вы хотите поэкспериментировать с реальным WS2812, — это запрограммировать все шаблоны, которые вы хотите проверить, с помощью FastLed, и позволить входам (через UART или необычные ручки/кнопки/меню) решать, какие шаблоны (и свойства) будут выполняться. Ключевым моментом является гибкое программирование шаблонов (поэтому используйте функции с параметрами для каждого свойства и состояниями, для которых шаблон(ы) выполняются или выполняются следующим, если вы хотите проверить некоторую последовательность).

,

Извините за мой неясный вопрос! Хочу проверить схему в реальной жизни. Я экспериментирую с диффузорами и оптическими волокнами для создания светодиодных изображений, поэтому мне нужно, чтобы это произошло на реальном оборудовании., @Anna

Шаг, который занимает слишком много времени для полезного цикла проектирования, — это реализация этих относительно простых идей («синий пузырь начинается здесь») в C/FastLED. Я думаю, что я не единственный, кто ищет решение более высокого уровня для создания прототипа., @Anna


3

Для разработки шаблонов для визуальной оценки было бы лучше, чтобы Arduino/контроллер был сквозным соединением с чем-то вроде полноценного компьютера. Существует проект под названием FadeCandy, который позволяет отправлять различные шаблоны в цепочку WS2812, используя протокол Открыть элемент управления пикселями.

Некоторые варианты могут заключаться в создании или покупке платы FadeCandy или реализации протокола OPC на вашем собственном Arduino, чтобы вы могли экспериментировать с тестовыми шаблонами и проектами в среде быстрой разработки, такой как Python, или просто создавать необработанные шаблоны в файл и скопировать его на ваше устройство через последовательный порт или TPC и т. д.

После того, как у вас есть шаблоны или дизайн так, как вы хотите, вы можете перевести его в код C и FastLED, зная, что у вас есть фиксированная спецификация, которую вы пытаетесь реализовать, вместо того, чтобы перепрошивать Arduino для каждой итерации.

р>
,