Одним из зрелищных эффектов анимации при создании праздничной иллюминации может стать генерация орнамента из повторяющихся фрагментов разноцветных пикселей
(рис. 1, рис. 2).
Рис. 1.
Рис. 2.
Рис. 3.
Форма узора (рис. 3) образована четырьмя одинаковыми частями, расположенными в определённой последовательности относительно друг друга. Каждая часть содержит 4х4 пикселя и описывается при программировании двухмерным массивом соответствующей размерности. Первая форма является чередой последовательных зеркальных отражений фрагмента 1 относительно вертикальной и горизонтальной линий. Вторая форма образуется при поворотах фрагмента на 90 градусов против часовой стрелки. В матрицу одновременно помещаются четыре узора, образующие орнамент. Таким образом, меняя внешний вид одной части, можно полностью изменить весь орнамент.
Рис. 4.
Рис. 5.
Адресная светодиодная гибкая матрица RGB WS2812B 50w32х8led [1] состоит из 256 трёхцветных управляемых светодиодов WS2812B [2] типоразмера 5050. В каждом таком светодиоде есть кристалл управляющей микросхемы, за счёт чего каждым пикселем на матрице можно управлять отдельно. Физические размеры матрицы: длина - 32 мм; ширина - 80 мм, её внешний вид показан на рис. 4. Расстояние между соседними светодиодами (пик селями) составляет 10 мм. Они соединены в цепочку зигзагообразно по столбцам (рис. 5). Матрица имеет три пары проводов (цвет проводов - красный, белый) для подачи питания и пару сигнальных (цвет провода - зелёный) проводов. Провода объединены в три группы. Группы с сигнальными проводами снабжены на конце разъёмами. Расположение проводов поясняет рис. 6. Из восьми проводов были задействованы только три (остальные аккуратно отпаяны), нумерация которых соответствует схеме, показанной на рис. 7.
Рис. 6.
Рис. 7.
Питание осуществляется от стабилизированного источника питания напряжением 5 В и выходным током до 3А (сетевой адаптер модели IRN-050300A). Для проведения экспериментов была собрана установка, конструкция которой показана на рис. 8. Из жёсткого упаковочного картона согнута призма 1. К лицевой стороне с помощью двухстороннего скотча приклеена матрица 2. Снаружи она закрыта полупрозрачным экраном 3 из молочного пластика толщиной 4 мм. Восприятие изображения сильно зависит от расстояния между матрицей и экраном. Автор проводил опыты, меняя его от 0 до 20 мм, подбирая оптимальный для создания желаемого размытия эффекта.
Рис. 8.
Скетч управления матрицей в основом построен на использовании самостоятельно разработанных функций и библиотеки Adafruit_NeoMatrix.h.
Назначение ключевых функций приведено в таблице.
Таблица
Функция (переменные) | Назначение |
R_G_В( r, g, b); | Перевод 24-битного RGB в 16-битный 5x6x5 цвет |
uzor( Xuz, Yuz, К); | Вывод узора на экран по координатам Xuz,Yuz, К раз, позволяет анимировать орнамент |
massiv_smena(maks); | Генерация нового узора в массив данных, аргумент регулирует плотность рисунка узора |
massiv_sdvig(byte K); | Сдвиг данных на К элементов в массиве, позволяет анимировать орнамент |
FORMA=0; или 1 | Изменение формы узора |
Сценарий основного цикла скетча:
- Смена формы узора;
- Вывод узора бегущей строкой справа-налево;
- Трансформация-калейдоскоп узора за четыре фазы;
- Исчезновение-угасание узора;
- Вывод узора бегущей строкой слева-направо;
- Трансформация-сдвиг узора за 32 такта.
Материалы проекта и видеоролик, иллюстрирующий работу устройства находятся здесь.
Литература
1.Адресная светодиодная матрица RGB WS2812b50w32/8 led. - URL: https://giant4.ru/catalog/spi-lenta/мaтрицa-ws2812b-32x8-led/ (01.09.22).
2.WS2812B LED. - URL: https://voltiq.ru/datasheets/WS2812B_datasheet_EN.pdf (01.09.22).
Автор: Д. Мамичев, пос. Шаталово Смоленской обл.