Протестируйте кому не лень.
Техническое описание программного обеспечения GyverLamp_v1.4_Arduino_Kto_v1
1. Назначение и общие сведения
GyverLamp_v1.4_Arduino_Kto_v1 — специализированное встроенное программное обеспечение (прошивка), предназначенное для управления интерьерными светильниками на базе адресуемых светодиодных матриц.
Данное ПО является модифицированным форком (ответвлением) проекта разработчика
Norovl, который, в свою очередь, базируется на оригинальной архитектуре
GyverLamp от AlexGyver. Настоящая версия полностью адаптирована и оптимизирована отечественным разработчиком
ТехнарьКто для работы на вычислительных мощностях с жестко ограниченными ресурсами.
Ключевые особенности архитектуры:
Аппаратная оптимизация: код полностью переработан под тактовую частоту 16 МГц и архитектуру микроконтроллера ATmega328p (платформа Arduino UNO).
Эффективное управление памятью: благодаря оптимизации алгоритмов и агрессивному использованию макроса F(), динамическое потребление ОЗУ (SRAM) снижено до минимума. Это позволило интегрировать расширенный пул визуальных эффектов, ранее физически не помещавшихся в оперативную память платформ класса Arduino UNO.
Целевое назначение: прошивка разработана в образовательных и демонстрационных целях, снабжена избыточным (детальным) комментированием исходного кода, что облегчает изучение принципов программирования адресных светодиодов.
2. Аппаратные и программные требования
Для корректного функционирования системы необходимо строгое соблюдение следующих параметров:
Спецификация оборудования
Вычислительный модуль: Arduino UNO (или совместимый аналог с МК ATmega 16 МГц).
Светодиодный модуль: Адресуемая светодиодная матрица формата
16х16.
Топология матрицы: Жестко заложена поддержка
Z-топологии (укладка строк «зигзаг»). На матрицах с параллельной (ленточной) укладкой или другим разрешением корректная геометрия эффектов не гарантируется.
Органы управления: Механическая тактовая кнопка (опционально).
Программные зависимости
Среда разработки: Скетч успешно компилируется в среде
Arduino IDE версии 1.8.19 под управлением ОС Windows 10.
Графическое ядро: В скетче задействована библиотека
FastLED версии 3.2.9. Совместимость с более ранними или поздними версиями FastLED разработчиком не тестировалась.
Драйвер кнопки: Для обработки нажатий строго требуется использование специализированного форка библиотеки Norovl (модификация HOLDButton). С другими библиотеками алгоритм управления работать не будет.
Схема электрических соединений
Компонент | Вывод компонента | Вывод Arduino UNO | Назначение |
| Светодиодная матрица | DIN (Data In) | D2 | Линия передачи данных |
| GND | GND | Общая земля |
| 5V | 5V / Внешний БП | Линия питания 5V |
| Тактовая кнопка (опционально) | Вывод 1 | D4 | Сигнальный опрос кнопки |
| (опционально) | Вывод 2 | GND | Сигнальная земля |
Важное замечание по питанию: Убедитесь, что источник питания 5 В обеспечивает достаточную силу тока для работы светодиодной матрицы на 256 диодов. Питания от USB-порта компьютера может не хватить на максимальной яркости.
3. Функциональные возможности и визуальные эффекты
Программное обеспечение включает в себя
21 оптимизированный световой эффект. Большинство алгоритмов спроектировано с нуля или переработано с акцентом на минимальное использование динамической памяти.
Перечень интегрированных режимов:
Конфетти
Огонь V2.0
(авторская глубокая оптимизация ОЗУ, визуально эквивалентная оригиналу)
Радуга вертикальная
Радуга горизонтальная
Смена цвета
3D Безумие
3D Облака
3D Лава
3D Плазма
3D Радуга
3D Павлин
3D Зебра
3D Лес
3D Океан
Светлячки V2.0
(авторская оптимизация потребления ОЗУ)
Снегопад
Матрица
Переключение чистых цветов
(авторский скетч; режим «Белая лампа» активируется при выкручивании масштаба в крайнее противоположное положение)
Калейдоскоп
(абсолютно новый авторский алгоритм)
Бегунок
(авторский скетч: одиночный движущийся элемент из трех пикселей со световым шлейфом)
Радужный снег
Дополнительный сервис, безопасность и телеметрия:
Защита от сбоев: параметры по умолчанию защищают прошивку от критических ошибок, обеспечивая стабильный запуск устройства даже при сбоях чтения данных.
Умный демо-режим: автоматическая циклическая смена эффектов активируется сразу после первой прошивки или полного сброса. При первом физическом нажатии на кнопку управление бесшовно передается пользователю.
Автономные интерактивные логи: устройство передает подробную русскоязычную телеметрию в аппаратный Serial-порт. На любое действие пользователя генерируются текстовые ИИ-сообщения.
Логика работы ИИ-сообщений: вывод «умных» реплик реализован полностью локально внутри программного кода микроконтроллера. Алгоритм отслеживает события (количество последовательных нажатий кнопки) и проверяет соответствующие флаги состояния в энергонезависимой памяти, формируя уникальный текстовый вывод под каждую ситуацию.
4. Интерфейс пользователя и управление
Взаимодействие со светильником осуществляется с помощью одной тактовой кнопки.
4.1. Дискретные команды (короткие клики)
Управление логикой работы устройства выполняется через подсчет количества последовательных нажатий:
1 нажатие: Коммутация состояния (Включение / Отключение устройства).
2 нажатия: Переход к следующему визуальному эффекту по списку.
3 нажатия: Возврат к предыдущему визуальному эффекту по списку.
4 нажатия: Активация/деактивация демонстрационного режима (автосмена эффектов каждые 3 секунды).
Примечание: ручной переход к следующему/предыдущему эффекту автоматически отключает демо-режим.
5 нажатий: Сохранение текущих параметров (яркость, скорость, масштаб) для всех режимов в энергонезависимую память (EEPROM). Успешная запись подтверждается автоматическим циклом перезапуска (светодиодная матрица гаснет и включается вновь).
9 нажатий: Полный аппаратный сброс. Инициирует глубокое форматирование (очистку) EEPROM. Процесс сопровождается световой индикацией: мерцание красным цветом (идет очистка данных), непрерывное зеленое свечение (завершение процедуры), после чего устройство уходит в автоматическую перезагрузку.
4.2. Аналоговые регулировки (клики с удержанием)
Изменение числовых параметров выполняется по принципу:
N коротких кликов + удержание кнопки на последнем нажатии.
Регулировка является
реверсивной: при первом удержании параметр циклически увеличивается до максимума, при повторном — уменьшается до минимума. Процесс сопровождается визуальной шкалой в виде вертикальной цветовой полосы на матрице.
1 клик + удержание: Регулировка общего уровня
яркости. Визуальный маркер:
красная вертикальная полоса.
2 клика + удержание: Изменение
скорости анимации эффекта. Визуальный маркер:
зеленая вертикальная полоса.
3 клика + удержание: Изменение геометрического
масштаба эффекта. Визуальный маркер:
синяя вертикальная полоса.
5. Порядок развертывания, настройки и пасхальные функции
Сценарий: Настройка стартового эффекта в демо-режиме
Если требуется, чтобы после включения питания лампа автоматически запускала демо-режим, начиная с определенного эффекта, выполните следующий алгоритм:
Перейдите на эффект, предшествующий желаемому.
Активируйте демо-режим с помощью
4 нажатий.
Дождитесь или вручную перейдите на выбранный вами эффект (он зафиксируется первым в цикле).
Сохраните конфигурацию в памяти с помощью
5 нажатий. При последующих включениях устройство начнет показ именно с этого режима.
Сценарий: Вывод скрытого руководства (Пасхальное яйцо)
В программном обеспечении предусмотрен вывод подробной встроенной справки по кнопкам, которая выводится строго один раз при первом запуске после прошивки. Если устройство уже работало, но вам необходимо повторно вызвать эту подсказку в Монитор порта, выполните следующие шаги:
Подключите плату Arduino UNO к ПК через USB-кабель.
В Arduino IDE откройте вкладку
«Монитор порта» и установите скорость передачи данных
115200 бод.
Выполните
9 коротких кликов на кнопке управления устройством для полной очистки EEPROM.
Нажмите кнопку
«Очистить вывод» в окне Монитора порта.
Нажмите физическую аппаратную кнопку
Reset на самой плате Arduino UNO. Сразу после перезагрузки в терминал будет выведена скрытая текстовая справка проекта.
6. Юридический статус и условия распространения
Данное программное обеспечение распространяется на условиях open-source (свободное ПО). При наличии оригинального набора файлов у пользователя отсутствуют какие-либо ограничения на коммерческое или некоммерческое использование. Разрешено:
Беспрепятственное размещение проекта на любых общедоступных и частных информационных ресурсах.
Создание производных модификаций (форков) и изменение исходного кода.