В последнее время на портале появлялись статьи о создании светодиодных кубов. Это своего рода игрушки, которые могут формировать трёхмерную картинку, но сделать большое разрешение очень проблематично и трудоёмко. Большинство работ ограничивается форматом 3х3х3, или в лучшем случае 5х5х5. Спустя время я нашёл свой старый 10 “этажный” куб, немного восстановил его и решил написать о своём опыте создания устройства.

Первый куб я спаял где-то в 2012 году, на подарок, с разрешением 4x4x4, в нем использовалась готовая схемотехника и программа, найденная в интернете. Увлёкшись, решил сделать такой же себе, но, увеличив разрешение до 5x5x5. Схемотехнику, опираясь на готовое решение, сделал сам, полностью скопировав саму логику подачи напряжения на ноги светодиодов.
Надо сказать, в тех кубах на светодиоды напряжение шло полностью от выводов МК, поэтому мне пришлось взять МК с большим количеством ног, ведь их нужно было уже 25 только на столбцы, и 5 на строки. В разрыве между МК и светодиодом был только токоограничивающий резистор, а напряжение на «этажах» стекало через полевой транзистор на землю.

Затем с Ebay заказал 1000 диодов, и решил собрать совсем большой, по моим меркам, куб. Кстати, мои небольшие эксперименты привели к тому, что лучший выбор пал на диоды с большой диаграммой направленности. Они не вытянутые, как обычно, а образуют полусферу, их свечение видно почти со всех углов, найти их можно по запросу strawhat led. Стоят они дороже, зато светят намного эффектнее. Спаять куб— это ещё то испытание. Тут, как и с корпусом, мне помогал мой хороший друг, так как я тяжело приспособлен к такой кропотливой работе. Делали как и все, просверлив отверстия под шляпки диодов, и сделав матрицу 10х10. Затем паяем все этажи отдельно, и накладываем их друг на друга. Процесс занял около 3 дней, почти безвылазного сидения перед паяльником.

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

На нижней платформе, заранее на лазерной резке наметили 100 отверстий под светодиоды. Легко просверлив их шуруповёртом, аккуратно погружаем туда спаянный куб, и припаиваем снизу переходники.

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

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

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

После окончательной сборки куб принял следующий вид:

К сожалению, к процессу проектирования электроники подошли не совсем вдумчиво и, в итоге, спаяли матрицу по аналогии со старыми кубами, на этажах был общий катод, а столбцы зажигались анодами диодов. Это решение не очень выгодно с точки зрения подачи большого тока на столбец, ведь если в 5 этажном кубе для хорошей яркости достаточно подать один ток, то в 10 этажном, как минимум, нужно в 2 раза больше.
Об этой проблеме я сильно не задумывался и первая плата была создана с помощью широко известных сдвиговых регистров 74hc595, так как уже имел опыт работы с ними. Задачу по коммутации исполнял МК AtMega128, а током на этажах управляли полевые транзисторы.

Запаяв все элементы и, использовав те же резисторы, я написал простую программу и был шокирован, что на куб можно с удовольствием смотреть только в темноте. Днём его яркость не устраивала и программными методами это никак не решалось. Вопрос не сложный — подумал я, и запаял резисторы меньшего номинала, рассчитав, чтобы на диоды шёл ток около 70ма. После включения разочарование ещё больше усилилось — куб почти ничего не показывал, зажигая редкие диоды, зато ярко. Открыв даташит на 74hc595 стало всё ясно — напряжения на выходах нормируются для токов не более 8 мА, а суммарный ток через выводы земли и питания не должен превышать 70 мА., что нам абсолютно не подходило.
Начал штудировать микросхемы, которые бы подошли для этой задачи. В нашей южной столице ничего почти не было в наличии, и ещё из всех даташитов микросхем, которые рассчитаны на большой ток, я начал замечать одну неприятность — они все на конечном каскаде содержат пару Дарлингтона, и по схемам в даташите соединяют выходной контакт с землёй. Для нашей конфигурации куба, где катод был на этажах, это никак не подходило. Посмотрев схему популярного uln2003 и, увидев аналоги на светодиодных матричных драйверах, я понял, что это решение никак не применить:

На мой взгляд, изучив потом конструкцию популярных мискросхем, решил, что проще подавать на этажи плюс, через мощный транзистор, а столбцы, с помощью ULN2003, скидывать на землю т.е. делать схему куба с общим анодом.
Отчаявшись искать решение, куб был отложен на неопределённый промежуток времени, как вдруг он резко понадобился для одного мероприятия. У нас было три дня, чтобы запустить его на нормальной яркости. Решение придумали простое — на каждый выход 74hc595 вешаем обычный транзисторный ключ, а в программе инвертируем биты. Была распакована пачка каких-то простых BC846B, давно валявшихся с EBAY, и быстро разведена плата.

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

Исходников подобных программ я тогда нигде не нашёл, а мои навыки написания программ были далеки от идеала. Но результат был достигнут, поэтому вкратце опишу алгоритм.
Программа была написана на тот момент в CodeVision, а эффекты подгружались отельным файлом в основной листинг. Изначально были написаны подпрограммы разбивки десятизначного бинарного числа на 10 отдельных переменных для каждого ряда, и отправки этих 100 переменных в сдвиговые регистры, обнуления, и задержек для формирования этажей. Всё это привели к такому формату, который описывал, что мы видим на конкретном этаже (единицы — зажжённые диоды):

a=0b1000000001;
b=0b0000000000;
c=0b0000000000;
d=0b0001111000;
e=0b0001111000;
f=0b0001111000;
g=0b0001111000;
h=0b0000000000;
i=0b0000000000;
j=0b1000000001;
addr();output_shift();
level1();


Разбивка числа, вида 0b0001111000 осуществлялась простым алгоритмом.

if (a>0b0111111111) {
out[1]=1;
a=a-0b1000000000;
}

if (a>0b0011111111) {
out[2]=1;
a=a-0b0100000000;
} 

и т.д.

Проверяем старший бит на предмет нуля или единицы путём сравнения. Если больше, то выставляем переменную регистра в единицу и уменьшаем число на этот разряд. Проделываем эту операцию десять раз, чтобы выделить все 10 значений для одного ряда, и сохраняем их во временные переменные сдвигового регистра, которые мы потом разом отправим на отображение.
Процедуру работы со сдвиговым регистром описывать нет смысла, она разобрана на многих сайтах. Затем, после описания всех 10 уровней, всё это загоняется в подпрограмму динамической индикации, где весь этот цикл повторяется необходимое число раз (время каждого фрейма задаётся для каждого кадра) для обмана человеческого зрения. Конечно для масштабных кубов написание эффекта может превратиться в мучение, и нужно делать компьютерный интерфейс. Но для нашего я быстро составил несколько эффектов, и закинул это в МК avrmega128, заняв почти 20% флэш памяти.
Ну и конечно, какой 3д-куб без финального видео. К сожалению, у меня так и не получилось выставить на фотоаппарате настройки, чтобы передать красочность куба, то диоды сливаются между собой, то слишком тёмные, для эффектности чередовал съёмку с action-камерой.

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

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


  1. Foolleren
    26.02.2016 23:40
    +3

    Паяйте чистым глицерином из аптеки, профит 200%


    1. lex232
      26.02.2016 23:58
      +2

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


      1. Moog_Prodigy
        27.02.2016 02:45
        +2

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


        1. edd_k
          27.02.2016 08:30

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


          1. MrSGrey
            27.02.2016 11:15

            Температура кипения глицерина — 290°C. Если использовать хорошую паяльную станцию и припой с соответствующей температурой плавления, можно и не превысить эту температуру.


          1. Moog_Prodigy
            29.02.2016 22:24

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


            1. Moog_Prodigy
              29.02.2016 22:30

              Ацетилсалицилкой \ аспирин — если паять, примерно такое же ощущение. Круче его только запах от паяльной кислоты. Бррр.


            1. Foolleren
              01.03.2016 08:05

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

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


              1. jar_ohty
                03.03.2016 02:04

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


                1. Foolleren
                  03.03.2016 04:44

                  И сколько его там образуется?


            1. ozonar
              01.03.2016 22:37
              +2

              Обычно в жидкостях присутствует и пропенгликоль и глицерин. Есть три стандартных пропорции смеси:

              – Traditional. 60% пропиленгликоля и 35% глицерина (наиболее популярная),
              – Ice blade. 90% пропиленгликоля и 5% воды,
              – Velvet cloud 80% глицерина и 15% воды;
              в которых безглицериновые жидкости как раз имеют минимальное количество пара.

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


        1. Foolleren
          27.02.2016 15:28
          +1

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


        1. DIHALT
          29.02.2016 21:58

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


          1. R6MF49T2
            02.03.2016 12:42

            Сам не химик, но на специализированных форумах читал примерно следующее: "Если не нагревать не выше 200°, то не опасно, если выше (обычно около 250°) начинает выделяться токсичный и слезоточивый акролеин."


            1. DIHALT
              02.03.2016 15:52

              Ну до 200с глицерин даже не кипит. Чтобы из него получить белый дым его надо раскочегарить за 500С


              1. R6MF49T2
                02.03.2016 16:09

                В Электронных сигаретах, на устройствах с температурным контролем при установке 200С вполне себе густой белый "дым".


                1. DIHALT
                  02.03.2016 20:00

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


      1. Sleepwalker_ua
        27.02.2016 17:27
        +2

        Или просто попробуйте меньше канифоли. А то складывается впечатление, что вы хотели сделать светодиоды в «янтарных каплях» :-)

        Чтобы запаять с канифолью, не нужно ее лужами прямо разводить, ни на плате, ни в навесном монтаже — достаточно макнуть жало в припой, макнуть в канифоль, приложить к месту пайки на 0.5-2с (смотря что паять и каким паялом), повторить со следующим контактом. Те же светодиоды замечательно паяются практически без канифоли, т.к. ножки у них идут уже луженые, и если их не окунали в чистый жир — пропаяется все быстро и аккуратно.
        p.s. Сам куб красивый получился, аккуратно. Мне понравилось!


        1. lex232
          29.02.2016 19:39

          Спасибо! Ножки луженые, я это тоже замечал, но честно так и не получилось без флюса паять их, легко отламывалось место спайки. Припой обычный ПОС-61. Паяем самой простой станцией lukey 852.
          Но это давно было, сейчас уже вроде опыта поднабрались.


          1. Sleepwalker_ua
            29.02.2016 19:47
            +1

            Наверное, в процессе упаковки все облапано было или просто лужение такое… некачественное. Бывает, конечно.

            Не знаю, если честно, как у вас, у нас есть замечательный флюс ф99 и ф2000, сам пользуюсь частенько. Вот им вообще все замечательно идет, достаточно буквально на кончике тонкой отвертки для пайки контакта. и цена в районе 1-1,5 долларов за баночку грамм на 35-40 где-то, надолго хватает.

            А на люкее если не пропаивается хорошо, попробуйте температурку накрутить повыше, я когда в мастерской работал, у нас там такой же был, врал бессовестно, на индикаторе 350, а на жале паяльника от силы 220-230 градусов, как к детали приложишь, так секунды 2 греть надо ножку, чтоб схватило…


            1. GennPen
              29.02.2016 23:12

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


  1. GennPen
    27.02.2016 03:02

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


    1. lex232
      27.02.2016 03:51

      От корпуса тоже идут отражения на видео, но в реальной жизни это не так заметно.


  1. Triazepin
    27.02.2016 03:46

    Не пробовали 3D-тетрис на нем сделать? Или разрешения будет не достаточно?


    1. lex232
      27.02.2016 03:49

      Не пробовали, потому что также есть мнение на счёт разрешения. А вот змейка может и получилась бы. Думаю, как время освободится, попробуем собрать цветной около 12 или может 16 пикселей, с клиентом написания эффектов на ПК, там уже можно было бы развернуться.


  1. Barsukk
    27.02.2016 09:20
    +1

    Прекрасный результат. Очень красиво получилось. Ничего подобного не видел раньше, спасибо.

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


    1. lex232
      27.02.2016 11:20

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


  1. mnhunter81
    27.02.2016 09:20

    код на Gitgub?


    1. lex232
      27.02.2016 11:16

      Честно никогда не выкладывал ничего туда, да и код писался два года назад, когда познавал азы, я там уже и сам не разберусь). Но попытаюсь выложить и дать ссылку, вдруг кому полезен будет.


      1. paranoik
        02.03.2016 10:26

        Могу предложить мой софт для руления кубом с компа, писался для популярного китайского кубика 8*8*8
        https://bitbucket.org/Anynomuz/cubesource/


  1. aivs
    27.02.2016 14:25
    +2

    Куб классный и анимация на видео шикарная!


  1. DjOnline
    27.02.2016 16:01

    Прямо как в парке горького


  1. gramilla
    27.02.2016 22:22

    Очень классная штука, часто подобные кубы встречаются сериалах(Область тьмы), часто натыкался на али на готовые решения под самостоятельную сборку кубов 8х8х8 и 4х4х4, после прочтения вашего топика решил, что надо попробовать собрать.


  1. Jeditobe
    28.02.2016 02:24

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


    1. Sleepwalker_ua
      28.02.2016 03:15

      http://cxem.net/sound/light/light44.php
      один из простейших вариантов на 64 диода.
      И аналогичные можете на том же сайте поискать.


      1. Jeditobe
        28.02.2016 13:48

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


        1. lex232
          29.02.2016 19:50

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


      1. unv_unv
        02.03.2016 17:59

        Понятно. Т.е. картинка отрисовывается по слоям. Чем больше слоёв, тем больше мерцание.


        1. jee
          02.03.2016 19:28

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


  1. jee
    02.03.2016 13:45

    Напишите пожалуйста что за аммиак вы использовали? Он жидкий? Где такой достать?