Pull to refresh
2752.78
RUVDS.com
VDS/VPS-хостинг. Скидка 15% по коду HABR15

Мини-куб из 3456 светодиодов

Reading time4 min
Views28K
Original author: Willem Pennings


Не знаю почему, но мне очень нравятся светодиоды, и видеть их можно почти во всех моих проектах. Буквально недавно меня вдохновил Грег Дэвилл своим проектом миниатюрного LED-куба с 3456 светодиодами. Немного поразмышляв на эту тему, я решил собрать такой же чудесный куб сам, о чем и поделюсь с вами в данной статье.

Аппаратная часть: печатные платы


Я изначально предполагал, что сборка LED-панелей будет самой сложной частью проекта, и не ошибся. У меня уже есть опыт успешной пайки оплавлением, но в той ситуации мне не требовалось втискивать 576 RGB-светодиодов в крохотную квадратную поверхность.

Замечательные люди с PCBWay.com по-дружески предоставили для моего проекта панели печатных плат. Толщина этих плат составляет 1.6мм, они обработаны паяльной маской, имеют покрытие ENIG и оформлены белой шелкографией. Такое сочетание цветов мне нравится.


LED-панель, верхняя часть


LED-панель, нижняя часть

Тем, кого интересуют подробности дизайна электроники, я посоветую прочесть статью Грега. Если кратко, то управление панелями реализовано с помощью мультиплексирования. Ряды матрицы управляются сдвиговыми регистрами SN74HC595, которые, в свою очередь, управляются 24 МОП-транзисторами. Рядами светодиодов управляют шесть LED-драйверов постоянного тока TLC59025.

Я начал со сборки нижней части панелей. Это довольно просто, поскольку все компоненты достаточно велики. Некоторые панели после извлечения из духовки потребовали доработки, в основном из-за возникших «мостиков» припоя между выводами на корпусах TLC59025 QSOP-24.


Нижняя часть в сборе, до оплавления


Оплавление нижней стороны. Красный стержень – это термощуп

На очереди сборка верхней части. Это, как можно догадаться, оказалось сложнее всего. Я знал, что установить вручную 576 светодиодов размером 2х2мм без спец инструмента будет излишне трудоемкой задачей, поэтому купил вакуумный пинцет Quick 381A. Справляется он со своей задачей отлично. Как только я с ним освоился, на заполнение одной панели ушел всего где-то час.


Стальной трафарет верхней стороны


Раздражало, когда я случайно задевал катушку


Верхняя сторона в сборе, до оплавления. Нестыковки в процессе пайки выправятся


Каждая площадка покрыта крохотным сгустком паяльной пасты


Защита пластиковых коннекторов фольгой


Пайка верхней стороны. Наблюдать выравнивание в процессе светодиодов — чистое удовольствие

В ходе сборки семи таких панелей я допустил ряд очень поучительных ошибок, исходя из которых могу дать такие рекомендации:

  1. Внимательно следите за температурой пайки, потому что при перегреве светодиоды утратят работоспособность. В моем случае это произошло при пайке первой панели, где в итоге отказалась работать большая группа красных светодиодов в самой середине платы. Сперва причину я понять не мог, но чуть позже до меня дошло, что они находились непосредственно над теном духовки.
  2. Оказалось, что выравнивать трафарет на плате нужно очень точно и потеков необходимо избегать любой ценой. Я оплавил плату с небольшим потеком в углу и в итоге получил кучу спаянных контактов. В общей сложности из-за этого мне пришлось заново переделать около десятка светодиодов на одной плате.
  3. Прочно фиксируйте термощуп, чтобы он случайно не выбил с платы светодиоды, когда вы будете открывать дверцу по завершению оплавления.


Шесть светодиодных панелей собраны и протестированы

Аппаратная часть: корпус


Я спроектировал корпус для куба сам, решив сделать его максимально простым. Размер получился 67мм3. Это единая деталь, которую можно напечатать на 3D-принтере. Платы же фиксируются в него за счет вытянутых краев.

Для печати я решил использовать процесс мультиструйной плавки (MJF) Shapeways. Получилось симпатично, хотя точность размеров оказалась ниже ожидаемой. Поначалу панели вставали в каркас чересчур свободно, что я легко исправил небольшим количеством суперклея, который нанес на его ребра и оставил высыхать на ночь.


3D-печатный каркас (1)


3D-печатный каркас (2)

Программирование


Мне не удалось найти программы или библиотеки, непосредственно совместимые с компонентами панелей, поэтому пришлось написать собственное решение.
Использовать контроллер и схемотехнику/прошивку, как у Грега, сейчас не получится, поскольку продолжающийся дефицит микросхем не позволяет достать все необходимые компоненты.

Под рукой же у меня оказалось всего несколько микроконтроллеров, и выбор пал на Arduino Uno. Большую часть кода мультиплексирования я запрограммировал с помощью низкоуровневых инструкций, что существенно ускорило программу в сравнении с вариантом, опирающимся на функции вроде digitalWrite.

Принципиально моя программа проста: настроить таймер для вызова прерываний каждые 1/2400 секунды. При этом каждый раз нужно считывать и смещать объем данных, «защелкивать» регистры и ожидать прерывания, чтобы повторить все это сначала.

Отлаживать такой код – боль, но в итоге он отлично работает и радует своей скоростью. Uno не способен генерировать много изощренных паттернов анимации, но мне удалось получить красивый эффект случайного мерцания — и это с помощью простейшего 3-битного цвета. Скажу честно, такой результат меня даже немного удивил.

Тестирование, сборка, результаты


Каждый шаг оказался довольно зауряден. Панели соединены последовательно шлейфами и подключены к Uno. Все работает!


Соединение шести панелей шлейфом


Проверочная установка панели


Боке!

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


Добро пожаловать в шлейфовые джунгли



Готово! Результат мне пришелся по душе. Я был настолько им восхищен, что не захотел откладывать публикацию статьи до момента установки батарей и контроллера. Опять же, огромная благодарность Грегу Дэвиллу и PCBWay – благодаря вам этот проект увидел жизнь. Он также научил меня многому в плане программного управления массивами светодиодов. Кроме того, я существенно отточил свои навыки по сборке и переделке печатных плат.




Вуаля!


Еще боке!







Tags:
Hubs:
Total votes 94: ↑91 and ↓3+88
Comments80

Articles

Information

Website
ruvds.com
Registered
Founded
Employees
11–30 employees
Location
Россия
Representative
ruvds