Светодиодный куб 6х6х6 своими руками

Как сделать простой светодиодный куб?

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

Многие просили меня сделать простой светодиодный куб. Можно сделать куб на Arduino, размером 3 х 3 х 3, 4 х 4 х 4, 5 х 5 х 5 и т. д., микроконтроллер может давать сложные световые эффекты, но мы сегодня будем делать куб на двух простых интегральных микросхемах, не нуждающихся в программировании.

Если Вы будете использовать RGB-светодиоды, то эффекты будут ещё более впечатляющими.

LED cube c использованием интегральных схем

Эта конструкция проста и использует только две интегральные схемы. Электронная схема представляет собой светодиодный куб 3 x 3 x 3, используя 27 светодиодов любого цвета, который Вы захотите. Если Вы будете использовать RGB-светодиоды, то соединив последовательно они могут светить с разной яркостью. В этом случае лучше соединять последовательно 3 светодиода одного цвета, но на каждый выв. 4020 разные. Основная интегральная схема 4020 двоичный счетчик CMOS 14 этапов, но только 9 выходов использованы: 3 × 9= 27. Каждый выход управляет 3 светодиодами последовательно, нет необходимости использовать токоограничивающий резистор, так как 4020 оставляет только максимальный ток 15 мА. На NE555 собран генератор. Если вместо постоянного резистора 33 кОм поставить переменный, то можно регулировать частоту переключения светодиодов.

Источник

Мини-куб из 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. Справляется он со своей задачей отлично. Как только я с ним освоился, на заполнение одной панели ушел всего где-то час.


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


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


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


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


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


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

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

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


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

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

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

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


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


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

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

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

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

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

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

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

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


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


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


Боке!

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


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

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


Вуаля!


Еще боке!

Источник

LED-куб + змейка

Предисловие

В данной статье мы (т.к. статью писали и делали проект 2 человека) расскажем вам, как мы вдохнули жизнь в старую, позабытую всеми игру.

Подготовка

Создание собственного LED куба

Обсудив некоторые моменты, было решено делать куб размером 8х8х8. Нам удалось купить оптом 1000 светодиодов по хорошей цене, как раз то что нужно, правда это были не совсем подходящие светодиоды. Визуально лучше бы смотрелись светодиоды синего цвета с матовой линзой, свечение получается не такое яркое и более равномерное. Есть еще одна проблема прозрачных светодиодов, нижний слой подсвечивает верхние. Однако, несмотря на все это, светодиоды должны быть достаточно яркими, чтобы изображение получилась четкой. Для больше прозрачности куба лучше взять маленькие светодиоды, например, 3 мм. Еще один пункт при выборе светодиодов — длинна ног. Каркас куба будем делать из ног светодиодов, поэтому они не должны быть меньше, чем размер клетки.

Еще один важный пункт при построении куба – это его размер. Мы делаем каркас с помощью ног светодиода, хотя есть способы, где используются металлические стержни или проволока. Длинна катодов наших светодиодов оказалась примерно 25 мм, поэтому размер клетки мы выбрали 20 мм, а остальное использовать для пайки, решили, что так куб будет прочнее. Это как раз небольшое отличие от конструкции автора статьи, приведенной выше.

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

Спаяв несколько слоев понял, что данной конструкции не хватает ножек, коими послужили длинные болты.

Прежде чем начать паять куб советую все подготовить. Из личного опыта могу сказать, что гораздо удобнее это делать вдвоем, т.к. рук реально не хватает, один человек прикладывает катоды, а второй подает припой и паяет. Делать это нужно быстро, светодиоды маленькие и боятся перегрева. Также в разных мануалах говорят проверить каждый светодиод перед пайкой. Я не вижу в этом смысла, потратите много времени на по сути бессмысленную операцию. Мы покупали новые светодиоды и все они оказались рабочими. А вот когда вы спаяли слой, там уже стоит хорошо все проверить потому, что выпаивать светодиод из центра неприятное занятие, проверено на личном опыте.

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

Затем загибаем катоды так, чтобы они накладывались друг на друга. Когда все будет подготовлено можно начинать паять, но стоит помнить о возможном перегреве, и, если пайка не удалась, не стоит торопиться перепаивать, лучше дайте светодиоду остыть.

Спаяв все светодиоды, мы получим 8 полосок по 8 светодиодов. Чтобы это все превратить в один слой, мы использовали обычную алюминиевую проволоку, которую предварительно выпрямили. Решили использовать всего 2 таких «стержня», чтобы не усложнять конструкцию, к слову она и так получилась достаточно прочной.

Спаяв последний слой не нужно его доставать потому, что потом придется вставлять его обратно. Теперь имея все 8 слоев нам нужно их как-то объединить в один куб. Чтобы куб был более-менее ровным на пришлось отогнуть аноды как показано на рисунке, теперь он огибает светодиод, и может быть аккуратно припаян.

Паяем куб с верхнего слоя и до самого нижнего, при этом постоянно проверяя работоспособность светодиодов, лучше не ленитесь, т. к. потом будет сложнее исправить ошибку. Выставлять высоту между слоями лучше с помощью каких-то шаблонов, автор приведенной выше статьи использовал обычные кроны. У нас ничего подходящего не оказалось, но нас было двое, поэтому решили все выставлять вручную. Получилось достаточно ровно, но не идеально.

Сделав все эти действия, вы получите собранный вами LED куб и несколько обожженных пальцев, но это уже зависит от вашей аккуратности.

Разработка схемы

Для воплощения нашей задумки нам нужен был какой-то микроконтроллер. Мы решили остановиться на микроконтроллере Arduino Leonardo. Мы не хотели заморачиваться насчет программаторов и нужного ПО, так же нам не нужен мощный процессор для наших задач. Имея готовое устройство, мы поняли, что можно было использовать и Nano, но это не столь критично. Для управления кубом мы решили использовать телефон, подключенный к Arduino по Bluetooth, в нашем случае используется HC-05, но вы можете использовать любой другой.

А вот что действительно важно так это количество выводов микроконтроллера, т. к. мы получили 64 анодных и 8 катодных вывода, но о их подключении позже. Мы решили расширить порты IO с помощью сдвиговых регистров, в нашем случае это регистры фирмы TI 74HC595 в DIP корпусе, чтобы припаять сокеты к плате, а уже в них вставлять сами микросхемы. Подробнее об этих регистрах вы можете почитать в datasheet, скажу лишь что нами использовалось все кроме сигнала сброса регистра, мы подали на него единицу, т. к. он инверсный, и вход output enable мы завели на землю, он тоже инверсный и мы хотели всегда получать данные с регистров. Также можно было использовать и последовательные регистры, но тогда пришлось бы поставить дешифратор для выбора в какой именно регистр записывать информацию.

Для того, чтобы замыкать цепь на землю, выбирая уровень, который хотим зажечь, нам нужны транзисторные ключи, ну или просто транзисторы. Мы использовали обычные маломощные биполярные транзисторы N-P-N типа, соединенные по 2 параллельно. Не уверен, что в этом есть смысл, но так вроде как ток протекает лучше. База через подтягивающий резистор номиналом 100 Ом заведена на микроконтроллер, который и будет открывать наши транзисторы. На коллектор заведены слои куба, а эмиттеры соединены с землей.

Сборка куба воедино

Для питания куба не смогли найти ничего лучше, чем блок питания от планшета, параметры которого 5 В и 2 А. Может этого и мало, но куб светится достаточно ярко. Чтобы не сжечь светодиоды все анодные выводы соединены с регистрами через токоограничивающий резистор. По моим расчетам они должны были быть примерно по 40 Ом, но у меня таких не оказалось, поэтому использовал по 100 ОМ.

Разместили мы все это на 2 небольших печатных платах. Специально травить ничего не стали ввиду отсутствия практики, просто соединили все обычными проводниками. Регистры с анодами куба соединили с помощью шлейфов, которые мы достали из старого компьютера. Так проще ориентироваться в проводах.

Собрать прототип решили на том макете, который использовали для пайки.

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

Да будет свет!

Куб есть, осталось заставить его светиться. Далее будут описаны различные моды (режимы) работы куба, для переключения которых использовался bluetooth + Android. Приложение для телефона писалось с использованием Cordova. Код приложения здесь описываться не будет, но ссылка на репозиторий представлена в заключении.

Алгоритм работы с кубом

Ввиду того, что мы не имеем доступ сразу ко всем светодиодам, мы не можем их зажечь все сразу. Вместо этого, нам надо зажигать их послойно.

Алгоритм таков:
  1. Текущий слой равен 0.
  2. Заносим в регистры маску для текущего слоя
  3. Закрываем транзистор для предыдущего слоя. Если текущий слой нулевой — то предыдущий для него — 7й слой
  4. Защелкиваем значения в регистры. Значение появляются на выходах регистров
  5. Открываем транзистор для текущего слоя. Ура, один слой светится!
  6. Текущий слой ++. goto: 2

Итого, данный алгоритм повторяется довольно быстро, что и даёт нам иллюзию того, что все светодиоды светятся одновременно (но мы то знаем что это не так). Маски хранятся в массиве 64х8 байт.

Написание модов

Данные моды появлялись не в том порядке, в каком они будут представлены здесь, так что прошу не наказывать за их нумерацию в коде. Начнём с самого простого: зажечь все светодиоды.

“Залипательный” мод

Идея: горят всего два слоя нулевой и седьмой, причём они являются инверсными по отношению друг к другу (светодиод в позиции Х горит только на одном из слоёв). Рандомно выбирается позиция (почему-то все пытаются найти алгоритм выбора позиции), и светодиод в данной позиции “переползает” на верхний слой, если он светился на нижнем слое, и соответственно на нижний, если светился на верхнем.

“Ещё один залипательный мод”

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

Куб внутри куба

Идея: зажигать внутри куба светодиоды ввиде граней куба размерами от 1 до 8 светодиодов и обратно.

И наконец змейка

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

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

1. 6 кнопок. При таком варианте кнопке соответствует свое направление движения: для кнопок вверх и вниз всё очевидно, а остальные кнопки можно “привязать” к сторонам света, при нажатии кнопки “влево” вектор движения всегда меняется “на запад” и т.д. При таком варианте возникают ситуации, когда змейка движется “на восток” и и мы нажимает “на запад”. Т.к. змейка не может развернуться на 180 градусов, приходится такие случаи обрабатывать отдельно.

2. 4 кнопки (Up Down Left Right). Действия данных кнопок аналогичны действиям в двумерной реализации, за исключением того, что все изменения берутся относительно текущего направления вектора движения. Поясню на примере: при движении в горизонтальной плоскости, нажимая кнопку “Up”, мы переходим в вертикальную плоскость. При движении в вертикальной плоскости нажимая “Up”, мы переходим к движению в горизонтальной плоскости против направления оси Х, для “Down” — по направлению оси Х и т.д.

Безусловно, оба варианта имеют право на существование (было бы интересно узнать другие варианты управления). Для нашего проекта мы выбрали второй.

Результат работы программы:

Ссылки на исходный код прошивки куба и приложение для телефона:

Источник

Оцените статью
Юридический портал
Adblock
detector