Андрей Смирнов
Время чтения: ~21 мин.
Просмотров: 13

Светодиодная матрица: описание, применение

toozpickArduino / СветодиодыДобавлен 1 комментарий Приветствую, Самоделкины!Сегодня мы с вами будем развлекаться с адресной светодиодной матрицей. Этот проект достаточно сложный, но в тоже время его сможет повторить каждый. Автором проекта является AlexGyver.Адресная светодиодная лента состоит из трехцветных светодиодов, в каждом из которых стоит специальная микросхема.Микросхема в светодиодах передает информацию друг другу. Это позволяет зажечь любой светодиод на ленте одним из 16 000 000 цветов и оттенков. И самое крутое, что все это дело управляется по одному проводу, в очень интересное время мы живём.Лента управляется при помощи микроконтроллера, например, платформы arduino. Такая связка сама по себе весьма интересна и можно найти кучу применений в дизайне или самоделках, чего стоит только эффект пламени. Но сегодня речь пойдёт не об этом. Что получится если ленту уложить зигзагом, причем уложить так, чтобы светодиоды образовали ровную правильную сетку? Правильно, светодиодная матрица. Для удобства можно купить готовую матрицу у китайцев, причем самое интересное, что стоит она гораздо дешевле, чем купить ленту и потратить несколько часов на разрезание и соединение кусков проводами.Например, есть вот такая матрица 8Х8, самая дешевая, кому-то будет проще поиграться именно с ней.Фишка сегодняшнего проекта в его универсальности и многогранности, то есть, вы можете купить готовую матрицу, но она так скажем небольшая, но также вы можете купить ленту с низкой плотностью светодиодов и сделать из нее матрицу размером, скажем, с картину. Вот это будет уже круто.Матрица представляет очень большие возможности по созданию различных пиксельных эффектов, выводу картинок и гифок (gif), созданию классических игр и других интересных штук. Обязательно посетите страницу проекта, там вы найдете все необходимые ссылки, прошивки, схемы и дополнительные инструкции.Итак, вооружившись инструментом по управлению матрицы, мы имеем возможность зажигать любой светодиод по его координатам. Здорово, можно делать всякие крутые эффекты. Управлять можно со смартфона по bluetooth. То есть смартфон шлет по bluetooth какие-то команды, модуль их принимает и передает на arduino. А arduino в свою очередь выводит данные на матрицу.Начал автор с того, что решил сделать рисовалку, то есть, чтобы можно было выбрать цвет и зажечь любой светодиод на матрице. Первым делом был разработан протокол связи с arduino.Первая цифра в нем – режим, а остальные отвечали за различные настройки и прочие передаваемые величины. Затем автор сделал графическое поле, на котором нарисовал сетку.Программа отслеживает координаты касания поля пальцем и рисует в этом месте квадратик любым цветом. Попутно координаты квадратика отправляются на arduino.Для изготовления нам понадобятся:1)Матрица или лента на адресных светодиодах;2)Arduino;3)Bluetooth модуль;4)Резистор.Можно купить полкило у китайцев, а можно купить в любом магазине радиотоваров. Соединяем компоненты по очень простой схеме:Можно собрать все на макетке. Затем скачайте архив с проектом со страницы проекта, установите библиотеки согласно инструкции и откройте файл с прошивкой.Тут у нас настроечки. Укажите размер своей матрицы, ее тип и точку подключения.Если делать большую матрицу самому, то есть паять из кусков ленты, то у вас есть 2 типа на выбор.Автор советует выбрать правый вариант, так как его проще паять. Теперь осталось определиться с началом матрицы, то есть точкой подключения к ней и направлению первого куска ленты. Поможет вот такая шпаргалка для всех 8-ми вариантов расположения матрицы:На эту прошивку автор потратил огромнейшую кучу времени. Это самый крупный по количеству кода проект автора. Arduino забита просто под завязку, впихнул как говорится невпихуемое.Итак, настроили, нажимаем загрузить прошивку. Перед загрузкой нужно обязательно отключить bluetooth от пина rx, иначе arduino не прошьется. Для удобства также можно припаять на провод выключатель.Далее на смартфон под управлением android установите приложение GyverMatrixBT. Данное приложение доступно в Play Market, оно полностью бесплатное и без рекламы.Затем установите сопряжение с bluetooth модулем (пароль 1234 или 0000), в приложении подключитесь к модулю и, собственно все. В настройках можно настроить яркость и размер матрицы, которая соответствует вашему, а также некоторые другие ее параметры.Соответственно настроенному размеру, во вкладке рисования у нас появится поле. Нажмите чтобы его инициализировать. Тут можно рисовать тапами и свайпами, можно стирать, можно очищать поле и заливать его цветом.В общем на данный момент у нас есть рабочий инструмент для отправки данных на матрицу. Можно двигаться дальше. Вся эта система задумывалась автором для того чтобы построить большую матрицу из ленты или модулей. Это интересно как проект, как хобби, кому-то может пригодиться в рекламных целях, для оформления или для дизайна, ну или забавы ради.Но вот матрица в таком виде выглядит не очень круто, не пиксельно и не восьмибитно. Нужно обязательно сделать решетку, чтобы каждый светодиод образовывал свои квадратные пиксели и сверху расположить рассеиватель. Вот тогда все будет очень круто. Решетку можно сделать из любого материала в форме и рейки. Это может быть картон, пачка советских деревянных линеек или вариант из пластика (ПВХ уголок), его можно купить в магазине стройматериалов там, где пластиковые панели и к ним различные товары. Уголки можно сломать вдоль, проделать прорези для середины и собрать решетку. Это вот самый «колхозный» вариант после картона.И конечно можно расслабиться, и напечатать решетку на 3d принтере. Так что давайте так и сделаем.Итак, корпус матрицы напечатался. Кстати, автор считает, что черный цвет не самый лучший выбор, лучше печатать решетку белым, чтобы она отражала свет. Ну не беда, покрасим.Собственно, вот наша матрица без решетки, светодиоды как они есть.Ставим решетку, становится уже почетче, это потому, что смотрим под углом.А теперь смотрите, что будет если добавить рассеиватель в виде листа бумаги.Но матрица, как и любой дисплей, работает в цветовом пространстве rgb, и фон у нее должен быть черным для более правильного восприятия цвета. Автор попробовал несколько вариантов и остановился на пленке для авто тонировки и матовым пластиком. В тандеме это все работает просто замечательно.Всё это собираем. Осталось нам окончательно спаять всю схему, разместить ее внутри кармашка, закрепить матрицу задником от рамки для фото (а лучше найти лист алюминия) и закрепить внешнюю рамку.Подключаем питание. Автор использовал лабораторный блок питания, чтобы мы могли видеть потребление тока.Первый режим – рисование.Следующий режим — передача картинок. Выбираем своим файловым менеджером картинку (в данном случае это Марио на черном фоне 16х16).Следующий режим — бегущая строка.Следующий режим – эффекты. Некоторые эффекты можно комбинировать с бегущим текстом и с рисунками.Больше эффектов в видеоролике автора:Благодарю за внимание. До новых встреч! Доставка новых самоделок на почту

Получайте на почту подборку новых самоделок. Никакого спама, только полезные идеи!

*Заполняя форму вы соглашаетесь на обработку персональных данных

Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь. mario-1-600x480.jpg

Проект “Bluetooth матрица”

Проект “Гирлянда-дисплей”

Проект “Тетрис”

В этом гайде речь пойдёт о матрицах из адресных светодиодных лент. Если вы не в курсе про адресные ленты, то рекомендую изучить вот эту статейку. Фишка адресной ленты в том, что мы можем управлять любым из подключенных светодиодов. Если уложить ленту так, чтобы светодиоды образовывали ровную сетку, то мы получим матрицу, у которой можно зажечь любой “пиксель”, а зажечь можно одним из 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, т.е. ощутимые глюки в быстрых эффектах.

ЗАКУПАЕМСЯ КОМПОНЕНТАМИ

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

Ленты всех типов. Нам нужна IP30 (без влагозащиты), плотность 60 или 30 на метр по желанию

Модули, спаянные в гирлянду с шагом 12см. Идеальный вариант для создания новогодней матрицы на окно. Шаг между диодами – 12 см, в одной связке 50 диодов. Зная размеры своего окна, посчитать несложно. Сколько получилось у меня – смотрите в скетче в настройках.

Готовая матрица 16×16 пикселей (16×16 сантиметров соответственно) на гибкой подложке. Тип матрицы – зигзаг.

Готовая матрица 8×32 пикселей (8×32 сантиметров соответственно) на гибкой подложке. Тип матрицы – зигзаг.

Готовая матрица 8×8 пикселей (8×8 сантиметров соответственно) на гибкой или твёрдой подложке (твёрдая дешевле!). Тип твёрдой матрицы – параллельная, тип мягкой – зигзаг!

Подборка “Всё для пайки с AliExpress” у меня на сайте

Корпусные блоки питания на 5V. Какой нужен ток – читайте ниже. Но не забывайте про “китайские” амперы и берите с запасом по току минимум 20%!

DIY блоки питания на 5V. Какой нужен ток – читайте ниже. Но не забывайте про “китайские” амперы и берите с запасом по току минимум 20%!

Некоторые компоненты для правильного подключения матриц. Резисторы 220 Ом, конденсаторы 6.3 V (или 10V) 470-100 мкФ

Arduino NANO 3.0 на микроконтроллере Atmega 328p для управления матрицей

Bluetooth модуль для управления матрицей по Bluetooth из приложения GyverMatrixBT

Модуль реального времени для правильного функционирования часов на матрице

ПОДКЛЮЧАЕМ МАТРИЦУ

Начнём с типов соединения матрицы, их всего два: последовательный и параллельный, + совмещённый вариант по питанию. Плюсы и минусы указаны на рисунке, для больших матриц предпочтительнее использовать параллельный тип, так гораздо лучше организуется питание. Но вот с ответвлениями силовых проводов придётся повозиться. Если делать матрицу из гирлянды модулей, то естественно проще сделать её зигзагом. Но обязательно проверить на разной яркости и убедиться, что тока хватает дальним светодиодам (при просадке напряжения заданный белый цвет уходит в желтизну (небольшая просадка) или в красный (сильная просадка напряжения). В этом случае питание нужно будет продублировать толстыми проводами к каждому отрезку ленты (к каждой строке матрицы).

Матрица подключается к 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 печати есть в архиве с проектом.

ПРОШИВКА И НАСТРОЙКИ

Первым делом нужно будет настроить в скетче размеры матрицы, точку подключения и направление первого отрезка ленты. Подсказка ниже.

Данный тип инициализации матрицы позволяет подключать матрицу любой конфигурации с любым положением начала матрицы. Это удобно для покупных матриц, которые можно только “крутить”, так и для самодельных, когда есть какие-то особенности корпуса или укладки проводов. То есть как бы вы ни сделали и не расположили матрицу, она всё равно будет работать с корректным положением начала координат. Кстати, можно очень легко “отзеркалить” матрицу по горизонтали или вертикали, если это зачем-то вдруг нужно: просто меняете подключение на “противоположное” по желаемой оси. Например хотим отзеркалить тип подключения (1, 0) по вертикали. Настраиваем его как (2, 2) – смотрите рисунок выше. Хотим отзеркалить тип (3, 1) по вертикали – настраиваем его как (2, 3). Тип (3, 2) по горизонтали? Пожалуйста, ставим его как (2, 2). Надеюсь логика понятна.

Если вы впервые работаете с Arduino, то остановитесь и изучите вот этот гайд. После установки драйверов и библиотек можно переходить к прошивке платформы. У меня есть готовый проект с играми и эффектами, переходите на страницу проекта за подробностями и прошивками. Дальше будет информация для разработчиков, то есть тех, кто хочет написать что-то для матрицы самостоятельно!

ДЛЯ РАЗРАБОТЧИКОВ

Для работы с лентой я использую библиотеку FastLED, потому что некоторые её возможности и функции действительно fast. Для работы с матрицей я написал собственный набор инструментов, который в разы оптимальнее и быстрее того же Adafruit Neo Matrix, в связке с FastLED мой код работает просто шикарно. Вы можете скачать “чистую” версию прошивки, в которой содержатся только настройки и инструменты для работы с матрицей, этот код будет интересен энтузиастам, которые хотят написать что то под матрицу с чистого листа. СКАЧАТЬ С САЙТА. Библиотека FastLED входит в архив. 22.02.2019 вышла версия 1.1

В самом начале прошивки содержатся настройки типа матрицы и её подключения, тип подключения определяется стоя лицом к матрице. Для упрощения настройки подключения матрицы (угол и направление) используйте подсказку сверху =)

// **************** НАСТРОЙКИ МАТРИЦЫ ****************  #define LED_PIN 6           // пин ленты  #define BRIGHTNESS 60       // стандартная маскимальная яркость (0-255)    #define WIDTH 16            // ширина матрицы  #define HEIGHT 16           // высота матрицы    #define MATRIX_TYPE 0       // тип матрицы: 0 - зигзаг, 1 - последовательная  #define CONNECTION_ANGLE 0  // угол подключения: 0 - левый нижний, 1 - левый верхний, 2 - правый верхний, 3 - правый нижний  #define STRIP_DIRECTION 0   // направление ленты из угла: 0 - вправо, 1 - вверх, 2 - влево, 3 - вниз

Также в прошивке содержится вкладка utility_funx, в которой как раз сидят все функции по работе с матрицей:

void loadImage(название массива битмап);   // отобразить картинку из массива "название массива". По картинкам читайте ниже  void drawDigit3x5(byte digit, byte X, byte Y, uint32_t color);  // нарисовать цифру (цифра, коорд. Х, коорд. У, цвет)  void drawDots(byte X, byte Y, uint32_t color); // нарисовать  точки для часов (коорд. Х, коорд. У, цвет)  void drawClock(byte hrs, byte mins, boolean dots, byte X, byte Y, uint32_t color1, uint32_t color2);  // нарисовать часы (часы, минуты, точки вкл/выкл, коорд. Х, коорд. У, цвет1, цвет2)  static uint32_t expandColor(uint16_t color);  // преобразовать цвет из 16 битного в 24 битный  uint32_t gammaCorrection(uint32_t color);  // гамма-коррекция (преобразует цвет более натуральный цвет)  void fillAll(uint32_t color);  // залить всю матрицу цветом  void drawPixelXY(byte x, byte y, uint32_t color);  // функция отрисовки точки по координатам X Y (коорд. Х, коорд. У, цвет)  uint32_t getPixColor(int thisPixel);  // функция получения цвета пикселя по его номеру  uint32_t getPixColorXY(byte x, byte y);  // функция получения цвета пикселя в матрице по его координатам (коорд. Х, коорд. У)  uint16_t getPixelNumber(byte x, byte y);  // получить номер пикселя в ленте по координатам (коорд. Х, коорд. У, цвет)

Начало координат матрицы – левый нижний угол, имеет нулевые координаты!

Пользуясь этими функциями можно создавать различные эффекты разной степени сложности, а также классические игры!

ПОДГОТОВКА И ВЫВОД ИЗОБРАЖЕНИЙ

Информация появится после выхода видео

КРУТЫЕ ПИКСЕЛЬНЫЕ ЭФФЕКТЫ

Информация появится после выхода видео

КЛАССИЧЕСКИЕ ИГРЫ

Информация появится после выхода видео

Автор оригинала: James Bruce

  • Перевод

cd95144ab66542fc9ec971e29785a9b8.jpg Полгода назад мы дополнили наш почти традиционный офисный каток 7,6 тыс. светодиодами, чтобы транслировать изображения и видео прямо на поверхность льда. На гиктаймсе был опубликован пост, в котором рассказывалось о том, что подо льдом скрывается самый настоящий гигантский дисплей разрешением 120х63 «пикселей», на который можно выводить достаточно сложные и яркие изображения. Часто нам задавали вопрос: можно ли своими руками сделать нечто подобное дома? Можно, почему нет? Про лед был подробный рассказ (вот история о первом катке — захватывающее чтиво в июльскую жару), а вот о способах превращения светодиодов в большой дисплей практически не упоминали. Так как наши мейкеры люди занятые и предпочитают говорить о чем-то новом, а не пережевывать прошлое, публикация этой статьи откладывалась снова и снова. В конечном счете мы решили перевести для вас понятный и наглядный туториал, после которого можно будет взять и повесить дисплей себе на стену. Итак, выдохните, все будет просто. Бóльшая часть времени уйдет на сборку — придется немного покорпеть над соединением лент друг с другом. Они должны быть спаяны в последовательную цепь на задней стороне панели. Для рассеивания света защитное стекло будет матированным. Главный вопрос проекта — какое ПО использовать? Здесь все зависит от ваших потребностей: мы начнем с демокода и указателей, а в одной из следующих статей рассмотрим, как выводить на дисплей уведомления и котировки акций.d112c42ce7184e929a9daabfaccb8cf7.jpg

  • 10 м светодиодной ленты (продается в катушках по 5 м). Я использовал дешевый вариант — WS2812B. Если же вам хочется получить более высокое разрешение дисплея, можете приобрести ленту с плотностью 60 светодиодов/метр;
  • блок питания на 5 В и 10 А. Я использовал модель, у которой входное питание до 240 В подается на винтовые зажимы. Если вам нужно сделать дисплей более безопасным, выберите полностью закрытый блок питания;
  • Arduino UNO;
  • большое количество отрезков толстого провода. Я отрезал пучок от старого компьютерного блока питания;
  • фоторамка 50х50 см;
  • матирующий спрей и белая краска.

Общие затраты у меня получились меньше $100. Также вам понадобятся инструменты:

  • паяльник с припоем;
  • клеевой пистолет;
  • нож или ножницы;
  • инструмент для снятия изоляции.

Сначала прочитайте пособие по работе с электроникой для начинающих!b009ff53c1354ca0a906f618ba84b6d4.jpg Если вы приобрели рамку 50х50 см и такие же светодиодные ленты, как у меня, то сможете уместить в дисплей 15 отрезков по 15 светодиодов. Но ничто не мешает использовать рамку другого размера. Расстояние между светодиодами — около 30 мм, таким образом на один пиксель приходится примерно 30 мм2. Это наш 1DPI. Ну да, разрешение не как у Retina. Рассчитайте, сколько отрезков ленты вам понадобится, и расчертите направляющие с обратной стороны панели. Семь раз проверьте, один раз отрежьте: у меня ленты немного различаются, потому что когда я начал их приклеивать, то обнаружил, что могу вместить только 14 отрезков по 15 светодиодов. Но это не страшно — в приложении можно легко настроить разное количество рядов пикселей и их длину. Отрежьте куски, подходящие для вашей рамки. К сожалению, я обнаружил, что у меня 15-е светодиоды в отрезках приходятся как раз на то место, где нужно припаивать соединительные провода. Поэтому пришлось их выпаивать.90ef936d504c4ba1b5d26f81467ef2cc.jpg Для лучшего рассеивания света я решил нанести на обе стороны стекла матирующий спрей. Делать это лучше на улице или на балконе, так как спрей вреден для здоровья. Наносить его необходимо как можно более равномерно. После высыхания матирование получается очень устойчивым, но изначально необходимо добиться равномерного покрытия без каких-либо царапин. Также задуйте белой краской панель, которая будет видна сквозь стекло. Отрежьте один из углов — здесь пройдут провода.d30df124ef1c4beaba4506d9c78374b5.jpg Для приклеивания лент к панели используйте суперклей. Я пробовал двусторонний скотч, но через несколько недель он отвалился. Клеевой пистолет еще хуже, ведь обе поверхности — панель и обратная сторона ленты — гладкие и не имеют пор. Если вы приобрели светодиодные ленты в резиновом корпусе, то не сильно переживайте относительно точности размещения — их можно свободно двигать. Помните, что сигнал будет проходить через всю цепь, и у каждой ленты есть направление передачи сигнала. Ленты нужно размещать так: у одной стрелка (направление сигнала) указывает направо, у следующей — налево, потом опять направо и т.д. То есть сигнал по дисплею будет идти «змейкой». Проверьте еще раз правильность размещения лент, прежде чем клеить их!7d9164a5e2af472a976d8098a64aab44.jpg Для соединения лент требуется по три провода разной длины. Внутреннюю пару контактов соединяем самым коротким проводом (на фото — красный), для средней пары берем провод подлиннее, а к внешним контактам припаиваем самый длинный. В зависимости от того, какие ленты в данный момент соединяются, внутренние контакты будут либо питанием (+5V), либо заземлением (GND). Прежде чем припаивать провода, залудите их и сами контакты на лентах. На это уйдет больше всего времени, но это крайне важный момент. Не торопитесь, дважды проверьте правильность соединяемых контактов!5633e388892842f286b28bd6041aa867.jpg После возни с подключением проводов вы можете обнаружить, что первая лента сдвинулась. Эту проблему я решил следующим образом: просверлил два маленьких отверстия и зафиксировал ленту стяжкой. Если у вас не было под рукой достаточно сильного клея, то таким образом можно дополнительно зафиксировать все ленты с обоих концов.b940bbff8873459488f711778a45e6af.jpg Шестой пин Arduino используется для передачи управляющего сигнала; напряжение питания должно подаваться напрямую от блока питания. Подключите заземление между лентами, Arduino и блоком питания. Не пытайтесь запитать ленты от Arduino, а также не подключайте блок питания к Arduino при подключенном USB (когда будет загружаться код для тестирования). Скачайте и добавьте в соответствующую папку библиотеку AdafruitNeoPixel, затем запустите Arduino. Протестируйте подключение с помощью следующего кода, указав в первом параметре количество светодиодов (в нашем примере — 60):Adafruit_NeoPixel strip =Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800); Если анимация остановится на каком-то ряду, сразу отключите всю конструкцию и проверьте подключение. Возможные причины сбоя:

  • неправильное направление ленты;
  • вы спутали контакты при соединении лент;
  • вы припаяли +5V к GND.

521a7a6c7cbb4901b9c45768684ec074.jpg Поскольку рамка не была рассчитана на такую глубину размещения панели, мне пришлось сначала зафиксировать стекло клеевым пистолетом, а затем по периметру вставить резиновый уплотнитель, работающий буфером между стеклом и панелью со светодиодами. После завершающего тестирования помещаем панель в рамку и фиксируем ее клеевым пистолетом. В углу можно проделать небольшое отверстие для вывода проводов. Все, техническая сторона проекта завершена. Можете еще подумать над тем, возможно ли спрятать в рамке еще и блок питания с Arduino. А пока переходим к настройке ПО. Программа Glediator компании SolderLab.de очень хорошо подходит для анимирования светодиодных матриц на вечеринках или в ночных клубах. Она способна управлять матрицей, состоящей из 512 светодиодов WS2812/NeoPixels, формируя до 24 кадров/сек — этого вполне достаточно для нашего дисплея, можно даже выводить на него простенькие анимационные гифы. Микшер позволит делать плавные переходы между анимациями.75c61730457547458e0441e7db28324a.png Для работы с Glediator установите на Arduino UNO прошивку, и проверьте, чтобы сигнальный кабель был подключен к пину 6. Не забудьте прописать в переменной количество используемых вами светодиодов. Запустите Glediator, откройте свойства и измените размер матрицы и режим вывода. Настройте порядок пикселей, если у вас используется другая схема, но по этому шагу мало документации, поэтому придется действовать методом проб и ошибок. Если изображение на дисплее отличается от задуманного, попробуйте поиграть с настройками. У меня работал порядок пикселей HS_BL — подозреваю, что это означает «horizontalsnake, startingbottomleft» (горизонтальная змейка, начало слева внизу).984fdc70f65e4cd294af0fae75697fae.png Glediator — профессиональное приложение, не будем пока изучать его интерфейс и возможности. Загрузите в левое и правое окна разные анимации, затем двигайте микшер между ними. Или используйте готовый плейлист, который показан в видеоролике. Компания Adafruit создала очень полезную библиотеку для работы со светодиодными матрицами. Сначала она называлась Adafruit GFX, и изначально предназначалась для TFT- и LCD-дисплеев. Затем появилась модификация NeoMatrix, позволяющая полноценно работать с матрицами NeoPixel. Она имеет огромное количество простых в использовании функций по выводу текста или растровой спрайтовой графики. Если вы в точности повторили мой проект, то можете воспользоваться этим кодом. Самая важная часть:

#define XSIZE 15 #define YSIZE 14 #define PIN 6 Adafruit_NeoMatrix matrix =Adafruit_NeoMatrix(XSIZE, YSIZE, PIN, NEO_MATRIX_BOTTOM + NEO_MATRIX_LEFT + NEO_MATRIX_ROWS + NEO_MATRIX_ZIGZAG, NEO_GRB+NEO_KHZ800); 

С первыми строками все понятно. В последних трех описывается схема матрицы: в данном случае первый пиксель находится слева внизу (bottomleft), пиксели расположены рядами (rows), соединенными зигзагообразно (zigzag). Если вы сделали иначе, то обратитесь к документации библиотеки. Я задал в коде несколько спрайтов — смайлы. Вы можете создать собственные с помощью Java-приложения Img2Code, лежащего в папке библиотеки GFX.ff730ba2ed0e4aa096a22e0ee748bbbb.png В будущем мы рассмотрим использование библиотеки для вывода полезной информации вроде котировок акций или ленты Twitter, а пока предлагаю вам самостоятельно поиграть с кодом и загрузить собственные изображения. На этом все. Вы создали большой дисплей из светодиодных лент. Теперь нужно придумать, как его использовать. Из оставшихся светодиодов можете создать лампу в виде облачка.Используемые источники:

  • https://usamodelkina.ru/12212-svetodiodnaja-matrica-svoimi-rukami.html
  • https://alexgyver.ru/matrix_guide/
  • https://habr.com/post/395519/

Рейтинг автора
5
Подборку подготовил
Максим Уваров
Наш эксперт
Написано статей
171
Ссылка на основную публикацию
Похожие публикации