Мини-куб из 3456 светодиодов
Не знаю почему, но мне очень нравятся светодиоды, и видеть их можно почти во всех моих проектах. Буквально недавно меня вдохновил Грег Дэвилл своим проектом миниатюрного LED-куба с 3456 светодиодами. Немного поразмышляв на эту тему, я решил собрать такой же чудесный куб сам, о чем и поделюсь с вами в данной статье.
Аппаратная часть: печатные платы
Я изначально предполагал, что сборка LED-панелей будет самой сложной частью проекта, и не ошибся. У меня уже есть опыт успешной пайки оплавлением, но в той ситуации мне не требовалось втискивать 576 RGB-светодиодов в крохотную квадратную поверхность.
Замечательные люди с PCBWay.com по-дружески предоставили для моего проекта панели печатных плат. Толщина этих плат составляет 1.6мм, они обработаны паяльной маской, имеют покрытие ENIG и оформлены белой шелкографией. Такое сочетание цветов мне нравится.
LED-панель, верхняя часть
LED-панель, нижняя часть
Тем, кого интересуют подробности дизайна электроники, я посоветую прочесть статью Грега. Если кратко, то управление панелями реализовано с помощью мультиплексирования. Ряды матрицы управляются сдвиговыми регистрами SN74HC595, которые, в свою очередь, управляются 24 МОП-транзисторами. Рядами светодиодов управляют шесть LED-драйверов постоянного тока TLC59025.
Я начал со сборки нижней части панелей. Это довольно просто, поскольку все компоненты достаточно велики. Некоторые панели после извлечения из духовки потребовали доработки, в основном из-за возникших «мостиков» припоя между выводами на корпусах TLC59025 QSOP-24.
Нижняя часть в сборе, до оплавления
Оплавление нижней стороны. Красный стержень – это термощуп
На очереди сборка верхней части. Это, как можно догадаться, оказалось сложнее всего. Я знал, что установить вручную 576 светодиодов размером 2х2мм без спец инструмента будет излишне трудоемкой задачей, поэтому купил вакуумный пинцет Quick 381A. Справляется он со своей задачей отлично. Как только я с ним освоился, на заполнение одной панели ушел всего где-то час.
Стальной трафарет верхней стороны
Раздражало, когда я случайно задевал катушку
Верхняя сторона в сборе, до оплавления. Нестыковки в процессе пайки выправятся
Каждая площадка покрыта крохотным сгустком паяльной пасты
Защита пластиковых коннекторов фольгой
Пайка верхней стороны. Наблюдать выравнивание в процессе светодиодов — чистое удовольствие
В ходе сборки семи таких панелей я допустил ряд очень поучительных ошибок, исходя из которых могу дать такие рекомендации:
- Внимательно следите за температурой пайки, потому что при перегреве светодиоды утратят работоспособность. В моем случае это произошло при пайке первой панели, где в итоге отказалась работать большая группа красных светодиодов в самой середине платы. Сперва причину я понять не мог, но чуть позже до меня дошло, что они находились непосредственно над теном духовки.
- Оказалось, что выравнивать трафарет на плате нужно очень точно и потеков необходимо избегать любой ценой. Я оплавил плату с небольшим потеком в углу и в итоге получил кучу спаянных контактов. В общей сложности из-за этого мне пришлось заново переделать около десятка светодиодов на одной плате.
- Прочно фиксируйте термощуп, чтобы он случайно не выбил с платы светодиоды, когда вы будете открывать дверцу по завершению оплавления.
Шесть светодиодных панелей собраны и протестированы
Аппаратная часть: корпус
Я спроектировал корпус для куба сам, решив сделать его максимально простым. Размер получился 67мм 3 . Это единая деталь, которую можно напечатать на 3D-принтере. Платы же фиксируются в него за счет вытянутых краев.
Для печати я решил использовать процесс мультиструйной плавки (MJF) Shapeways. Получилось симпатично, хотя точность размеров оказалась ниже ожидаемой. Поначалу панели вставали в каркас чересчур свободно, что я легко исправил небольшим количеством суперклея, который нанес на его ребра и оставил высыхать на ночь.
3D-печатный каркас (1)
3D-печатный каркас (2)
Программирование
Мне не удалось найти программы или библиотеки, непосредственно совместимые с компонентами панелей, поэтому пришлось написать собственное решение.
Использовать контроллер и схемотехнику/прошивку, как у Грега, сейчас не получится, поскольку продолжающийся дефицит микросхем не позволяет достать все необходимые компоненты.
Под рукой же у меня оказалось всего несколько микроконтроллеров, и выбор пал на Arduino Uno. Большую часть кода мультиплексирования я запрограммировал с помощью низкоуровневых инструкций, что существенно ускорило программу в сравнении с вариантом, опирающимся на функции вроде digitalWrite .
Принципиально моя программа проста: настроить таймер для вызова прерываний каждые 1/2400 секунды. При этом каждый раз нужно считывать и смещать объем данных, «защелкивать» регистры и ожидать прерывания, чтобы повторить все это сначала.
Отлаживать такой код – боль, но в итоге он отлично работает и радует своей скоростью. Uno не способен генерировать много изощренных паттернов анимации, но мне удалось получить красивый эффект случайного мерцания — и это с помощью простейшего 3-битного цвета. Скажу честно, такой результат меня даже немного удивил.
Тестирование, сборка, результаты
Каждый шаг оказался довольно зауряден. Панели соединены последовательно шлейфами и подключены к Uno. Все работает!
Соединение шести панелей шлейфом
Проверочная установка панели
Боке!
Заключительная сборка в некотором смысле представляет головоломку, потому что можно (лучше так и постараться) продумать грамотную ориентацию панелей в кубе, которая облегчит прокладку плоских кабелей. Я же не стал сильно заморачиваться, потому что впереди еще установка батарей и контроллера.
Добро пожаловать в шлейфовые джунгли
Готово! Результат мне пришелся по душе. Я был настолько им восхищен, что не захотел откладывать публикацию статьи до момента установки батарей и контроллера. Опять же, огромная благодарность Грегу Дэвиллу и PCBWay – благодаря вам этот проект увидел жизнь. Он также научил меня многому в плане программного управления массивами светодиодов. Кроме того, я существенно отточил свои навыки по сборке и переделке печатных плат.
Вуаля!
Еще боке!
Создаем большой LED куб
Светодиодные кубы никогда не потеряют свою популярность и привлекательность. На просторах интернета есть огромное множество проектов кубов 5х5 и меньше. Мы же сегодня построим куб 8х8х8 диодов.
Постройка куба довольно сложна для новичков и энтузиастов. Поэтому мы постарались максимально упростить этот процесс и создать инструкцию, которая будет предельно подробной и полной, так как любая незначительная ошибка может быть критичной, а устранить ее будет достаточно сложно.
Для работы над проектом достаточно обладать основными навыками пайки, иметь базовые знания электроники и быть знакомым с работой плат Arduino.
Расположение светодиодов
Сразу хочется отметить, что не следует выбирать большие светодиоды, так как они будут загораживать друг друга и дальние ряды будут плохо видны. Также не стоит использовать очень яркие диоды. Дабы свет каждого диода был точечным.
Для проекта мы будем использовать не очень яркие 3мм диффузные светодиоды с длинными ножками.
Для лучшего обзора каждого светодиода, мы будем использовать очень тонкие соединительные провода.
Между собой светодиоды будут соединяться при помощи своих ножек. Катоды с катодами, аноды с анодами. Для нашего куба нам понадобится 8 таких матриц.
Электронная схема
Создание восьми слоев из 64 диодов в каждом занимает достаточно много времени, но выполнить его достаточно просто.
Самый сложный момент – это построение схемы для управления светодиодным кубом и поиск неисправностей в цепи, если конечно таковые будут.
Для управления нашим кубом будет использоваться микросхема MAX7219. Изначально она предназначена для управления 7-сегментными светодиодными дисплеями. Используя данную микросхему, мы сведем количество элементов управления каждым слоем к минимуму.
Для управления каждым слоем из 64 диодов понадобится:
- Микросхема MAX7219;
- 10uF 16V электролитический конденсатор;
- 0.1uF керамический конденсатор;
- 12 кОм резистор (1/4W);
- 24 pin DIP IC socket;
- Плата Arduino Nano или Uno.
Для создания куба нам понадобится 8 комплектов вышеуказанных компонентов. Также стоит обратить внимание, что может понадобится другой резистор для конкретных светодиодов, которые вы будете использовать. Его роль в данной схеме – ограничить максимальное напряжение, которое будет выдавать микросхема MAX7219.
Для облегчения сборки куб был разбит на две части. По 4 слоя на каждой из них.
Куб может управляться извне любым микроконтроллером через интерфейс SPI. Для этого проекта мы будем использовать популярную плату Arduino (Nano). Для управления нашим кубом используя только 3 сигнальных провода (SPI) и 2 провода питания (5 В постоянного тока). Вы можете использовать более распространенную плату Arduino Uno вместо Nano. Они очень похожи (за исключением размера), так что проблем с подключением возникнуть не должно.
Также стоит обратить внимание на то, что все компоненты следует паять к нижней части печатной платы.
Для соединения плат вместе используются перемычки. Для соединения двух плат нужно 5 перемычек. Для создания одного блока из 4 слоев светодиодов понадобится 15 перемычек.
Большинство кубов цельные, в отличии от нашего. И при выходе из строя какого-либо светодиода в середине куба, добраться до него достаточно сложно. В нашем случае это не составит никакого труда.
База для пайки светодиодов
Подойдет лист фанеры иди ДВП, в котором следует просверлить отверстия диаметром 3 мм на расстоянии 18 мм друг от друга.
Сборка
Часть 1
Основные шаги для создания одного слоя:
- Подготовить 8 светодиодов с обрезанными катодными ножками до 10 мм;
- Заполнить все отверстия базы светодиодами;
- Согнуть и спаять катодные ножки;
- Согнуть и спаять анодные ножки;
- Припаять провода к катодным ножкам и закрепить их.
Данную процедуру необходимо повторить 8 раз.
Сборку одного слоя куба можно посмотреть на видео:
Часть 2
- Подготовить 15 перемычек;
- Припаять перемычки на печатную плату;
- Припаять электронные компоненты к плате;
- Припаять 5-контактный угловой коннектор для первого слоя;
- Обрезать пятый анодный контакт;
- Вставить и припаять все анодные ножки к отверстиям G, F, E, D, C, B, A и DP;
- Вставить и припаять катодные провода в отверстия D0, D1, D2, D3, D4, D5, D6 и D7;
- Обрезать провода и ножки с обратной стороны платы.
Вторая часть сборки на видео:
Проверка куба
Лучше проверять куб до полной сборки, каждый слой по отдельности. Так будет проще исправить проблемы, если они конечно же будут.
Для тестирования по очереди подключаем каждый слой к плате Arduino Nano (заранее следует установить тестовую программу). Строки должны загораться поочередно сверху вниз.
Необходимо загрузить код на вашу плату, а затем подключить к готовому кубу.
На этом все. Остается только наслаждаться полученным устройством.