BLUETOOTH МАТРИЦА НА АДРЕСНЫХ СВЕТОДИОДАХ
• Добавлена версия 1.10, изменены схемы для esp8266. Будьте внимательны!
• Новая прошивка для матрицы называется GyverMatrixOS, можно использовать в проекте “матрица” и “гирлянда”.
• Версия 1.3 и выше прошивки GyverMatrixOS не помещается в Arduino Nano со всеми эффектами и режимами на матрице 16х16! Используйте матрицу меньшего размера или отключайте Bluetooth/текст/эффекты или используйте Arduino Mega/esp8266! см. ниже
- Проект получил развитие от vvip-68, который объединил его с прошивкой лампы и добавил кучу разных приколов! Вся информация здесь: https://github.com/vvip-68/GyverPanelWiFi
- Также данный проект без особых изменений есть под управление с WiFi (Wemos, NodeMCU). Вся информация здесь: https://github.com/vvip-68/GyverMatrixWiFi/
В этом проекте я оживил матрицу адресных светодиодов и прикрутил к ней управление со смартфона по Bluetooth. Система может показывать крутые эффекты, выводить настроенный бегущий текст, картинки, анимацию, время, есть несколько классических игр, а также управление со смартфона – режим рисования и отправки картинок и фотографий, эффекты, игры с управлением с телефона (даже акселерометром). Полный список возможностей и описания настроек смотрите в отдельной статье про прошивку GyverMatrixOS.
ПОДРОБНОЕ ВИДЕО ПО ПРОЕКТУ
В данном видео показан полный и максимально подробный процесс разработки и изготовления устройства, а также обзор его возможностей и функций.
Понятные схемы, OpenSource прошивки с комментариями и подробные инструкции это очень большая работа. Буду рад, если вы поддержите такой подход к созданию Ардуино проектов! Основная страница пожертвовать – здесь.
ИНСТРУКЦИИ ПО ЭКСПЛУАТАЦИИ
- Склеить/спаять матрицу/гирлянду по инструкции или купить готовую маленькую матрицу нужного вам размера
- Подключить всё к Ардуино по схеме (блютус и кнопки не обязательны)
- Скачать актуальную версию прошивки, настроить под себя параметры матрицы и эффектов
- Настроить под себя список режимов, которые крутятся в “режиме ожидания”. Смотри в этой статье
- Подробное описание возможностей и настроек GyverMatrixOS смотри в этой же статье
- Прошить, не забыв отключить провод от пина RX Ардуино
- Скачать на смартфон приложение GyverMatrixBT и настроить под свою матрицу (не обязательно)
- Действия кнопок смотрите в этой же статье
Прошивка постоянно совершенствуется, добавляются новые режимы и эффекты. Уже дошло до того, что в полном виде прошивка не помещается в Arduino NANO. Актуальная версия прошивки у вас точно не поместится, и нужно будет отключить ненужные “модули” в прошивке. Это может показаться сложным, но на деле нужно просто решить, какие режимы вам нужны, и в главной вкладке прошивки в строке ~60 есть список модулей. Их можно включать и выключать цифрой 0 (выкл) и 1 (вкл). Подробнее о памяти и модулях написано в статье о системе GyverMatrixOS.
Если хочется впихнуть ВСЕ возможности в свою матрицу, придётся купить Arduino MEGA, схема подключения будет такая же, нужно просто смотреть на названия пинов. Хочется дешевле? Версии прошивки GyverMatrixOS выше 1.7 оптимизированы для ESP8266 (она же NodeMCU и Wemos) и STM32 (Blue Pill). Для ESP8266 достаточно указать MCU_TYPE 1 и подключить по схеме. Для STM32 – MCU_TYPE 2 в настройках скетча. Подробные инструкции по загрузке прошивки ищите ниже.
• Где-то плохое соединение в схеме
• Плохое питание (слабый/шумящий БП). Поставьте электролитический конденсатор на 6V 470 мкФ максимально близко к питанию ПЛАТЫ. Также параллельно ему можно повесить керамический конденсатор на 1 мкФ
• Слишком длинный провод от пина платы к Din ленты
• Если глюк на esp8266 (NodeMCU или Wemos) – попробуйте прошивку версии 1.10
• Замечены случаи глюков на NodeMCU при питании 5 Вольт. На 4.5 Вольтах всё работает без глюков, почему так – хз. У блоков питания в дырявом металлическом корпусе около терминалов подключения есть резистор подстройки напряжения, можно выкрутить питание на 4.5 Вольта. Используйте вольтметр.
КРЕПЛЕНИЕ НА ОКНО
МАТЕРИАЛЫ И КОМПОНЕНТЫ
Ссылки на магазины, с которых я закупаюсь уже не один год
Вам скорее всего пригодится:
Полный список компонентов есть в статье про матрицы https://alexgyver.ru/matrix_guide/ . Базовый набор для создания матрицы из видео:
- Arduino NANO 328p – искать
- Bluetooth HC-06 – искать
- Матрица 16×16 – искать
- Адресная лента
- https://ali.ski/crrqi1
- https://ali.ski/2I3be
- Купить в РФ, 60 свет/метр, 30 свет/метр
- Black PCB / White PCB – цвет подложки ленты, чёрная / белая. В видео была чёрная
- 1m/5m – длина ленты в метрах (чтобы заказать 2 метра, берите два заказа 1m, очевидно)
- 30/60/74/96/100/144 – количество светодиодов на 1 метр ленты. В видео использовалась лента 60 диодов на метр
- IP30 лента без влагозащиты (как на видео)
- IP65 лента покрыта силиконом
- IP67 лента полностью в силиконовом коробе
- Постфикс ECO – лента чуть более низкого качества, меньше меди, на длинной ленте будет сильно проседать яркость
- Гирлянда
- http://ali.ski/0h35RR (Алик)
- WS2812 (купить в РФ)
- WS2813 (купить в РФ)
- Резисторы (220R) https://ali.ski/TAN2C
- БП 5V Али искать (минимум 3A на каждые 100 LED)
- RTC DS3231
Для использования ВСЕХ возможностей прошивки и/или больших матриц вместо Arduino NANO нужно брать более “мощные” платы. Инструкции по прошивке ищите ниже. Какую плату выбрать? Я думаю Wemos D1 mini – лучший выбор, т.к. он компактный и мощный + на борту есть Wi-Fi, и в дальнейшем с ним появятся отдельные плюшки. STM32 дешевле, но к ней нужен программатор! Если не хотите плясать с бубном конечно же. Также у STM32 какие-то проблемы с выводом изображения на ленту: оно чуть медленнее, чем у esp и avr (привет костылям от FastLED). Заметно подлагивает только в игре Runner, все остальные режимы и эффекты работают стабильно! Проверял на матрице 16х16.
- Arduino MEGA/MEGA Pro https://ali.ski/jtYGmB
- NodeMCU – искать
- Wemos D1 mini – искать
- Blue Pill (STM32)
- ST-Link (программатор STM32)
Частые вопросы:
- Матрица из модулей (гирлянда) – продаётся по 50 штук в одной связке (одна единица товара на алиэкспресс). Расстояние между модулями 12 см. Как узнать количество ленты для своего окна – рулетка и школьная задача. Лишнее можно отсоединить, сгоревший по криворукости модуль можно заменить, в этом фишка ленты. Варианты у продавца: colorful wire/transparent wite/black wire – цвет проводов между модулями. отличия видно на картинках на странице товара
- Адресная лента – black/white PCB – цвет подложки ленты (белый/чёрный). IP – степень влагозащиты. IP30 – без защиты (голые диоды), IP65 – лента покрыта силиконом, IP67 – лента в силиконовом коробе. Очевидно нужна IP30, она дешевле и защита не нужна. Рассмотрим кодировку выбора ленты 1m 30 IP30: купить кусок ленты длиной 1 метр с плотностью светодиодов 30 штук на метр, без влагозащиты. 5m 60 IP65 – купить 5 метров ленты с плотностью 60 штук на метр, лента покрыта силиконом.
- Резистор – обязателен, лично слышал о трёх случаях выгорания первого светодиода или пина ардуины в схеме без резистора. Без него работает, но до поры до времени.
- Информация более подробная о размерах и некоторые идеи по сборке своей матрицы есть в статье о матрицах.
БЫСТРЫЙ ГАЙД ПО ПРОЕКТАМ ALEXGYVER
2. Извлечь содержимое архива при помощи программы архиватора. Если у вас нет WinRAR, то скачать его можно здесь.
ПРОШИВКА НА ДРУГИЕ ПЛАТФОРМЫ
Версия прошивки 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. Схемы подключения перечисленных плат можно найти на основной странице проекта.

- Arduino IDE вместе со всеми драйверами устанавливается и настраивается согласно статье первые шаги с Arduino.
- Библиотеки установить из папки архива libraries/ESP, ARDUINO
- Выбираем плату и прошиваемся
- Arduino IDE вместе со всеми драйверами установить и согласно статье первые шаги с Arduino.
- Библиотеки установить из папки архива libraries/ESP, ARDUINO
- Зайти в Файл/Настройки, в самом низу “Дополнительные ссылки для менеджера плат”. Вставить строку http://arduino.esp8266.com/stable/package_esp8266com_index.json и нажать ОК
- Инструменты/Плата/Менеджер плат… (самый первый в списке)
- В появившемся окне в поиск вписать esp8266, выбрать esp8266 by ESP8266 Community и нажать установить. Ставим версию 2.5.2
- Теперь в списке плат (Инструменты/Плата) появится семейство плат на esp8266. Выбрать Wemos D1 R1. Под неё всё компилируется нормально, под другие платы почему-то не хочет =)
- Для NodeMCU:
- Подключить плату по USB
- Зажать и удерживать кнопку FLASH
- Кликнуть по кнопке RST
- Отпустить кнопку FLASH
- Выбрать в Arduino IDE порт и нажать загрузка
- Для Wemos D1 Mini:
- Подключить плату по USB
- На всякий случай тыкнуть RESET
- Выбрать порт и нажать загрузка




- Arduino IDE вместе со всеми драйверами установить и согласно статье первые шаги с Arduino.
- Скачать архив с сайта (резерв на яндекс.диске)
- Для Windows: скопировать папку Arduino_STM32 из папки Arduino_STM32 core for FastLED (из архива) в Документы/Arduino/hardware. Если папки hardware нет, то создать её! Примечание: это модифицированное официальное ядро, с официальным не работает! Так что удаляем своё (если было) и ставим из архива.
- Удалить свою библиотеку FastLED (C:/Program Files (x86)/Arduino/libraries/FastLED) и вставить в папку библиотек папку FastLED-stm32patch (из архива/libraries/STM32). Примечание: это модифицированная библиотека, можно работать с ней и дальше с остальными платами. Модификация просто добавляет корректную поддержку STM32.
- Запускаем Arduino IDE. Инструменты/Плата/Менеджер плат. Листаем и находим Arduino SAM Boards (32-bits ARM Cotrex-M3) by Arduino. Устанавливаем.
- Выбираем плату Инструменты/Плата/Generic STM32F103C
- Инструменты/Upload method/STLink. Примечание: есть несколько способов загрузить прошивку на плату Blue Pill. Через программатор ST-Link проще и надёжнее всего!
- Устанавливаем драйвер для ST-Link: файл dpinst_amd64.exe из папки Драйвер ST-Link (прошиватор) (из архива).
- Подключаем ST-Link к компьютеру и ждём установки драйверов. Отключаем ST-Link от компьютера.
- Подключаем ST-Link к плате (смотри фотку в архиве). GND->GND, 3.3V->3.3, SWDIO->DIO, SWCLK->DCLK.
- Обе перемычки на плате ставим в положения 0 (смотри фотку в архиве).
- Подключаем ST-Link с висящей Blue Pill к компьютеру и нажимаем загрузить прошивку. Всё, можно пользоваться!



ПРОШИВКА И НАСТРОЙКА
Содержимое папок в архиве
- libraries – библиотеки проекта. Заменить имеющиеся версии (в этом проекте внешних библиотек нет)
- firmware – прошивки для Arduino
- schemes – схемы подключения компонентов
- Android – файлы с приложениями, примерами для Android и Thunkable
Внимание! Прошивка GyverMatrixBT из папки “старые версии” устарела, на её основе сделана прошивка GyverMatrixOS, которую и нужно загружать. Но как я писал выше – в плату Nano она не вмещается полностью, нужно отключать модули. Можно пользоваться в таком виде, как было на видео про гирлянду. Там были включены ТОЛЬКО режимы bluetooth (BT_MODE), режим текста (USE_FONTS) и все три игры. Часы, кнопки и крутые эффекты придётся отключить! Хотите полной функциональности – покупаем Arduino Mega или ждём версию под stm32.
Как прошить?
- ЕСЛИ ЭТО ПЕРВЫЙ ОПЫТ РАБОТЫ С ARDUINO – посмотреть ВИДЕО о платформе с целью ознакомления, далее скачать, установить и настроить необходимые для работы программы согласно СУПЕР ПОДРОБНОЙ ИНСТРУКЦИИ (там даже видео версия есть!).
- Скачать архив с проектом напрямую, или с GitHub (кнопки чуть выше)
Установить библиотеки (папка Libraries) в
C:Program Files (x86)Arduinolibraries (Windows x64)
C:Program FilesArduinolibraries (Windows x86)
Подробнее в 4-ом пункте статьи для новичков- Подключить Ардуино к компьютеру при помощи Data-кабеля
- Открыть файл прошивки желаемой версии (файлы прошивок .ino лежат в одноимённых папках)
- Настроить Arduino IDE (COM порт, куда подключена плата; подключенная модель Arduino, как в статье из первого пункта)
- Настроить что нужно в прошивке, нажать загрузить
Если происходит ошибка компиляции или ошибка загрузки, читать 5-ый пункт в статье для новичков.
Настройки в прошивке
USE_BUTTONS 0 // использовать физические кнопки управления (0 нет, 1 да) BUTT_UP 3 // кнопка вверх BUTT_DOWN 5 // кнопка вниз BUTT_LEFT 2 // кнопка влево BUTT_RIGHT 4 // кнопка вправо LED_PIN 6 // пин ленты BRIGHTNESS 60 // стандартная маскимальная яркость (0-255) WIDTH 16 // ширина матрицы HEIGHT 16 // высота матрицы MATRIX_TYPE 0 // тип матрицы: 0 - зигзаг, 1 - последовательная CONNECTION_ANGLE 0 // угол подключения: 0 - левый нижний, 1 - левый верхний, 2 - правый верхний, 3 - правый нижний STRIP_DIRECTION 0 // направление ленты из угла: 0 - вправо, 1 - вверх, 2 - влево, 3 - вниз SCORE_SIZE 0 // размер букв счёта в игре. 0 - маленький (для 8х8), 1 - большой FONT_TYPE 1 // (0 / 1) два вида маленького шрифта GLOBAL_COLOR_1 CRGB::Green // основной цвет №1 для игр GLOBAL_COLOR_2 CRGB::Orange // основной цвет №2 для игр
Дополнительно
Не забудь отключить пин RX для прошивки!
Поддержка матриц большего размера. Да, можно завести больше 256 светодиодов, но оперативной памяти у NANO (2 кб) останется ещё меньше. Тут либо выборочно отключать режимы/игры, либо брать плату помощнее: Arduino Pro Micro (2.5 кб), а ещё лучше – Arduino MEGA (8 кб). Также нельзя забывать, что скорость обновления матрицы ограничена протоколом связи с ней: он вроде бы 800 килогерц, но на деле получается так: 500 диодов – 60 кадров в секунду, 1000 диодов – 30 кадров в секунду, 2000 диодов – 15 кадров в секунду и очевидные тормоза. Как решить проблему? Использовать несколько синхронизированных контроллеров, каждый управляет своим участком матрицы. Как реализовать – учитесь, и ещё раз учитесь =)