Easyflow Inc.

LED Strip Editor

LED 灯带图案编辑

Проектируйте подсветку светодиодной ленты так, как рисуют картину, — задайте цвет, яркость и положение свечения каждого светодиода, добавьте эффекты и посмотрите всю панель ещё до того, как она попадёт на устройство.

Идея

Светодиодная лента — это дисплей. Длинный, узкий и неудобный, разведённый в том порядке, который кто-то выбрал ради удобства пайки, но всё-таки дисплей. А естественный способ проектировать для дисплея — рисовать на нём.

Именно это и даёт редактор. Выберите цвет, щёлкните по пикселю — и светодиод загорится. Растяните фигуру — и она станет элементом, которому можно дать имя, использовать его повторно и анимировать. Порядок разводки, глубину цвета и порядок байтов, которых требует именно ваш компонент, вы описываете один раз, в одном диалоге, а перевод рисунка в эти правила редактор берёт на себя.

Что получается на выходе

Большинство графических редакторов заканчиваются файлом, на который вы смотрите. Этот заканчивается исходным кодом: каждая отмеченная вами область становится массивом const со значениями пикселей — в том порядке, в котором разведены светодиоды, и с той глубиной цвета, которую способен вместить компонент. Прошивка подключает этот файл и зажигает по нему панель.

Ровно поэтому редактор намеренно небольшой. Он рисует пиксели и разбирается в светодиодном железе. Он не занимается ретушью фотографий.

Четыре слова, которые стоит выучить первыми

ТерминЧто это значит здесь
РамкаПрямоугольник на изображении, у которого есть имя. Одна рамка становится одним экспортируемым массивом — обычно это один символ шрифта.
Список рамокВсе рамки текущего изображения в том порядке, в котором они будут выгружены. Сохраняется рядом с PNG в виде файла .box.
РасположениеПорядок обхода светодиодов рамки: с какого угла начинать, идти по строкам или по столбцам и разворачивается ли каждая вторая линия.
Порядок каналовПорядок, в котором байты цвета уходят в линию, — RGB, GRB и так далее. Неверный порядок означает, что панель загорится не тем оттенком.

Как выглядит работа

  1. Откройте или создайте PNG.
  2. Нарисуйте что-нибудь или вставьте чужой рисунок.
  3. Отметьте нужные части как рамки и дайте им имена.
  4. Задайте разрядность, порядок каналов и разводку в разделе Параметры LED.
  5. Посмотрите результат через анимацию рамок, затем выгрузите исходный код и загрузите его в плату.
💡 Шаги 4 и 5 описывают ваше железо. Настройте их один раз под конкретный стенд — и они останутся такими: они сохраняются, а не запрашиваются при каждом экспорте.

Эта программа бесплатна. Если она вам помогла, поддержите нас пожертвованием.

Пожертвовать

Частые вопросы

Панель светится не теми цветами

Почти всегда дело в порядке каналов. Сверьте Сборка > Параметры LED > RGB с тем, чего ждёт ваш компонент: WS2812 и SK6812 — это GRB, WS2811 обычно RGB.

Если оттенок верный, но всё слишком тёмное или идёт полосами, дело в разрядности.

Панель зажигает не те пиксели

Дело в расположении. Сравните восемь схем с тем, как ваша лента проложена физически, и не забудьте про два переключателя: Зигзаг для ленты, сложенной туда-обратно, и Обратный для ленты, тактируемой с дальнего конца.

Экспорт отказался выполняться при 8 битах

Какой-то цвет рисунка отсутствует в палитре. Экспорт отказывается целиком, вместо того чтобы записать молча неверные пиксели. Воспользуйтесь преобразованием цвета, чтобы свести случайные цвета к записям палитры, и выполните экспорт снова.

Мои рамки исчезли

Список рамок живёт в файле .box рядом с PNG. Если PNG скопировали без него, рамки не потеряны — они в той папке, откуда вы копировали. См. Сохранение.

Авторазмер поглотил область, которую я удалил

Так больше быть не должно: полностью прозрачный пиксель считается фоном. Если это всё же происходит, значит, область залита цветом, а не вырезана, — залейте её цветом фона или вырежьте заново.

Анимация останавливается раньше времени

Конец ограничен количеством загруженных рамок. Если в списке 50 рамок, воспроизведение закончится на 50-й, какое бы число вы ни ввели. См. Анимация рамок.

Загрузка не подключается

См. Загрузка на устройство — порт, скорость и то, не удерживает ли порт другая программа.

Что-то ещё

Текст меню не на том языке, диалог, который не открывается, экспорт, завершающийся ошибкой, — о таком стоит сообщить. Программа записывает необработанные ошибки в журнал, который вы можете приложить.