Технології

LED-матриця на магнітах: ентузіаст зробив плитки, які з’єднуються одним дотиком

15 чер•ProstoMob

Автор каналу Bitluni вирішив здивувати цікавим проектом магнітних LED-матриць. Замість поверхнево-монтованих світлодіодів, які гинуть від стрибків живлення і потребують болючого ремонту цілими панелями, — адресовані 8-міліметрові LED зі вбудованим контролером. Результат: яскраво, модульно, відносно просто зібрати. І так, воно сліпить.

Звідки взялась ця ідея і що пішло не так ранішеТретя версія LED-стіни bitluni виглядала непогано, але мала фатальний недолік: поверхнево-монтовані світлодіоди, припаяні до величезних заземлювальних полігонів, не переносили стрибки струму при увімкненні блоків живлення на повну потужність. Кілька LED здихали — і цілу панель доводилось відправляти на пенсію. Замінити один світлодіод на такій платі — той ще квест.

Більш ранні версії стіни були надійнішими саме тому, що використовували ланцюгові WS2811 — масивні, з вбудованим контролером, досить грубі, щоб пережити звичайні випробування. Нова ідея: а що, якщо взяти 8-міліметрові адресовані LED зі вбудованим драйвером і побудувати щільну матрицю з них? Пінгпонг-кулі для розсіювання вже не потрібні — самі LED досить великі.

Дизайн плати: від першої спроби до п’ятої версіїПерший варіант — матриця 5×5 зі змієподібним розведенням і роз’ємом на тильній стороні для складання у більшу стіну. Ні резисторів, ні розв’язувальних конденсаторів — тільки LED і з’єднання. Для полегшення ремонту bitluni придумав безпаяні отвори зі зміщенням: ніжки LED злегка розходяться всередині і тримаються тертям. Ідея гарна — практика виявилась інакшою.

Перша партія плат прийшла з завузькими майданчиками. Переробив на овальні, замовив версію два. Спробував зібрати без паяння — ніжки почали коротити між собою, і кілька LED відразу загинули. Довелось паяти і обрізати ніжки по-нормальному.

Потім з’явилась думка: а що, якщо додати магнітні роз’єми для з’єднання матриць між собою і мікроконтролер для автономної роботи? Для цього довелось повернути LED на платі під кутом, щоб їх посадкові місця не конфліктували з посадковими місцями магнітних роз’ємів. Заодно звільнилось місце для мікроконтролера і додаткових роз’ємів. Але щоб роз’єм стояв по центру — потрібен був додатковий ряд і стовпець. Матриця стала 6×6.

Потім версія три прийшла з переплутаною полярністю живлення на протилежних магнітних роз’ємах.

Версія чотири десь загубилась в пам’яті автора — він сам не може згадати, що в ній змінювалось. Версія п’ять стала робочою.

Мікроконтролер і прошивкаЗа основу взяли ATtiny 1604 — просто тому що кілька штук лежали в лабораторії. Для прошивки через UPDI до нього підключали перехідник через Nano. Додатково зробили програматорний сокет, щоб тестувати чіп окремо до встановлення на плату.

Бібліотека tinyNeoPixel добре дружить з megaTinyCore і впоралась з адресованими LED без проблем — саме це підтвердило, що концепція робоча і можна замовляти фінальні плати. Один нюанс: megaTinyCore підтримує цей програматор тільки у першій версії бібліотеки, тому при виборі версії треба бути уважним.

Збірка: 64 LED і 256 паяних з’єднаньДля 6×6 матриці — 36 LED, для 8×8 — вже 64. Тобто 256 ніжок, які треба припаяти вручну. Bitluni чесно називає це «жахливим» процесом. Щоб тримати LED на правильній відстані під час паяння, використовував 3D-друкований кондуктор: вставив усі LED, затис рамкою, потім паяв по одній ніжці на кожному, обрізав зайве і допаяв решту.

Магнітні роз’єми на краях плати запаюються з боку LED — незручно,

але необхідно: матриці мають з’єднуватись заподлицо, без виступаючих елементів з тильної сторони.

Під час першого тесту збірної стіни одна з матриць поводилась дивно. Bitluni вже приготувався до найгіршого — але виявилось, що просто один холодний контакт. Перепаяв — запрацювало. Іноді найпростіше пояснення і є правильним.

Яскравість і зовнішнє керуванняНа повній яскравості матриця сліпить буквально — автор демонструє це окремо кнопкою, і різниця між «нормальним» режимом і повною яскравістю разюча. LED 8-бітні, без ШІМ-мультиплексування, тому можуть видавати весь свій потенціал без обмежень.

Ще один приємний момент у схемі: між ATtiny і лінією даних стоїть резистор 470 Ом. Завдяки цьому зовнішній драйвер WS2812 може перехопити керування, просто підключившись до відповідного піна — він перебиває сигнал від вбудованого мікроконтролера. Не потрібно нічого перемикати або перепрошивати.

Корпуси і підсумокКорпуси для матриць bitluni змоделював у Blender — Fusion 360 якраз вирішив показати ліміти безкоштовного плану в невдалий момент. Надрукував варіанти під 6×6 і 8×8, зібрав все разом. Для живлення — невелика магнітна батарейна плата, яка кріпиться до тієї ж магнітної шини.

Всі файли дизайну, посилання на компоненти та інструменти є в описі відео. Код для цікавих режимів відображення bitluni обіцяє написати, якщо відео набере достатньо відгуків.

Запис LED-матриця на магнітах: ентузіаст зробив плитки, які з’єднуються одним дотиком спершу з'явиться на ProstoMob.

Кут, Сигнал

Читайте ще