• 29.12.2018 ДОБАВЛЕНА ВЕРСИЯ 1.10
• ВЕРСИЯ 1.3 И ВЫШЕ ПРОШИВКИ GYVERMATRIXOS НЕ ПОМЕЩАЕТСЯ В ARDUINO NANO СО ВСЕМИ ЭФФЕКТАМИ И РЕЖИМАМИ НА МАТРИЦЕ 16Х16! ИСПОЛЬЗУЙТЕ МАТРИЦУ МЕНЬШЕГО РАЗМЕРА ИЛИ ОТКЛЮЧАЙТЕ BLUETOOTH/ТЕКСТ/ЭФФЕКТЫ ИЛИ ИСПОЛЬЗУЙТЕ ARDUINO MEGA/ESP8266! СМ. НИЖЕ.
Здесь рассмотрим все возможности и настройки прошивки GyverMatrixOS для управления матрицей адресных светодиодов.
▶ Скачать актуальную версию прошивки
▶ Подробный гайд по сборке и настройке матрицы, важные моменты
▶ Страница проекта “Адресная матрица” – схемы, ссылки на компоненты, инструкции по прошивке
Актуальная версия – 1.10
Изменения (Changelog)
- 3 режима вывода бегущей строки
- 6 игр с управлением по Bluetooth или кнопками
- 18 настраиваемых эффектов
- Вывод изображений и анимации
- Режим часов с тремя эффектами и наложением
- Управление по Bluetooth
- Планируется добавить: Wi-Fi часы для esp8266 и поддержку бортового RTC для STM32
ОСНОВНЫЕ НАСТРОЙКИ
Система имеет большое количество настроек, но есть важные настройки, без правильного указания которых система будет работать некорректно.
CURRENT_LIMIT – лимит по току в миллиамперах. Система может рассчитывать ток потребления матрицы на основе анализа цвета и яркости каждого светодиода и автоматически уменьшать общую яркость (т.е. потребление матрицы), чтобы потребляемый ток не выходил за указанный лимит. Таким образом можно питать матрицу даже от слабого блока питания и не бояться за него. Функция работает очень чётко, я проверял.
MATRIX_TYPE, CONNECTION_ANGLE и STRIP_DIRECTION задают тип соединения матрицы, её положение и точку подключения. Подробно и с картинками об этом написано в гайде о матрицах.
WIDTH и HEIGHT – ширина и высота матрицы в количестве светодиодов. Примечание: чем больше матрица, тем больше места занимает прошивка в памяти.
MCU_TYPE – тип микроконтроллера. Версия 1.7 полностью оптимизирована для работы на AVR (Arduino Nano/Uno/Mini/Micro/Mega), esp8266 (generic esp8266, NodeMCU, Wemos) и STM32 (STM32F103 “Arduino” Blue Pill). Часы реального времени пока что реализованы только для RTC DS3231!
- В Arduino Nano/UNO/Pro Mini при использовании набора эффектов и режимов как в видео про гирлянду очень впритык вмещается матрица 16х16 (256 диодов), возможны зависания и перебои в работе;
- В Arduino Mega вмещается около 1700 светодиодов (матрица 40×42)
- В ESP8266/NodeMCU/Wemos или STM32 “Blue Pill” вмещается ГОРАЗДО больше светодиодов, но нужно понимать, что скорость обновления ленты зависит от количества светодиодов, и при 500 диодах будет 60 кадров в секунду (fps), при 1000 будет 30 fps, при 2000 будет 15 fps, т.е. ощутимые глюки в быстрых эффектах.
В системе можно подключать и отключать “модули” для экономии памяти. Памяти два типа: Flash (сам программный код скетча) и SRAM (оперативная память, переменные). SRAM память желательно не забивать более чем на 90%, иначе возможны глюки! Flash можно забивать под 100%. Также SRAM занимают светодиоды. Картинки занимают практически только Flash. Если скетч не лезет – отключайте модули =)
Данные для Arduino Nano/Uno/Mini (ATmega 328) | |||
Модуль | Flash, % | SRAM, % | Описание |
Светодиоды (10 шт.) | 0 | 2.5 | Каждые 10 светодиодов |
USE_BUTTONS | 6 | 1 | Кнопки (управление в играх и переключение режимов) |
BT_MODE | 14 | 2 | Поддержка управления через Bluetooth |
USE_NOISE_EFFECTS | 11 | 16 | Полноэкранные “Noise” эффекты для 16х16 |
USE_FONTS | 5 | 1 | Режимы бегущей строки |
USE_CLOCK | 13 | 22 | Часы (RTC DS3231) с наложением |
USE_TETRIS | 7 | 3 | Игра тетрис |
USE_SNAKE | 4 | 5 | Игра змейка |
USE_MAZE | 7 | 1 | Игра лабиринт |
USE_RUNNER | 5 | 1 | Игра бег с препятствиями |
USE_FLAPPY | 5 | 1 | Игра Flappy Bird |
USE_ARKAN | 10 | 1 | Игра Арканоид |
Также можно уменьшить занимаемую память убирая “стандартные” эффекты из custom списка режимов. Компилятор умный: если эффект не используется в коде – он его даже не загружает в плату.
Все основные настройки
ЭФФЕКТЫ И РЕЖИМЫ
fillString(<текст>, <цвет>)
fillString(<текст>, 1)
fillString(<текст>, 2)
madnessNoise()
cloudNoise()
lavaNoise()
plasmaNoise()
rainbowNoise()
rainbowStripeNoise()
zebraNoise()
forestNoise()
oceanNoise()
snowRoutine()
sparklesRoutine()
matrixRoutine()
starfallRoutine()
ballRoutine()
ballsRoutine()
rainbowRoutine()
rainbowDiagonalRoutine()
fireRoutine()
snakeRoutine()
tetrisRoutine()
mazeRoutine()
runnerRoutine()
flappyRoutine()
arkanoidRoutine()
clockRoutine()
НАСТРОЙКИ РЕЖИМОВ
Настройки обычных эффектов (Routine) — вкладка effects
Настройки полноэкранных эффектов (Noise) — вкладка noise_effects
Настройки в играх — вкладки с префиксом g_
Настройки списка режимов (вкладка custom)
Настройки часов (вкладка clock)
Настройки бегущей строки
“КАСТОМНЫЙ” СПИСОК ЭФФЕКТОВ
Во вкладке custom можно настроить свой список режимов, которые будут меняться по таймеру и/или кнопкой. Настраивать список нужно следуя простым правилам.
Полный список цветов для текста можно посмотреть вот здесь в самом низу страницы. Там даже с примерами “цвета” в виде картинки.
Для знающих английский привожу просто список цветов ниже.
Список цветов
УПРАВЛЕНИЕ КНОПКАМИ
Кнопок для управления системой всего 5 штук – 4 кнопки направления (ВЕРХ, НИЗ, ПРАВО, ЛЕВО) и кнопка ВЫБОР.
Кнопка ВЫБОР активна только тогда, когда выбрана любая игра или часы. Когда выбрана игра: Клик – перехватить управление игрой. Повторный клик – вернуться к демо-режиму. Удержание – включить режим “с фонариком” в лабиринте =) Когда выбран режим часов clockRoutine(): удержание – вход в настройку времени. ПРАВО, ЛЕВО – настройка часов, ВЕРХ, НИЗ – настройка минут. Повторное удержание кнопки ВЫБОР – выйти из настройки времени. В любой игре ВЕРХ, НИЗ, ПРАВО, ЛЕВО отвечают за управление, ВЕРХ в Тетрисе поворачивает фигуру.
В демо-режиме кнопки ВЕРХ, НИЗ, ПРАВО, ЛЕВО делают следующее:
Кнопка | Клик | Удержание |
ВЕРХ | Включить автоматическую смену эффектов | Увеличить яркость матрицы |
НИЗ | Выключить автоматическую смену эффектов | Уменьшить яркость матрицы |
ПРАВО | Следующий эффект | Увеличить скорость эффекта |
ЛЕВО | Предыдущий эффект | Уменьшить скорость эффекта |
Примечание: игра в демо-режиме является эффектом |
ПРОШИВКА НА ДРУГИЕ ПЛАТФОРМЫ
Версия прошивки 1.7 и выше стабильно работает на микроконтроллерах AVR (Arduino NANO/UNO/MEGA), esp8266 (generic esp8266, NodeMCU, Wemos) и STM32 (STM32 “Arduino” Blue Pill). Зачем это нужно? Как говорилось выше, прошивка очень большая и со всеми эффектами и режимами не лезет в Arduino NANO/UNO, также не лезут матрицы большого размера. На другие платы всё вмещается + остаётся куча места! Ниже приведу инструкции по настройке Arduino IDE и прошивке для каждого типа плат. Но первым делом не забудьте указать в скетче в настройках (прямо под настройкой матрицы) параметр MCU_TYPE соответственно используемой плате! MCU_TYPE 0 – для плат Arduino, MCU_TYPE 1 – для плат на esp8266 и MCU_TYPE 2 для плат на STM32.
Схемы подключения перечисленных плат можно найти на основной странице проекта.
AVR (Arduino)
Arduino IDE вместе со всеми драйверами устанавливается и настраивается согласно статье первые шаги с Arduino. Ничего больше делать не нужно, выбираем плату и прошиваемся.
esp8266 (NodeMCU, Wemos)
STM32 (Blue Pill)
Sorry, the comment form is closed at this time.