Гайд по GyverMatrixOS
ОБНОВЛЕНИЯ
• 29.12.2018 добавлена версия 1.10
• Версия 1.3 и выше прошивки GyverMatrixOS не помещается в Arduino Nano со всеми эффектами и режимами на матрице 16х16! Используйте матрицу меньшего размера или отключайте Bluetooth/текст/эффекты или используйте Arduino Mega/esp8266! См. ниже.
ОПИСАНИЕ
Здесь рассмотрим все возможности и настройки прошивки GyverMatrixOS для управления матрицей адресных светодиодов.
- 3 режима вывода бегущей строки
- 6 игр с управлением по Bluetooth или кнопками
- 18 настраиваемых эффектов
- Вывод изображений и анимации
- Режим часов с тремя эффектами и наложением
- Управление по Bluetooth
▶ Скачать актуальную версию прошивки
▶ Подробный гайд по сборке и настройке матрицы, важные моменты
▶ Страница проекта “Адресная матрица” – схемы, ссылки на компоненты, инструкции по прошивке
Актуальная версия – 1.10
НАСТРОЙКИ
Система имеет большое количество настроек, но есть важные настройки, без правильного указания которых система будет работать некорректно.
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 списка режимов. Компилятор умный: если эффект не используется в коде – он его даже не загружает в плату.
Источник
Гайд по адресным светодиодным матрицам
ПРОЕКТЫ
В этом гайде речь пойдёт о матрицах из адресных светодиодных лент. Если вы не в курсе про адресные ленты, то рекомендую изучить вот эту статейку. Фишка адресной ленты в том, что мы можем управлять любым из подключенных светодиодов. Если уложить ленту так, чтобы светодиоды образовывали ровную сетку, то мы получим матрицу, у которой можно зажечь любой “пиксель”, а зажечь можно одним из 16,7 миллионов цветов и оттенков! (светодиоды RGB, яркость каждого цвета имеет 256 градаций (8 бит), соответственно для трёх цветов у нас 256*256*256=16,7 лямов, что есть привычные 24 бита цветовой глубины). То есть по сути получаем полноценный 24 битный дисплей сверхнизкого разрешения! Зачем такое разрешение в 2к18 году? Спроси у своего папы, во что он играл в детстве =)
Начнём с компонентов. Матрицу можно склеить самому, для этого понадобится адресная светодиодная лента, например самая популярная на чипах WS2812b. Да, сейчас есть уже более новая WS2813, но для наших целей она преимуществ не имеет. Целесообразно брать ленту с плотностью пикселей 60 светодиодов на метр для маленьких матриц (ячейка 1.7×1.7 см) и 30 светодиодов на метр для больших матриц (ячейка 3.3×3.3 см). Также есть светодиодные модули по типу “гирлянды”, их можно брать для ОЧЕНЬ БОЛЬШИХ матриц (ячейка 12×12 см). Рассмотрим матрицу 20×10 светодиодов: из ленты 60 LED на метр размер матрицы будет 34×17 см, из 30 LED на метр – 66×33 см, и из модулей – 240×120 см.
Также хитрые китайцы уже продают готовые матрицы нескольких размеров, причём очень выгодно: матрица 16×16 стоит 1500р, она состоит из 256 диодов с плотностью 100 штук на метр. Лента такой же плотности стоит 1000р за метр (за 100 светодиодов). Для склейки матрицы размером 16×16 понадобится 2.5 метра ленты, то есть 2500р. А готовая матрица стоит на 1000р дешевле. Абсолютно то же самое касается матрицы 32×8 пикселей. Есть ещё готовая матрица 8×8, она стоит 300р. И вот она выходит уже не так выгодно =) Для питания матрицы нужен блок питания на 5V, по току расскажу дальше. Ссылок оставляю несколько, ищите выгодные предложения и скидки (P.S. Я закупаюсь в BTF-Lighting)
ВАЖНО! Чем больше матрица, тем больше места занимает прошивка в памяти. Для прошивки GyverMatrixOS:
- В Arduino Nano/UNO/Pro Mini при использовании всех эффектов и режимов очень впритык вмещается матрица 16х16 (256 диодов), возможны зависания и перебои в работе;
- В Arduino Leonardo/Micro/Pro Micro вмещается около 400 светодиодов (матрица 20×20);
- В Arduino Mega вмещается около 1700 светодиодов (матрица 40×42)
- В ESP8266/NodeMCU/Wemos вмещается ГОРАЗДО больше светодиодов, но нужно понимать, что скорость обновления ленты зависит от количества светодиодов, и при 500 диодах будет 60 кадров в секунду (fps), при 1000 будет 30 fps, при 2000 будет 15 fps, т.е. ощутимые глюки в быстрых эффектах.
СБОРКА
Начнём с типов соединения матрицы, их всего два: последовательный и параллельный, + совмещённый вариант по питанию. Плюсы и минусы указаны на рисунке, для больших матриц предпочтительнее использовать параллельный тип, так гораздо лучше организуется питание. Но вот с ответвлениями силовых проводов придётся повозиться. Если делать матрицу из гирлянды модулей, то естественно проще сделать её зигзагом. Но обязательно проверить на разной яркости и убедиться, что тока хватает дальним светодиодам (при просадке напряжения заданный белый цвет уходит в желтизну (небольшая просадка) или в красный (сильная просадка напряжения). В этом случае питание нужно будет продублировать толстыми проводами к каждому отрезку ленты (к каждой строке матрицы).
Матрица подключается к Arduino согласно гайду об адресной ленте, далее идёт выжимка из него. Важные моменты:
- Логический пин Arduino соединён с пином DIN ленты (матрицы) через резистор с номиналом 220 Ом (можно брать любой в диапазоне 100 Ом – 1 кОм). Нужен для защиты пина Ардуино от перегрузки, т.е. ограничить ток в цепи (см. закон Ома);
- GND (земля, минус) ленты обязательно соединяется с пином GND Arduino даже при раздельном питании;
- Электролитический конденсатор по питанию Arduino нужен для фильтрации резких перепадов напряжения, которые создаёт лента при смене цветов. Напряжение конденсатора от 6.3V (чем больше, тем крупнее и дороже кондер), ёмкость – в районе 470 мкФ, можно больше, меньше не рекомендуется. Можно вообще без него, но есть риск нарушения стабильности работы!
- Конденсатор по питанию ленты нужен для облегчения работы блока питания при резких изменениях яркости матрицы. Опять же можно вообще без него, но есть риск нарушения стабильности работы!
- Мощность (и максимальный отдаваемый ток) блока питания выбирается исходя из размера матрицы и режимов, в которых она будет работать. Смотрите табличку и помните о китайских амперах, т.е. блок питания нужно брать с запасом по току на 10-20%! В таблице приведены значения тока потребления ленты.
- В прошивке GyverMatrixOS версии 1.2 и выше настраивается ограничение тока системы. Как это работает: в настройках скетча есть параметр CURRENT_LIMIT, который задаёт максимальный ток потребления матрицы в миллиамперах. Ардуино будет делать расчёт на основе цветов и яркостей светодиодов и автоматически уменьшать яркость всей матрицы, чтобы не допустить превышения установленного лимита по току на особо “жрущих” режимах. Это очень крутая функция!
Чтобы матрица выглядела как мечта любителя 8-ми битной классики, нужно сделать следующее:
- Разграничить светодиоды объёмной решёткой (собрать из дерева/пластика/напечатать на 3D принтере)
- Поверх решётки положить рассеиватель (калька/бумага для запекания/полупрозрачный пластик)
- Затемнить “экран” матрицы (мусорный пакет/светлая тонировочная плёнка для окон)
2 и 3 пункт можно заменить матовым полупрозрачным тёмным плексигласом, рекламщики используют его как раз для создания светодиодных дисплеев!
Посмотреть на мою реализацию корпуса можно в видео про матрицу, файлы для 3D печати есть в архиве с проектом.
Источник
Приложение гайвер матрикс не работает
Адресная матрица на NodeMCU с управлением по WiFi
Этот проект основан на проекте AlexGyver «Матрица на адресных светодиодах с управлением по Bluetooth»
Дальнейшее развитие проекта — vvip-68 «ссылка на репозиторий»
Изменения по справнению с исходным проектом:
- Поддержка только контроллера с большим объемом памятии наличием WiFi на борту — NodeMCU
- Другие типы контроллеров (Arduino Mega + WiFi, Wemod D1) — не тестировались.
- Удалена поддержка управления с кнопок
- Оставлена одна кнопка управления для переключения режимов, отключения работающего будильника
- Удалена поддержка управления по Bluetooth
- Удалена поддержка платы часов реального времени
- Управление матрицей — через WiFi (локальная сеть)
- Синхронизация времени с NTP сервером через интернет
- Адаптированная программа управления матрицей на Andrioid
- Изменены настройки режимов воспроизведения эффектов
- Настройки режимов можно изменять из программы со смартфона
- Яркость матрицы — единая для всех режимов
- Скорость эффектов — индивидуально для каждого режима
- Наличие наложения часов на эффекты — индивидуально для каждого режима
- Включение/исключение режима из списка любимых режимов
- Настройки сохраняются в энергонезависимой памяти EEPROM
- К режиму часов добавлен календарь — кратковременное отображение текущей даты поверх эффекта
- Настройка сервера синхронизации времени
- Будильник «рассвет», настройки через программу на смартфоне, 7 будильников на каждый день
- Поддержка звука будильника / звука рассвета звуковой платой MP3 DFPlayer
- Настройки сетевого подключения (SSID и пароль, статический IP) задаются в программе и сохраняются в EEPROM
- Если не удается подключиться к сети (неверный пароль или имя сети) — запускается режим SmartConfig, в течение 30 секунд контроллер пытается получить настройки от приложения ESPTOUCH SmartConfig, если этого не удается, то создается точка подключения с именем MatrixAP, пароль 12341234, IP 192.168.4.1. Подключившись к точке доступа из приложения можно настроить параметры сети. Если после задания параметиров сети WiFi соединение установлено — в приложении на смартфоне виден IP адрес подключения к сети WiFi.
- Быстрое включение режимов лампы белого или заданного цвета из приложения (вся панель светится), выключение панели, комбинация лампы с отображением часов, ночные часы (пониженная яркость).
- Автоматическая установка яркости матрицы в зависимости от уровня внешней освещенности.
- Два программируемых по времени режима, позволяющие, например, настроить автоматическое выключение экрана матрицы в ночное время и автоматическое же включение матрицы утром.
От исходного проекта сохранены следующие возможности:
- Рисование
- Загрузка картинок
- Бегущая строка
- «Дыхание» яркости
- Смена цвета
- Снегопад
- Блуждающий кубик
- Радуга
- Огонь
- The Matrix
- Летающие частицы
- Звездопад
- Шумовые эффекты с разными цветовыми палитрами
- Анимация
- Часы
- Змейка
- Tетриc
- Лабиринт
- Арканоид
- Runner
- Flappy bird
- Автоподключение к матрице при запуске
- Настройки яркости и скорости отображения
- Использование акселерометра в играх
Кнопка управления режимами, последовательность переключения:
Будильник сработал, идет рассвет или мелодия пробуждения
- Любое нажатие кнопки отключает будильник
Долгое удержание кнопки (более 3 секунд)
- Если матрица включена, она будет выключена (черный экран)
- Если матрица выключена (черный экран) — включается режим часов
Однократное нажатие кнопки
- Если матрица включена в режиме часов, происходит переключение часов по циклу:
- Часы на черном фоне
- Часы на фоне огня (камин)
- Ночные часы
- Если матрица включена в режим лампы (белый экран) — вкл / выкл отображения часов.
- Если работают демо-режимы — переход к следующему режиму
Двухкратное нажатие кнопки
- Из любого режима включается режим часов на черном фоне
- Из режима часов переключается в режим лампы
Трехкратное нажатие кнопки
Четырехкратное нажатие кнопки
- На экране матрицы в режиме бегущей строки отображается IP адрес матрицы, если подключение к локальной WiFi сети установлено
- При включении матрицы или при нажатии Reset удерживайте кнопку более 5 секунд. При этом загрузятся настройки по-умолчанию, а также сбросятся настройки WiFi сети.
ВНИМАНИЕ! Если это твой первый опыт работы с Arduino, читай инструкцию
- libraries — библиотеки проекта.
- firmware — прошивки для NodeMCU
- schemes — схемы подключения компонентов
- sounds — звуковые файлы будильника для размещения на SD-карте
- Android — файлы с приложениями, примерами для Android и Thunkable
- image decoding — папка с инструментами для загрузки картинок и гифок
Материалы и компоненты
Ссылки оставлены на магазины
Полный список компонентов есть в статье https://alexgyver.ru/matrix_guide/
Вам скорее всего пригодится
Как скачать и прошить
- Первые шаги с Arduino — ультра подробная статья по началу работы с Ардуино, ознакомиться первым делом!
- Скачать архив с проектом
На главной странице проекта (где ты читаешь этот текст) вверху справа зелёная кнопка Clone or download, вот её жми, там будет Download ZIP
- Установить библиотеки в
C:\Program Files (x86)\Arduino\libraries\ (Windows x64)
C:\Program Files\Arduino\libraries\ (Windows x86) - Подключить внешнее питание 5 Вольт
- Подключить Ардуино к компьютеру
- Запустить файл прошивки (который имеет расширение .ino)
- Настроить IDE (COM порт, модель Arduino, как в статье выше)
- Настроить что нужно по проекту
- Нажать загрузить
- Скачать и установить на смартфон GyverMatrix
- Пользоваться
Если проект не собирается (ошибки компиляции) или собирается, но работает неправильно (например вся матрица светится белым и ничего не происходит) — проверьте версии библиотек. Данный проект рассчитан на работу с версииями библиотек поддержки плат ESP версии 2.5.2 и библиотеки FastLED версии 3.2.9;
В: Как скачать с этого грёбаного сайта?
О: На главной странице проекта (где ты читаешь этот текст) вверху справа зелёная кнопка Clone or download, вот её жми, там будет Download ZIP
В: Скачался какой то файл .zip, куда его теперь?
О: Это архив. Можно открыть стандартными средствами Windows, но думаю у всех на компьютере установлен WinRAR, архив нужно правой кнопкой и извлечь.
В: Я совсем новичок! Что мне делать с Ардуиной, где взять все программы?
О: Читай и смотри видос http://alexgyver.ru/arduino-first/
Вопросы по этому проекту
В: Эй чувак! У тебя проект не компилится. Ты файл DFRobotDFPlayerMini.h в проект забыл включить. Выложи!
О: Это стандартная библиотека для MP3 DFPlayer. Идите в менеджер библиотек и установите ее. Или скачайте с сайта производителя
В: Собрал, использую NodeMCU. Ничего не работает! Мигает один или несколько светодиодов в начале матрицы. И всё.
О: NodeMCU v3 чрезвычайно требователен к источнику питания. Ему на вход VIN нужно подавать напряжение в диапазоне 4.7-5 вольт. И не более. Описанные эффекты возникают даже при питании в 5.25 (а тем более — 5.45) вольт. Для проверки — не подключайте +5 вольт от блока питания к NodeMCU совсем, питание подавайте на матрицу непосредственно. Землю NodeMCU и ленты соедините. Подключите сигнальный пин NodeMCU ко входу DIN ленты. Подключите NodeMCU к компьютеру через USB (питание будет поступать отсюда). Должно заработать. Далее регулируйте выходное напряжение своего блока питания.
В: Не компилируется. Выбрана плата «голая ESP8266-12E». Сообщение об ошибке: «D4 was not declared in this scope.»
О: Очевидно производители библиотеки для «голой ESP8266-12E» не определили данную константу. Используйте всесто константы D4 числовое определение пина для вашей платы или выполните компиляцию проекта для плат NodeMCU или WeMos D1 R2.
В: Не компилируется. В сообщении об ошибке содержатся сведения о дублирующихся библиотеках.
О: В вашей среде установлено две версии одной и той же библиотеки. Обычно это библиотека FastLED — одна версия находится в папке установки среды Ардуино (например в «C:\Program Files (x86)\Arduino\libraries»), другая — в папке документов пользователя (например «C:\Users\vvip-68\Documents\Arduino\libraries»). Удалите одну из версий библиотек и попробуйте скомпилировать снова.
В: Не компилируется. В сообщении об ошибке что-то про несоответствие типов.
О: Обычно такая ситуация возникает в двух случаях:
- выбрана неверная плата. Используйте NodeMCU 1.0 (ESP-12E Module) или Wemos D1 R1. Под эти платы проект собирается, под другие, возможно, нужна модификация кода.
- установлена устаревшая версия библиотек поддержки плат — например для ESP8266 версия библиотеки 2.4.2. Данный проект использует библиотеки для плат ESP8266 версии 2.5. Обновите библиотеки поддержки плат.
В: Что такое ESPTOUCH SmartConfig и как настроить устройство БЕЗ ручного подключения к SoftAP?
О: Данная технология позволяет передать настройки в устройство без создания программной точки достпуа, посредством специального протокола. Все, что необходимо сделать — это установить приложение EspTouch: SmartConfig for ESP8266, ESP32. Ваш телефон должен быть подключен к вашему домашнему роутеру. Запускайте приложение, вбивайте пароль от сети и нажимайте «confirm». При этом, матрица сканирует все пролетающие мимо пакеты (не важно, знает ли она SSID/Пароль) и хитро анализируя длину пакетов, расшифровывает настройки. После того, как матрица получит настройки, она автоматически переключится в режим DHCP
В: Как сбросить настройки?
О: Зажать кнопку и нажать Reset (или переподключить питание), чтобы матрица перезагрузилась. Держать кнопку не отпуская более 5 секунд. При этом, настройки Wi-Fi и всех эффектов сбрасываются, матрица 30 секунд попробует поискать SmartConfig а затем включит точку доступа.
Источник