Светодиодный куб 8x8x8 своими руками
ОБНОВЛЕНИЯ
• 30.10.18 CUBE_Gyver_v2: добавлена новая версия для нового видео
30.10.2018 обновлён архив проекта, добавлена новая версия!
ОПИСАНИЕ
- Большой светодиодный куб на Arduino и сдвиговых регистрах. 512 светодиодов, 10 режимов анимации (можете дописать свои!).
- Куб имеет две кнопки, обеспечивающие переключение режимов вперёд/назад, удержание кнопки увеличивает и уменьшает скорость текущей анимации.
- Проект собран на печатной плате, что позволило уменьшить трудозатраты на соединение компонентов, а также уместить всё в компактный корпус!
- Куб использует динамическую индикацию (послойная отрисовка) и потребляет всего около 0.5 А, когда светятся все 512 светодиодов.
- Долгий и интересный процесс пайки самого куба показан на видео ниже. Использованы длинноногие светодиоды, куб спаян только их ногами. Края соединены и усилены железной проволокой (10 линий).
- Добавлены игры: 3D змейка и туннель
ВИДЕО
КОМПОНЕНТЫ
Каталоги ссылок на Алиэкспресс на этом сайте:
Стараюсь оставлять ссылки только на проверенные крупные магазины, из которых заказываю сам. Также по первые ссылки ведут по возможности на минимальное количество магазинов, чтобы минимально платить за доставку. Если какие-то ссылки не работают, можно поискать аналогичную железку в каталоге Ардуино модулей . Также проект можно попробовать собрать из компонентов моего набора GyverKIT .
Источник
Лайткуб (Фотобокс, Лайтбокс) своими руками за 300р
Допустим, вы хотите сделать качественные фотографии гаджета для обзора или вас интересует предметная съемка в домашних условиях, но под рукой лишь недорогая мыльница. Как быть? Вам нужен лайткуб! О том, как я сделал свой недорогой, но прочный лайткуб, примеры фоток и многое другое – под катом.
Что это?
Лайткуб – это конструкция из пластиковых/металлических рам в виде куба, на стороны которого натянута полупрозрачная рассеивающая ткань. Дно и задняя стенка такого куба являются «предметным» столом. Выглядит это примерно так:
Зачем?
Причины могут быть самыми разными:
• Нравятся фотографии на белом фоне
• Хочется иметь свою «мини-студию»
• Интересует предметная /макросъемка
• Условия в квартире не позволяют добиться качественных фото
• Нравится работать руками
Я решил сделать лайтбокс, потому что хотел получить качественные фотографии, но в моей квартире совершенно неподходящие для этого условия – она «темная», солнце практически не попадает в нее. При комнатном освещении фотографии редко получались хорошими. Лайтбокс решил все эти проблемы.
Почему именно такой?
В сети можно найти множество статей о том, как можно сделать свой лайткуб из картонной коробки. И у меня был такой куб.
Сначала мне все в нем нравилось, но постепенно стали появляться минусы: быстрота изготовления негативно сказывается на продолжительности жизни, периодически не хватает размеров лайтбокса (мой прошлый «куб» имел размеры 35*35*40 см), картонный скелет легко повредить при замене «рассеивателей» и предметного стола (они рвутся и пачкаются со временем).
Поэтому решил заменить скелет «куба» на более прочный, и сделать его таких размеров, каких мне надо, а не отталкиваться от того, какого размера у меня есть картонные коробки.
Конструкция
Идея сделать скелет из короба для проводов пришла спонтанно во время посещения хозяйственного магазина — для своего «куба» я взял 3 палки по 2 метра в длину.
Для создания лайтбокса понадобится
• Ватман
• Короба для проводов
• Гофрированная бумага
• Двухсторонний скотч
• Маленькие гвоздики
20р, Гофрированная бумага
На фотографии в начале прошлого раздела можно увидеть 2 лампы и 2 светильника. У меня до этого был настольный светильник и светильник «прищепка», но у них были разные цоколи. Решил докупить вторую такую же «прищепку» и взять две энергосберегающие лампы – 23W (соответствует 160W для лампы накаливания), 4200К (яркий белый свет). Такие 2 светильника и 2 лампы обойдутся в 800-900р.
Сборка
Сразу оговорюсь – я не претендую на оптимальность конструкции, потому что как соединять грани «куба» между собой я решал «на ходу». Но то, что получилось в итоге, мне понравилось, и я решил об этом рассказать.
Короба были разрезаны следующим образом: 4 штуки по 50cм и 8 штук по 35см (именно такие размеры лайтбокса мне показались оптимальными для использования/хранения):
Для того чтобы соединить «палки» между собой, я использовал особенность коробов – полую конструкцию:
А места соединения закреплял небольшими гвоздиками:
Сначала сделал боковые стороны:
А потом снова использовал полую конструкцию коробов для сооружения основания:
Спустя некоторое время был готов скелет:
Когда я скрепил все палки вместе и получил параллелепипед, то решил добавить на заднюю стенку две растяжки для увеличения прочности и устойчивости. Растяжки делал из оставшихся частей. Также добавил одну «рейку» на дно, чтобы будущее днище из картона не провисало вниз.
После приделал днище и наклеил ватман (чтобы получился «предметный стол»):
В конце приклеил по бокам и сверху лайтбокса гофрированную бумагу:
Все, лайтбокс готов. При своих больших размерах лайтбокс получился прочным – не шатается и не прогибается. Ради эксперимента пару раз «случайно» уронил конструкцию со стола – скелет остался цел, даже бумагу с боковых сторон не пришлось менять. А раз при таких размерах лайтбокс получился вполне прочный, то будь он поменьше, скажем 20х20х20см – то он был бы еще прочнее. И такой фотобокс легко сделать тех размеров, каких вам захочется.
Результат
«Рабочее» состояние лайтбокса:
Купленные лампочки заметно «вылезают» из корпуса светильника, потому я сделал «продолжение» корпуса из бумаги, для лучшей фокусировки света на лайтбоксе, а также для предотвращения попадания прямых лучей в глаза.
Примеры полученных фотографий
Уже пару лет моим фотоаппаратом является Nikon Coolpix L110 (бюджетный гиперзум). Все фотки делались с помощью него.
Итого
Получился недорогой, но прочный лайтбокс, цена которого всего лишь 300р. Надеюсь, кому-нибудь эта статья пригодится.
Источник
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. Код приложения здесь описываться не будет, но ссылка на репозиторий представлена в заключении.
Алгоритм работы с кубом
Ввиду того, что мы не имеем доступ сразу ко всем светодиодам, мы не можем их зажечь все сразу. Вместо этого, нам надо зажигать их послойно.
Алгоритм таков:
- Текущий слой равен 0.
- Заносим в регистры маску для текущего слоя
- Закрываем транзистор для предыдущего слоя. Если текущий слой нулевой — то предыдущий для него — 7й слой
- Защелкиваем значения в регистры. Значение появляются на выходах регистров
- Открываем транзистор для текущего слоя. Ура, один слой светится!
- Текущий слой ++. goto: 2
Итого, данный алгоритм повторяется довольно быстро, что и даёт нам иллюзию того, что все светодиоды светятся одновременно (но мы то знаем что это не так). Маски хранятся в массиве 64х8 байт.
Написание модов
Данные моды появлялись не в том порядке, в каком они будут представлены здесь, так что прошу не наказывать за их нумерацию в коде. Начнём с самого простого: зажечь все светодиоды.
“Залипательный” мод
Идея: горят всего два слоя нулевой и седьмой, причём они являются инверсными по отношению друг к другу (светодиод в позиции Х горит только на одном из слоёв). Рандомно выбирается позиция (почему-то все пытаются найти алгоритм выбора позиции), и светодиод в данной позиции “переползает” на верхний слой, если он светился на нижнем слое, и соответственно на нижний, если светился на верхнем.
Как это выглядит в жизни:
“Ещё один залипательный мод”
Данный мод похож на предыдущий, за исключением, что горит не слой, а грань, и огоньки с данной грани, один за одним перемещаются на противоположную, а потом обратно.
Куб внутри куба
Идея: зажигать внутри куба светодиоды ввиде граней куба размерами от 1 до 8 светодиодов и обратно.
Как это выглядит:
И наконец змейка
Из особенностей реализации змейки, стоит отметить, что нету никаких ограничений на поле, и соответственно уходя за пределы куба с одной стороны, появляешься с другой. Проиграть можно, только если врезаться в себя же (по правде говоря, выиграть нельзя).
Так же стоит отдельно рассказать про управление:
В случае двумерной реализации данной игры никаких вопросов с управлением не возникает: четыре кнопки и всё очевидно. В случае трёхмерной реализации возникает несколько вариантов управления:
1. 6 кнопок. При таком варианте кнопке соответствует свое направление движения: для кнопок вверх и вниз всё очевидно, а остальные кнопки можно “привязать” к сторонам света, при нажатии кнопки “влево” вектор движения всегда меняется “на запад” и т.д. При таком варианте возникают ситуации, когда змейка движется “на восток” и и мы нажимает “на запад”. Т.к. змейка не может развернуться на 180 градусов, приходится такие случаи обрабатывать отдельно.
2. 4 кнопки (Up Down Left Right). Действия данных кнопок аналогичны действиям в двумерной реализации, за исключением того, что все изменения берутся относительно текущего направления вектора движения. Поясню на примере: при движении в горизонтальной плоскости, нажимая кнопку “Up”, мы переходим в вертикальную плоскость. При движении в вертикальной плоскости нажимая “Up”, мы переходим к движению в горизонтальной плоскости против направления оси Х, для “Down” — по направлению оси Х и т.д.
Безусловно, оба варианта имеют право на существование (было бы интересно узнать другие варианты управления). Для нашего проекта мы выбрали второй.
Результат работы программы:
Ссылки на исходный код прошивки куба и приложение для телефона:
Источник