В народе говорят, что каждый радиолюбитель должен собрать своими руками хотя бы один радиоприёмник, а каждый настоящий DIY-щик — LED Cube. Действительно, какой же ты радиолюбитель, если не собрал ни одного радио? (смайл)

Со светодиодным кубом тема интересная, но имеет множество «нюансов», поэтому я всё время откладывал построение собственного куба. И, как выяснилось, не зря — если бы я только знал во что ввязываюсь, то скорее всего никогда бы не взялся за этот проект.

На деле всё вылилось в просто-таки экзистенциальный вызов и испытание, которое может пройти только человек с узкой задницей стальными нервами, кучей навыков и умений и непреклонной волей к победе — иначе вся эта конструкция уже на сотом светодиоде полетит через всю комнату в мусорное ведро (или просто тупо не включится после подачи питания).

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

Что такое LED Cube?


Я надеюсь, что вы знаете, что такое светодиодный куб — это трёхмерная матрица из светодиодов, установленных в пространстве в виде куба, как правило, 4х4х4, 8х8х8 или 16х16х16. Самым популярным является вариант 8х8х8, который содержит 512 светодиодов — это оптимальный компромисс между визуальными возможностями куба, его стоимостью и трудоёмкостью изготовления.

В общем, основное предназначение подобных девайсов — это декоративная подсветка и «модерновое» оформление рабочего места и интерьера (с чем LED Cube справляется на пять с плюсом).

Но лично мне LED Cube, помимо его основной функции, интересен тем, что это ни что иное как настоящий 3D дисплей и его можно использовать именно в этом качестве, то есть выводить на него нужную информацию.

Немного подробнее: дисплей имеет 512 светодиодов, каждый из которых может отображать состояние какой-либо части сложной системы, например, умного дома. Куб может одновременно (разными цветами) отображать состояние десятков датчиков, как климатических, так, например, и охранных или любую другую активность системы, например сетевую. То есть вся ваша сложная система с десятками датчиков и подсистем может одновременно отображаться на подобном кубе — вам достаточно просто взглянуть на него, чтобы стало понятно состояние сложной системы в целом и состояние всех её отдельных частей.

Итак, резюмируя возможное применение LED Cube:

  • Декоративный светильник
  • Элемент Hi-Tech оформления интерьера
  • 3D дисплей низкого разрешения
  • Индикатор состояния сложных IoT систем
  • (Совершенно замечательный) стенд для обучения программированию

Ну и кроме всего вышеперечисленного, это просто красиво (смайл).

Выбор платформы


Ок, мы решили взяться за этот проект и построить собственный LED Cube с API и беспроводным управлением, но что взять в качестве основы? Разрабатывать подобный проект с нуля можно, но есть ли смысл тратить время на изобретение очередного велосипеда?

Здравый смысл подсказывает, что лучше изучить чужой опыт и взять в качестве основы самый адекватный, уже реализованный открытый проект LED Cube. А вот с этим, как выяснилось, есть проблемы — проектов светодиодных кубов много, но все они какие-то «мутные» — то концепция неясна, то часть проекта не описана, то отсутствуют в открытом доступе какие-то необходимые части и т. д. и т. п.

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

В результате поисков самое вменяемое, что мне удалось найти — это проект LED Cube от AlexGyver — открытая схема, ссылки на комплектующие, Arduino Nano в качестве управляющего MCU (а это означает, что мы можем как угодно программировать его), примеры программирования, гербер-файлы, плюс подробная видео-инструкция по сборке. Чего ещё желать? — его то мы и возьмём в качестве основы для нашего проекта.

Архитектура системы


В исходном проекте от AlexGyver управлением кубом занимается Arduino Nano, причём этот контроллер «наглухо» впаивается в плату, что закрывает возможность аппаратной модернизации системы и лишает возможности оснащения куба беспроводным интерфейсом и собственным API, необходимым для интеграции его в IoT системы.

Поэтому нами будут внесены изменения в подсистему управляющего MCU куба. Для начала вместо запайки Arduino Nano в плату, нами будет использоваться установка разъёма (колодок) под Arduino Nano. Как минимум, это даёт нам возможность легко заменять контроллер при выходе его из строя, без перепайки платы и разборки куба.

Далее, при модернизации управляющего контроллера и замене «слабенькой» Arduino Nano на что-нибудь более современное и беспроводное, наподобие ESP8266 или ESP32, эта колодка будет использоваться для установки переходной платы ESP8266/ESP32.

То есть при помощи такого простого действия, как установка колодки под плату контроллера, мы получаем возможность менять управляющие MCU (и соответствующий функционал куба) «как перчатки» и наша плата LED Cube превращается в своеобразный «универсальный стенд» для экспериментов.

Тут возможны три варианта архитектуры:

  • Системой управляет Arduino Nano (базовый вариант)
  • Системой управляет ESP8266/ESP32 (индикация и беспроводной интерфейс)
  • Гибридный вариант Arduino Nano (индикация) плюс ESP8266/ESP32 (интерфейсы)

В практическом плане можно сначала собрать базовый вариант и в своё удовольствие поэкспериментировать с программированием эффектов для 3D дисплея или декоративного светильника. Затем можно собрать платку с ESP8266/ESP32 и прокачать свои навыки по программированию беспроводных и веб-интерфейсов и создать API вашей мечты для управления кубом.

Приступаем начинать


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

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



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

После того, как с Aliexpress приедут остальные комплектующие, ваш стартовый набор будет выглядеть вдохновляюще примерно так.



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

В общем, это будет неплохое испытание для вашей безупречности.

Сборка платы


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

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



По поводу разводки платы можно сказать следующее: плату я собрал и проверил — с электрической точки зрения она разведена корректно — всё работает так, как и должно работать. Но вот сама разводка мне не очень нравится: есть в ней какая-то «несистемность» — симметрия расположения компонентов нарушена, одна микросхема вообще «прилеплена» на другой стороне платы, резисторы и транзисторы тоже разведены «несистемно», в общем, я бы так никогда не сделал, но это только лишь придирки эстета, к функционалу платы у меня претензий нет.



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

В результате, паяем верхнюю сторону платы, на которой установлены 5 транзисторов управления слоями, микросхема 74HC595 и колодка для установки Arduino Nano (или будущей управляющей платы на ESP8266/ESP32).



Светодиоды и кнопки я не стал распаивать — у меня куб будет управляться либо напрямую из скетча Arduino IDE, либо по беспроводному API через ESP8266/ESP32. Хотя, если вдруг понадобятся, кнопки и светодиоды можно в любой момент допаять.

Нижняя сторона платы. Невооружённым взглядом видны косяки разводки — мало того, что три оставшихся транзистора пришлось распаивать на обратной стороне платы, так они ещё и перекрывают ряды пинов колодки контроллера. В целом удалось всё грамотно «загнуть», но такая разводка платы — это, по большому счёту, не очень серьёзно.



Сборка матрицы светодиодов


Всё, на этом шутки заканчиваются и начинается суровая правда жизни. Далее нам предстоит создать ажурную конструкцию из 512 светодиодов и, если вы не уверены в себе, то это ваш последний шанс отказаться, всё бросить и заняться чем-нибудь более полезным попроще. Правда в этом случае ни светодиодного куба, ни звания DIY-щика 80-го уровня вы не получите, что, согласитесь, весьма обидно (смайл).

Собирать светодиоды в кубическую конструкцию можно разными способами. Как правило, это послойная (поэтажная) сборка массивов 8х8 из 64 светодиодов. Но тут коллега AlexGyver пошёл нестандартным путём и предложил сборку вертикальных (боковых) секций по 64 светодиода.

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



Для сборки секций автор предлагает сделать специальный шаблон (матрицу) из макетной платы. Чем больше будет плата — тем легче будет собирать секцию светодиодов. Идеально, чтобы на плату помещались все 64 светодиода, но мне удалось купить только плату размера 18х12 см., что привело к увеличению количества операций по сборке.



Предварительно нужно особым образом согнуть ножки светодиодов. Это занимает всего две операции: сначала нужно согнуть обе ножки в сторону, как показано на фото ниже.



А затем отогнуть нижнюю (длинную) ножку на 90 градусов. Правда эти две несложные операции вам придётся проделать 512 раз.



Затем все 64 светодиода собираются в секцию 8х8 и аккуратно спаиваются в вертикальные и горизонтальные ряды. Тут очень важный момент: паять выводы светодиодов надо не абы как, а на совесть, не допуская ни одной ошибки и плохой пайки. Все 512 светодиодов в 8 секциях должны быть припаяны идеально, то есть правильно и качественно, иначе весь проект может потерпеть крах, когда вы включите куб, а у вас что-то не будет работать.



Это самая трудоёмкая часть проекта, когда паять нужно правильно, точно и качественно и делать это огромное количество раз. Положительным моментом тут сможет быть то, что если вы вначале работы не обладали корочками монтажника 6-го разряда, то по завершении сборки куба сможете преподавать мастерство пайки в ближайшем колледже (смайл).

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



Устанавливать довольно просто — втыкаете ножки от секции светодиодов в предназначенные для них места на печатной плате (пока припаивать ничего не надо). И таким образом устанавливаете все 8 секций.



Окончательная сборка куба


Перед окончательной сборкой куба нужно сказать несколько слов о полупрозрачной плёнке. В оригинальном проекте контроллер Arduino Nano установлен без панельки, непосредственно в плату, поэтому есть возможность полностью покрыть плату полупрозрачной плёнкой.

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

В нашем проекте Arduino Nano устанавливается на панельку и, кроме того, нам может понадобиться некоторое место для установки дополнительных компонентов при модернизации куба. Поэтому у нас плёнка несколько короче платы и как бы делит её на две части — «законченную» и «технологическую». Что не только не ухудшает внешний вид девайса, а наоборот делает его более интересным и «футуристичным» (это будет хорошо видно после окончательной сборки куба).



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



После этого можно припаять выводы всех секций с обратной стороны платы. Всё это нужно делать аккуратно, не торопясь и не допуская ошибок.

Тут нужно сделать ещё одно важное замечание. Сборка куба состоит из нескольких тысяч элементарных операций, каждая из которых должна быть выполнена абсолютно корректно. Конструкция куба такова, что после его окончательной сборки что-либо исправить крайне проблематично — всё уже оказывается наглухо запаяно и не предполагает возможности для лёгкого доступа и перепайки чего-либо.

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

Цветовая гамма


Есть ещё один момент, касающейся цветового оформления куба. В оригинальном проекте куб одноцветный, что, на мой взгляд, на порядок снижает его привлекательность и практическую ценность. В идеале, куб нужно делать из «умных» светодиодов WS2812, но это уже будет совсем другая история, а в нашем случае можно применить псевдо-цветное решение — выполнить разные слои из светодиодов разного цвета. Это будут всё те же обычные светодиоды, но у наблюдателя будет возникать полная иллюзия, что он имеет дело с полноцветным кубом — буйство цветов и красок будет обеспечено.

И, кроме того, выводить различную информацию можно в различные по цвету слои. Например, сделать индикацию состояния метео-датчиков в синем слое, а охранных — в красном и т. п.



Я применил такую раскраску и чередование слоёв, которая себя более, чем оправдала — смотрится такой куб просто отлично.

Результат сборки


Ну и после окончательной сборки остаётся только помолиться и подключить питание. Если вы всё сделали правильно, то вас ожидает совершенно потрясающая красота, которую бесполезно описывать словами — это нужно видеть своими глазами.



К сожалению, фотографии не передают той феерии красок и эффектов, которые выдаёт куб, но общее представление о том, что вас ожидает вы получить можете.



А то, что создавать эффекты для этого куба вы с лёгкостью можете при помощи Arduino-программирования (или любого другого, на ваш вкус) делает этот девайс просто мега-девайсом, который хочется программировать, отложив все остальные дела.

Видео


Ну и напоследок видео различных эффектов. Я не знаю что не так с моими камерами, но ни одна из них не смогла адекватно снять работу куба — на видео только жалкое подобие того, что есть в реальности. На самом деле все цвета светодиодов яркие и насыщенные и в реальности работа LED Cube выглядит на порядок привлекательнее, чем на видео.

Так что по видео можно оценивать только динамику работы эффектов, но не саму красочную картинку, создаваемую кубом. Кстати, все эти всполохи и засветки — это не результат работы куба, а результат некорректной работы алгоритмов подстройки изображения видеокамеры.


Замеченные косяки


Пока я заметил только два косяка в работе куба.

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

В моём случае куб уже полностью собран и для решения этой проблемы придётся «выкусывать» резисторы, как минимум, самых ярких зелёных светодиодов (нормально выпаять их уже нет возможности без разборки куба) и колхозить их замену на резисторы с большим сопротивлением.

Второй состоит в том, что наблюдается «паразитная» подсветка соседних (по вертикали) с включёнными светодиодов где-то примерно на 5-7 % яркости. Это особо не мешает и практически незаметно, но как-то «неаккуратненько». Судя по всему это не аппаратная, а программная проблема — где-то «проскакивают» лишние биты при динамической работе светодиодов. Скорее всего на уровне сдвигового регистра управления слоями. Но это только моё предположение и это всё нужно проверять отдельно.

Но все эти «косяки», по большому счёту, несущественны и даже без их устранения куб работает просто замечательно.

Заключение


Самый сложный этап сборки и запуска LED Cube мы (я) проделали и далее можем приступать к самому интересному — созданию эффектов для этого куба, подключения к нему ESP8266/ESP32 для беспроводного управления, создания API и интеграции его в домашнюю IoT систему. Этим мы и займёмся в следующих статьях цикла о LED Cube.

P.S.
Неплохо было бы собрать ещё один такой куб на «умных» светодиодах WS2812. Если кто знает подобный проект, так же хорошо проработанный, документированный и открытый, как описанный выше — напишите об этом в комментах.




Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram-канале

Комментарии (22)


  1. CyberexTech
    30.12.2024 12:09

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


    1. Guestishe
      30.12.2024 12:09

      И свобода цвета


  1. Cib0rg
    30.12.2024 12:09

    Вьетнамские флешбеки. Собирал когда-то такую штуку вдвоём с отцом, как раз на 8 диодов сторону. Исплевался. Проблема в том, что конструкция дюже хрупкая с неремонтопригодная: если вылетит диод внутри, надо разбирать и собирать обратно половину Куба, то есть делать под 400 паек. Так что заголовок не врет - и правда для сильных духом.


    1. MaFrance351
      30.12.2024 12:09

      В начальной школе (ещё до бума 8х8х8 и ардуино) делал 3х3х3, чисто на дискретной логике. Сделать оснастку для сборки не догадался, раза три пересобирал, прежде чем он стал ровным...


  1. Mr_Plohish
    30.12.2024 12:09

    на rgb светодиодах такое нужно делать


  1. Reyzek
    30.12.2024 12:09

    На умных светодиодах собрать очень сложно, там 4 ноги будет а не две как тут. Проще сделать куб из адресных панелей и сделать эффекты 3д. Такие проекты есть, а вот с 4мя ногами видел только обсуждение.


    1. smart_alex Автор
      30.12.2024 12:09

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

      Так что основная проблема - найти такой же проработанный и документированный проект, как проект Гайвера.


    1. smart_alex Автор
      30.12.2024 12:09

      Ещё мысль: интересно, почему никто из производителей не додумался выпускать готовые планки диодов WS2812 для сборки кубов? Это упростило бы на 2-3-4 порядка трудоёмкость создания кубов из них.


      1. Guestishe
        30.12.2024 12:09

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


        1. maxdev
          30.12.2024 12:09

          На Алиекспрес есть адресные диоды в формфакторе как у автора статьи, только с четырьмя выводами — тонкими проволочками контактами. Ниже я дал ссылку на проект с такими диодами. Можно собрать свою панель. Но паять придется самому.


      1. maxdev
        30.12.2024 12:09

        Вот есть конструктор с готовыми планками WS2812 8x8x8 за 500 usd: https://www.etsy.com/listing/1201795364/3d-led-cube. Надо очень хотеть упростить трудоемкость, чтобы тратить такие деньги. С другой стороны клиенты наверное есть. А кому-то будет интереснее собирать самому придумывая оснастку для сборки, продумывая схему.


  1. ragesteel
    30.12.2024 12:09

    Я когда смотрю на подобные конструкции хочется взять уж максимум, т.е. 16×16×16 да ещё RGB диодов.


  1. smart_alex Автор
    30.12.2024 12:09

    Разработал и собрал модули-переходники для ESP32 и для гибридного варианта ESP8266+Nano - всё работает на ура.

    Вообще красота: вынул Nano, вставил модуль ESP32 - и у тебя уже LED куб на ESP32.


  1. VT100
    30.12.2024 12:09

    512 оттенков серого... ;-)


  1. maxdev
    30.12.2024 12:09

    На WS2812 (или на PL9823 - в коде есть выбор) есть куб 16x16x16 на GitHub. Выглядит фантастично. Собирать наверное ещё сложнее. С другой стороны адресные диоды должны сделать куб более ремонтопригодным. Вот ссылка на GitHub (там же есть ссылка на youtube на посмотреть сборку и эффекты): https://github.com/MaltWhiskey/Mega-Cube


    1. smart_alex Автор
      30.12.2024 12:09

      Спасибо, посмотрим.


  1. devzona
    30.12.2024 12:09

    Более современная тема - Building a Mini Vegas-Sphere


    1. Guestishe
      30.12.2024 12:09

      В комментах к видео увидел идею использовать оптоволокно, а ведь можно и для куба.


  1. Prohard
    30.12.2024 12:09

    Сколько ни старайся, все равно получается дискотека


    1. Prohard
      30.12.2024 12:09

      Тем не менее отлично получилось. Насчет подсветки соседних СИД. Поставьте паралельно базо-эмиттерным переходам транзисторов Q1-Q8 резисторы 1-2 кОм. В моих схемах это помогало устранить этот эффект.


      1. smart_alex Автор
        30.12.2024 12:09

        Я попытался решить эту проблему. Там динамическая индикация и минимальные задержки (при правильном алгоритме работы) дают такие побочные дефекты "подсветки" лишних светодиодов.

        Пока побороть эту проблему мне не удалось.


  1. LaRN
    30.12.2024 12:09

    Запустить бы на таком кубе симулятор "Жизни" в 3D.