BLUETOOTH МАТРИЦА НА АДРЕСНЫХ СВЕТОДИОДАХ

Добавлена версия 1.10, изменены схемы для esp8266. Будьте внимательны!
• Новая прошивка для матрицы называется GyverMatrixOS, можно использовать в проекте “матрица” и “гирлянда”.
• Версия 1.3 и выше прошивки GyverMatrixOS не помещается в Arduino Nano со всеми эффектами и режимами на матрице 16х16! Используйте матрицу меньшего размера или отключайте Bluetooth/текст/эффекты или используйте Arduino Mega/esp8266! см. ниже

подписаться на обновления

В этом проекте я оживил матрицу адресных светодиодов и прикрутил к ней управление со смартфона по 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 Вольта. Используйте вольтметр.

Оптимальные настройки лабиринта для 16х16

Оптимальные настройки лабиринта для 8х8

СХЕМЫ, ПЕЧАТНЫЕ ПЛАТЫ

Схема проекта

Сборка матрицы

Сборка матрицы

Типовая схема

Настройка типа матрицы

Схема для Arduino NANO

Схема для Arduino MEGA

Схема для NodeMCU 1.10+

Схема для Wemos D1 mini 1.10+

Схема для STM32 Blue Pill

МАТЕРИАЛЫ И КОМПОНЕНТЫ

Ссылки на магазины, с которых я закупаюсь уже не один год

Вам скорее всего пригодится:

Если вместо ссылок у вас открываются женские штаны/кофта/вата, проверьте свой айфон на вирусы, а лучше купите андроид!

Полный список компонентов есть в статье про матрицы https://alexgyver.ru/matrix_guide/ . Базовый набор для создания матрицы из видео:

Для использования ВСЕХ возможностей прошивки и/или больших матриц вместо Arduino NANO нужно брать более “мощные” платы. Инструкции по прошивке ищите ниже. Какую плату выбрать? Я думаю Wemos D1 mini – лучший выбор, т.к. он компактный и мощный + на борту есть Wi-Fi, и в дальнейшем с ним появятся отдельные плюшки. STM32 дешевле, но к ней нужен программатор! Если не хотите плясать с бубном конечно же. Также у STM32 какие-то проблемы с выводом изображения на ленту: оно чуть медленнее, чем у esp и avr (привет костылям от FastLED). Заметно подлагивает только в игре Runner, все остальные режимы и эффекты работают стабильно! Проверял на матрице 16х16.

Частые вопросы:

  • Матрица из модулей (гирлянда) – продаётся по 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 штук на метр, лента покрыта силиконом.
  • Резистор – обязателен, лично слышал о трёх случаях выгорания первого светодиода или пина ардуины в схеме без резистора. Без него работает, но до поры до времени.
  • Информация более подробная о размерах и некоторые идеи по сборке своей матрицы есть в статье о матрицах.
всё для пайки
аккумы, bms
arduino, модули
мультиметры
инструменты
бп и модули

БЫСТРЫЙ ГАЙД ПО ПРОЕКТАМ ALEXGYVER

1. Скачать архив со страницы проекта, нажав зелёную кнопку

1. Если вы зашли с GitHub, то скачать архив (это тот же самый архив!), кликнув Clone or download, затем Download ZIP

2. Извлечь содержимое архива при помощи программы архиватора. Если у вас нет WinRAR, то скачать его можно здесь.

3. Установить библиотеки, перетащив их из libraries из папки с проектом в пустое место ардуиновской папки библиотек libraries.

3.1 Вот так для примера выглядят установленные библиотеки. Если вам предложат заменить файлы – заменяйте.

4. Проверьте выбранную плату и COM порт. Если у вас доступен только COM1 – проверьте подключение/провод/ардуину. После выбора COM порта жмём стрелочку загрузить.

ПРОШИВКА НА ДРУГИЕ ПЛАТФОРМЫ

Версия прошивки 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. Ничего больше делать не нужно, выбираем плату и прошиваемся.

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

Начнём с разбора баттхёрта. Да, мы будем шить на STM32 через Arduino IDE и будем использовать мягко скажем неоптимальную библиотеку для работы с лентой. Не нравится – перепишите весь скетч под себя, используя DMA для работы с лентой. Меня всё устраивает в таком виде, в каком оно есть, к тому же моя специальность очень далека от микроконтроллеров. Всё работает, и это для меня самое главное.

  • Arduino IDE вместе со всеми драйверами установить и согласно статье первые шаги с Arduino.
  • Скачать архив с сайта (резерв на яндекс.диске)
  • Для Windows: скопировать папку Arduino_STM32 из папки Arduino_STM32 core for FastLED (из архива) в Документы/Arduino/hardware. Если папки hardware нет, то создать её! Примечание: это модифицированное официальное ядро, с официальным не работает! Так что удаляем своё (если было) и ставим из архива.
  • Удалить свою библиотеку FastLED (C:/Program Files (x86)/Arduino/libraries/FastLED) и вставить в папку библиотек папку FastLED-stm32patch (из архива). Примечание: это модифицированная библиотека, можно работать с ней и дальше с остальными платами. Модификация просто добавляет корректную поддержку 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.

скачать архив
страница на github
сообщить об ошибке
обсудить на форуме

Как прошить?

первые шаги с arduino
  • ЕСЛИ ЭТО ПЕРВЫЙ ОПЫТ РАБОТЫ С 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 кадров в секунду и очевидные тормоза. Как решить проблему? Использовать несколько синхронизированных контроллеров, каждый управляет своим участком матрицы. Как реализовать – учитесь, и ещё раз учитесь =)

Bluetooth матрица на адресных светодиодах
4.8 (95.12%) 41 vote[s]
2019-03-09T12:35:28+03:00