xncD145Arduino / Светодиоды / Домашние самоделкиОсобенностью такого пола являются WS2801 RGB светодиоды 36 мм, выбор пал на такие светодиоды, потому что они имеют достаточно низкий профиль (глубина 5 мм). Этот размер идеально подходит для посадки вдоль плиток пола.Материалы:— Arduino Uno- Arduino Proto Board- Кабель USB 2.0- Макетная плата- Шнур и вилка электропитания- Светодиоды WS2801 LED 36 мм- Сетевой выключатель 12V 5A- Поликарбонатные прозрачные листы Lexan MARGARD 5 мм- Деревянные рейки 9 х 21 мм- Самоклеящийся винил прозрачный- ПК/ноутбук для программы Jinx!- Провода для светодиодовАвтор указывает на то что материалы по желанию можно заменить. Листы Lexan MARGARD, по его мнению, подошли идеально из-за их прочности и стойкости. Матированный материал отлично рассеивает блеск близко расположенных к нему светодиодов.Шаг первый. Электрическая схема.В проекте используется небольшая макетная плата для разделения Arduino, земляных проводников и светодиодов. Это решение позволило использовать всего 4 проводника для светодиодов. От источника питания напрямую идёт плюсовой проводник на светодиоды. Для подключения вилки к сетевому выключателю питания автор пригласил электрика. Также можно использовать блок питания от компьютера на 12В.Шаг второй. Программирование.Для световых эффектов Arduino решено программировать скетчем Glediator, который будет прикреплён под статьёй. Arduino подключили к ноутбуку напрямую через USB и загрузили скетч в микроконтроллер. В коде изменено только количество пикселей в этой строке:«#define Num_Pixels 120», номера выводов:int SDI = 2;int CKI = 3;Шаг третий. Jinx!Для этого проекта удобнее всего использовать программу Jinx! со скетчем Glediator. Автор не использовал Bluetooth для подключения Arduino и запустил его напрямую подключив к ноутбуку. На скриншотах ниже показаны использованные настройки для 120 светодиодов. Следует обратить внимание на то что количество каналов, которые используются для пикселей/светодиодов требуется умножить на 3. На вкладке Fast Patch выбрана опция Snakelines, она подходит к данному типу светодиодов. Также порядок каналов указан как GBR, поскольку эти светодиоды имеют именно такую последовательность. Для выбора нужного эффекта выбирается меню Setup, и там Start Output и сразу проверяется как горят светодиоды. Программа Jinx! имеет возможность программировать сразу несколько зон, эта функция используется автором для разного свечение пола. Скачать программу можно тут: Jinx!Шаг четвёртый. Каркас пола.Каркас пола построен в виде пикселей, так как это позволит равномерно распределить вес когда кто-то стоит на полу, и поможет более качественно и резко отображать свет от светодиодов в каждом пикселе. Размер пола вышел 1640х930 мм, в него поместилось ровно 120 пикселей, организованы они в виде матрицы 8 на 15. У деревянных планок ширина 21 мм, это позволило сделать каждый квадрат от 90 до 100 мм вокруг каждого пикселя.Под каждым элементом пикселя сделаны маленькие прорези для размещения проводов. Все деревянные планки и пиксели склеены пистолетом.Шаг пятый. Поверхность пола.После долгих раздумий автор остановился на листах Lexan Margard, которые имеют защите от протирания и не бьются. Благодаря конструкции с ячейками 10х10 пол может выдерживать вес от стульев и высоких каблуков. Листы выбраны толщиной в 5 мм для установки вровень с напольной плиткой. ЛистыШаг шестой. Винил.В этом шаге прозрачный материал поверхности пола покрывают самоклеящимся рассеивающим винилом. Такой материал позволяет ярко светиться светодиодам, и одновременно не бить в глаза. Также можно использовать матовый винил.Шаг седьмой. Закрепление.Листы Lexan с винилом под ними ложат на каркас и приклеивают силиконом по краям.Использую ПО Jinx! и меняя различные свечения можно много экспериментировать. Автор сделал различную последовательность включения свечения. Программа может изменить ярлык рабочего стола для запуска эффектов, этот ярлык можно добавить в автозагрузку Windows. Это позволит светодиодам загораться в нужной последовательности при включении компьютера.Видео с работой диско-пола: Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.
Проект “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); // получить номер пикселя в ленте по координатам (коорд. Х, коорд. У, цвет)
Начало координат матрицы – левый нижний угол, имеет нулевые координаты!
Пользуясь этими функциями можно создавать различные эффекты разной степени сложности, а также классические игры!
ПОДГОТОВКА И ВЫВОД ИЗОБРАЖЕНИЙ
Информация появится после выхода видео
КРУТЫЕ ПИКСЕЛЬНЫЕ ЭФФЕКТЫ
Информация появится после выхода видео
КЛАССИЧЕСКИЕ ИГРЫ
Информация появится после выхода видео
Главная » Разделы » Лента » Картинки
|
<form> </form> |
Активные темы
-
Немного картинок для настроения 16.03.20(57)
Картинки05:44
-
Названа дата первого в истории России запуска аппарата на Луну(16)
Инкубатор05:44
-
Соль(24)
Инкубатор05:44
-
Опасный пацанчик из Калининграда(101)
Видео05:44
-
Мифы и правда о «кровостоке»(150)
Картинки05:44
-
В Москве сбежала пациентка с коронавирусом(257)
События05:43
-
В Мосгордуме заговорили о перевороте и революции в России(102)
Инкубатор05:43
-
Как защитить детей. Где маски?(87)
Беседы05:43
-
Почему моряки не ловили рыбу?(117)
Картинки05:43
-
Гимн сварщика или смерть эпилептика(70)
Видео05:43
-
Ситуация с коронавирусом может спровоцировать туристический бум …(110)
Инкубатор05:42
-
Закон сохранения.Немного добра.(4)
Инкубатор05:42
-
Мать «единоросса» Метельского обанкротилась после неиз…(42)
Инкубатор05:42
-
Шедеврально(6)
Инкубатор05:42
-
Реальные зарплаты в Новосибирске(11)
Инкубатор05:42
Обзор активных тем »
Yaplakal
Наверх</td>Используемые источники:
- https://usamodelkina.ru/6970-svetodiodnyy-disko-pol-na-arduino.html
- https://alexgyver.ru/matrix_guide/
- https://www.yaplakal.com/forum2/topic1727648.html
</table></table>