Электрификация

Справочник домашнего мастера

Светодиодный куб 16х16х16

Перевел SaorY для mozgochiny.ru

Всем мозгоинженерам мозгопривет! Если вам интересна тема LED-кубов, то из нижеприведенной статьи вы узнаете, как своими руками собрать один из вариантов — разноцветный куб 8х8х8.

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

Просчитав модель большого одноцветного куба, я быстро понял, что увеличение массива светодиодов до 16 штук в ряду приведет к 8-ми кратному увеличению числа требуемых светодиодов и взаимосвязей между ними. Манипуляции с 4096-ю светодиодами это для меня слишком, поэтому умерив свой пыл, я решил сделать куб с массивом 8х8х8, но из цветных светодиодов, а не простых одноцветных. Для справки, даже такой небольшой куб с 8-ю диодами в ряду требует около 2200 спаек!

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

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

Шаг 1: Мультиплексирование — буферные микросхемы


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

Этот массив 8х8 содержит 64 светодиода и, соответственно, требуется 192 управляющих сигнала, чтобы задействовать все цветовые вариации. А чтобы получить такое количество сигналов необходимо собрать цепь из 24-х буферных микросхем в которой выход первого буфера управлял входом второго, выход второго управлял входом третьего буфера и так далее. Наглядно участок такой цепи, где соединяются два буфера друг с другом и со светодиодами, представлен на рисунке 2.

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

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

Используемый здесь 16-ти дрожечный мозгокабель передает между платами 10 управляющих сигналов плюс питание и заземление. А ленточный кабель используется для передачи сигналов к светодиодам через резисторы размещенные на плате. Каждая из плат имеет свои конденсаторы для «набора» тока и подачи его на светодиоды при необходимости.

Шаг 2: Мультиплексирование — NPNтранзисторы

На рисунке 3 можно увидеть как каждый из светодиодов массива 8х8 управляется посредством цепи буферных микросхем.

Для того, чтобы контролировать остальные семь массивов 8х8 нужно применить еще один вид мультиплексирования. Для этого необходимо все катоды светодиодов массива 8х8 соединить вместе, а затем запитать на «массу» через NPN-транзистор, с помощью которого можно будет включать/отключать весь массив 8Х8 одновременно подав управляющий сигнал на базу транзистора. На рисунке 4 представлена схема этого «общего катода». А на фото рядом показан «брикет» из 8-ми плат драйверов.

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

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

Шаг 3: Сборка

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

Шаг 4: Загиб лапок

Итак, первым делом берем 512 светодиодов и начинаем правильно отгибать лапки-контакты. Для облегчения процесса я в дощечке высверлил отверстие диаметром 5мм, так, чтобы светодиод плотно и заподлицо входил в него, но при этом и легко из него извлекался. После этого рядом с отверстием начертил вспомогательные линии, упрощающие загиб мозголапок. Нагляднее на рисунке 6.

Одна из начерченных линий проходит вертикально по центру отверстия (А), другая горизонтально по центру (В) и третья, горизонтально по касательной вершине отверстия (С).

Кстати пришлась металлическая линейка, ей удобно отгибать лапки. На рисунке 7 показан весь процесс загиба:
— вставляем светодиод в отверстие и ориентируем его так, чтобы «сигнальные»лапки находились по линии (В) и катодная лапка была второй справа,
— первый загиб: отгибаем катодную лапку вниз, а анодные лапки вверх, параллельно линии (А). При этом загибаем так, чтоб лапки плотно, в одной плоскости прилегали к дну светодиода,
— второй загиб: с помощью металлической линейки отгибаем лапку катода влево, параллельно линии (В),
— третий загиб: опять с помощью линейки, поставив ее на линию (С), отгибаем анодные лапки вверх. Один светодиод загибается вниз, а 511 влево!

Шаг 5: Сборка массива 8х8

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

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

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

После сборки каждого столбца я проверял его на работоспособность, чтобы убедиться в функциональности каждого светодиода, и отсутствии неполадок в сборке. Для этого я присоединил к блоку питания на 5В длинные проводки, а к их концам припаял два резистора с теми же номиналами, что и резисторы на плате драйвера Порта 1, и все это позволило мне «запускать» светодиоды без риска их спалить.

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

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

Шаг 6: Объединение массивов

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

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

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

Шаг 7: Подготовка основы

Собранный куб получился довольно прочным, но все же довольно легким и если установить его неправильно, то вся работа может пойти на смарку. Я взял кусок МДФ, такой же, что и для приспособления, облегчающего загиб лапок,и высверлил в нем сквозные отверстия диаметром 5мм под анодные лапки нижних светодиодов. Перед этим я измерил расстояние между крайним правым и крайним левым светодиодами на обоих сторонах куба и нашел среднее значение, дальше повторил процедуру с задней и передней сторонами. Затем высверлил еще 8 отверстий диаметром 3мм для катодных проводов идущих от каждого массива куба.

И в окончание я выбрал 6-мм паз для установки стеклянной мозгокрышки и окрасил основание в черный цвет.

Шаг 8: «Мозг»

С помощью нескольких кусков печатной платы я подключил «мозг» поделки — микроконтроллер ECIO40P16 к 5В-му источнику питания, а также собрал цепь общего NPN драйвера. Использование именно 5В-го источника питания позволяет применять в поделке ток довольно большого номинала без выделения большого количества тепла.

Flowcode-компоненты LED-куба «неприхотливые» и будут работать почти с любым микроконтроллером, кроме 8- битных PIC-контроллеров, так как они мне могут иметь массив значений больше, чем 256 байт. Для данного размера куба микроконтроллера ECIO40P16 хватит с лихвой, но если у вас есть только что-то из стандартных AVR на основе Arduino, то и они должны управлять кубом.

Какой бы вариант размещения и защиты электронных компонентов вы не выбрали, не забудьте сделать отверстие для подключения питающего кабеля. Компоненты SMPSUs иногда бывают в металлических корпусах, их можно так и установить в куб, чтобы обезопасить электронику. Еще можно оставить USB-кабель, подключенный к микроконтроллеру, что даст возможность перепрограммировать самоделку без необходимости снятия корпуса, и взаимодействовать с кубом через USB соединение с помощью Flowcode.

Шаг 9: Софт

Для создания визуальной симуляции и кода управления кубом я воспользовался программой Flowcode v6, это все, что понадобилось для создания моего шедевра.

Начал я с создания сферы на панели редактора, сделал ее невидимой, а затем, используя API-симуляцию, клонировал ее несколько раз увеличивая по всем осям до достижения границ куба. Потом написал мозгопроцедуру, позволяющую мне задать и «высветить» цвет каждого светодиода в отдельности. Она позволила мне генерировать процедуры рисования линий и параллелепипедов, а еще немного более сложные макросы вращения и переключения. С помощью опции «предыдущего компонента» я смог написать макрос разрывания текста и, наконец, добавив систему двойного буфера симуляции стороны компонента, получил полный функционал.

Для дополнительных опций я создал 16-битный массив вариантов каждого цвета светодиода в кубе. Затем написал еще функцию, которая может назначать повторно обработку таких вещей как синхронизация с буферными данными и переключение между восемью общими каналами. И наконец, все что осталось сделать, это добавить код в макрос получения и установки цвета, чтобы массив считывался и записывался, когда не запущен режим симуляции. Последний компонент теперь доступен , и может быть просто перетащен на панель Flowcode. Сам редактор Flowcode показан на рисунке 10.

Полезные файлы с кодом находятся здесь RGBLEDCube.

Шаг 10: Представление

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

На представленном видео показана визуальная работа данной поделки.

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

(A-z Source)

>Купить в подарок или заказать уникальную вещь<

ПОДЕЛИТЕСЬ С ДРУЗЬЯМИ!

  • 15 свежих записей

About SaorY

  • Bluetooth-колонка на 40Вт своими руками — 21.05.2016
  • Как сделать бетонную столешницу — 14.05.2016
  • «Гигантская микросхема» или подставка для ног своими руками — часть 2 — 10.05.2016
  • «Гигантская микросхема» или подставка для ног своими руками — часть 1 — 09.05.2016
  • » Fantastic Plastic» или ЧПУ-фрезер для пластика своими руками — 08.05.2016
  • Как сделать легендарный робот «Canbot» — 07.05.2016
  • Как сделать магнитную панель для специй — 06.05.2016
  • Как сделать POWERBANK из аккумулятора старого телефона — 05.05.2016
  • Светильник «Ракета» своими руками — 04.05.2016
  • Как сделать оригинальную подставку для книг — 03.05.2016
  • Ночник со звездным узором своими руками — 02.05.2016
  • Как сделать складной многофункциональный столик — 01.05.2016
  • Столярный вытяжной стол — 30.04.2016
  • «Пост-апокалиптические» очки своими руками — 17.04.2016
  • Водонепроницаемый мешок своими руками (почти задаром) — 12.04.2016

LED Cube 8x8x8 на Arduino с RTC

Введение

LED Кубы появились уже давно, есть множество примеров их изготовления. На просторах интернета можно найти различные, начиная от 3х3х3 одноцветных, заканчивая большими объемными 3D LED экранами. Наиболее оптимальный размер с которого можно начать освоение их построения и программирования для начинающих это 8х8х8 (512 светодиодов), кубы меньших величин, не столь явно показывают световые эффекты, а кубы начиная уже с 16х16х16, довольно сложны в изготовлении начинающим.

В этой статье я хочу поведать создание LED Куба, размером 8х8х8, с использованием в качестве управляющего микроконтроллера, платы Arduino Pro Mini. Данная модель куба, может работать в двух режимах: световых эффектов и режим часов. Это стало возможным, благодаря интеграции в схему модуля RTC.

Принцип действия

Управление световым кубом из 512 светодиодов осуществляется посредством MOSFET-транзисторов, 64 транзистора отвечают за подачу положительного напряжения на столбцы, и 8 транзисторов за подачу отрицательного напряжения на слои. Ток (соответственно яркость) светодиода регулируется по средством 64 резисторов (R011-R641) стоящих после выхода транзисторов на столбцах. Открытие и закрытие транзисторов осуществляется при помощи сдвиговых регистров, которые в свою очередь управляются по двум линиям (отдельно столбцы и слои) платой Arduino.

Вся конструкция куба разделена на части:

  • Схема №1 или главная плата, на которой установлен сам микроконтроллер (плата Arduino), RTC модуль, SD модуль, сдвиговый регистр и MOSFET-транзисторов, отвечающие за слои;
  • Схема №2 или плата контактов, которая отвечает за крепления самого куба и открытия подачи положительного напряжения на столбцы;
  • Схема №3 или пульт, отвечает за кнопочные команды устройству;
  • Блок питания 5V (15A в данной конструкции применён такой, но поддержка такого тока не обязательна, всё зависит от тока светодиодов, смотрите ниже расчёт);
  • Сам Куб 8х8х8 из 512 светодиодов.

Блок питания подбирается из учёта питания светодиодов, так как одновременно возможно свечение только одного слоя, то есть это 64 светодиода. Если принять ток одного светодиода равным 30мА, то получаем: 30мА*64=1920мА, то есть будет достаточно 3А блока питания, для питания всей конструкции.

Схемотехника

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

Схема №1, главная управляющая плата:

Коммутационная часть, осуществляет ввод основного питания на устройство (J6). Для прошивки платы Arduino Pro Mini, служит модуль USB to TTL, который подключается через J6-1, контакты J6-J1 и J6-J2, служат для подключения питания на плату Arduino от модуля (данное питание необходимо для прошивки, если не используется блок питания). Разъем J4, служит для подключения SD карты, а J5 для подключения модуля RTC. Плата Arduino Pro Mini, подключается через, группу разъемов J1 (1-1, 1-3, 1-4). Группы разъемов J2 и J3, служат для подключения сигнальных линий для управления платами контроля питания столбцов (Схема 2), и подачи питания. Группа разъемов J7, служит для подключения клавиатуры (Схема 3). И наконец группа J8, отвечает за подключение второй части Схемы 1 (управление слоями):

Вторая часть Схемы 1, предельно проста: сдвиговый регистр, дает команды MOSFET-транзисторам ( 1-открыть транзистор, 0-закрыть), сдвиговый регистр, получает через линию данных команды от первой части Схемы 1.

Рассмотрим, Схему 2, она разделена на две одинаковые части, для контроля по 32 столбца каждая. Так как они абсолютно идентичны, рассмотрим только одну:

Так же как и в предыдущей схеме, сдвиговый регистр даёт команды (которые получает через линию данных от платы Arduino Pro Mini), MOSFET-транзисторам (за исключением теперь, 0-открывает транзистор, а 1-закрывает). Так же тут присутствуют на выходе с транзистора, резисторы по 250 Ом, они служат для контроля тока светодиода, и могут быть заменены на номинал более подходящий для не совсем яркого свечения (в зависимости от используемых светодиодов).

И завершающая, Схема 3, плата кнопок, где всё предельно просто:

Платы Схема 1 и Схема 2:

Проверка каждого слоя перед их спайкой:

Прошивка платы Arduino Pro Mini (sketch)

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

Есть две основные функции управления сдвиговыми регистрами («column» — заполнение столбцов и «layer_column» — выбор слоя и вызов функции «column»), обе они реализованы через функцию shiftOut. Это самый легкий способ управления регистрами, но возможно не самый быстрый. Следом идет основная функция закрашивания всего куба «cube», смысл функции заключается в том, что она последовательно и по циклу (цикл получается само собой) закрашивает каждый слой куба. В веду такой реализации происходит мерцание куба, оно ели заметное из-за быстрого микропроцессора.

Существует два режима работы куба: «Демонстрация световых эффектов» и «Отображение времени». Смена осуществляется при помощи кнопки «Mode». При первом режиме, происходит последовательное считывание с SD карты данных, далее передача выше указанным функциям. Второй режим реализован гораздо сложнее, так как все данные этого режима вшиты в микропроцессор (этим и объясняется количество строк кода). Если коротко, то данные с RTC модуля считываются и исходя из этого, опять же, выше указанным функциям отправляются соответствующие битовые переменные, для отображения на светодиодах. Так же реализована возможность настройки часов, при помощи кнопок управления, для этого достаточно в режиме часов нажать кнопку «Setup», далее при помощи кнопки «Change» менять режим (часы, минуты, дни и т.д.) и настраивать при помощи кнопок «Up» и «Down». В конце нажав на кнопку «Reset», можно сохранить настройки.

Расположение кнопок, согласно Схемы 3:

Программа создания световых эффектов (C++ Builder 6)

Чтобы создание эффектов сделать упрощенным и функциональным, а так же просмотреть заранее спроецированные эффекты, перед их записью на SD, было решено написать программу на C++, с использованием Open GL.

Исходный код для Borland C++ Builder 6, приложен к статье.

Заключение

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

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

  1. Электрическая часть, не представляет сложности в реализации;
  2. Спайка куба, освещена во многих других статьях, по этому я не останавливался на этом, но спаять могу сказать довольно не простое занятие (т.е. больше 1000 точек припоя);
  3. Внедрение RTC модуля, не оправдало мои ожидания, так как показ времени не совсем разборчив, это можно наблюдать на видео, единственное если сделать белый матовый корпус, тогда цифры хорошо отличимы.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
Схема №1, главная плата
Плата Arduino Arduino Pro Mini 1 5V, 16MHz Поиск в Utsource В блокнот
Модуль USB to TTL CP2102 1 Поиск в Utsource В блокнот
Часы реального времени (RTC) DS1307 1 Поиск в Utsource В блокнот
Модуль SD card SD card 1 Поиск в Utsource В блокнот
U1 Сдвиговый регистр SN74HC595 1 Поиск в Utsource В блокнот
Q1-Q8 MOSFET-транзистор IRLR024N 8 Поиск в Utsource В блокнот
R1-R8 Резистор 10 кОм 8 Поиск в Utsource В блокнот
R1-R8 Резистор 3 кОм 8 Поиск в Utsource В блокнот
С1-С2 Электролитический конденсатор 1мкФ 1 Поиск в Utsource В блокнот
Схема №2, плата кантактов
U1-U8 Сдвиговый регистр SN74HC595 9 Поиск в Utsource В блокнот
Q1-Q64 MOSFET-транзистор IRLML6302TR 64 Поиск в Utsource В блокнот
R011-R641 Резистор 250 Ом 64 Яркость, ток, светодиода Поиск в Utsource В блокнот
R01-R64 Резистор 10 кОм 64 Поиск в Utsource В блокнот
R01-R64 Резистор 3 кОм 64 Поиск в Utsource В блокнот
Резистор 3 кОм 1 Поиск в Utsource В блокнот
Световой куб
Светодиод 20мА 512 Поиск в Utsource В блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Наверх