Светодиодный куб 8x8x8 своими руками
30.10.2018 обновлён архив проекта, добавлена новая версия!
ОПИСАНИЕ
- Большой светодиодный куб на Arduino и сдвиговых регистрах. 512 светодиодов, 10 режимов анимации (можете дописать свои!).
- Куб имеет две кнопки, обеспечивающие переключение режимов вперёд/назад, удержание кнопки увеличивает и уменьшает скорость текущей анимации.
- Проект собран на печатной плате, что позволило уменьшить трудозатраты на соединение компонентов, а также уместить всё в компактный корпус!
- Куб использует динамическую индикацию (послойная отрисовка) и потребляет всего около 0.5 А, когда светятся все 512 светодиодов.
- Долгий и интересный процесс пайки самого куба показан на видео ниже. Использованы длинноногие светодиоды, куб спаян только их ногами. Края соединены и усилены железной проволокой (10 линий).
- Добавлены игры: 3D змейка и туннель
ВИДЕО
КОМПОНЕНТЫ
Каталоги ссылок на Алиэкспресс на этом сайте:
Стараюсь оставлять ссылки только на проверенные крупные магазины, из которых заказываю сам. Также по первые ссылки ведут по возможности на минимальное количество магазинов, чтобы минимально платить за доставку. Если какие-то ссылки не работают, можно поискать аналогичную железку в каталоге Ардуино модулей . Также проект можно попробовать собрать из компонентов моего набора GyverKIT .
Светодиодный куб 4x4x4
Представляю проект 3D светодиодного куба (LED Cube) с матрицей 4х4х4.
64 светодиода образуют куб со сторонами 4х4х4, который управляется микроконтроллером Atmel Atmega16. Каждый светодиод имеет свой виртуальный адрес и может управляться с микроконтроллера индивидуально, позволяя таким образом добиваться потрясающих эффектов.
Видео работы куба смотрите ниже:
Шаг 1. Что нам понадобится?
Первое, это терпение спаять все 64 светодиода вместе 😉
Знания, которые вам понадобятся:
— основы электроники
— умение хорошо паять
— знание программирования микроконтроллеров (если не уверены, то смотрите видеокурс по микроконтроллерам)
Список радиодеталей:
Макетная плата (ну или вытравленная печатная)
Микроконтроллер Atmel AVR Atmega16
Программатор Atmega16
64 светодиода
2 светодиода состояния. Я использовал красный и зеленый. (опционально)
Микросхема Max232 rs-232 или подобная
16х резисторов для светодиодов. (100-400 Ом)
2x резистора по 470 Ом для светодиодов состояния
1x резистор 10кОм
4x резистор 2.2кОм
4x NPN транзистора BC338 (отеч. аналоги КТ645, КТ646, КТ660Б) или другой выдерживающий ток до 250 мА
1x 10мкФ конденсатор
1x 1000мкФ конденсатор
6x 0.1мкФ керамический конденсатор
2x 22пФ керамический конденсатор
1x кварц 14.7456 MHz
2x кнопки
Выключатель питания
Разъем питания 12В
Разъем питания 5В
Шаг 2. Мультиплексирование
Как управлять 64 светодиодами, если нет столько выводов управления? Мультиплексирование!
Если к аноду каждого светодиода присоединить вывод управления, то это будет непрактично, да и выглядеть будет не очень красиво. Один из способов побороть эту проблему — это разделить куб на 4 слоя, в каждом из которых будет 4х4=16 светодиодов.

У светодиодов в вертикальных колонках общий анод (+)
У светодиодов в горизонтальных плоскостях общий катод (-)

Теперь, если нужно засветить светодиод в верхнем левом углу сзади (0,0,3), необходимо подать GND(-) к верхнему слою и Vcc(+) к колонке в левом углу куба.
Если нужно засветить один светодиод или полностью весь слой, то это работает отлично.
Однако, если нужно засветить нижний правый угол спереди (3,3,0), возникают проблемы. Когда я подал GND на нижний слой и Vcc к передней левой колонке, я также засветил верхний правый светодиод спереди (3,3,3) и нижний левый светодиод сзади (0,0,0). Эта проблему казалось бы не побороть, без использования 64 индивидуальных линий управления светодиодами.
Но можно одновременно засвечивать только один слой и делать это очень быстро, чтобы глаз не успел разглядеть время переключения между слоями. Этот эффект называется Persistence Of Vision
Каждый слой — это изображение из 4х4=16 точек (светодиодов) и если мы будем быстро переключать слои, то мы получим 4х4х4 3D куб!
Шаг 3. Конструирование шаблона для куба
Спаять обьемный куб из 64 светодиодов без каких-либо приспособлений будет сложно. Поэтому мы облегчим нашу задачу воспользовавшись инструментом и приспособлениями:

Для начала, изготовим шаблон 4х4 из дерева.

Т.к. я не хотел сильно замарачиваться с решеткой куба, то решил по возможности использовать выводы светодиодов как основу решетки куба. Дистанция линий на сетке шаблона была выбрана исходя из длины ножек светодиодов. У меня получилось 25мм. Т.о. при такой сетке, нет необходимости что-либо наращивать или обрезать.

Итак, последовательность действий:
— найти и вырезать кусок фанеры
— нарисовать на ней решетку 4х4
— сделать углубления на всех пересечениях шилом или другим инструментом
— найти сверло, чтобы светодиод уверенно стоял в отверстии, и в то же время в последствии вы его могли легко вытащить
— просверлить 16 отверстий в шаблоне
Шаблон для куба готов!
Шаг 4. Конструирование светодиодных слоев


Итак, нам необходимо спаять 4 слоя светодиодов по 16 в каждом, а затем все 4 слоя спаять в один обьемный куб.


Процесс изготовления одного слоя (4х4) из светодиодов следующий:
— вставьте светодиоды в отверстия по 2-м дальним сторонам от вас и спаяйте их между собой
— вставьте светодиоды для следующего ряда, и также их спаяйте
— заполните так всю матрицу из 16 шт
— спереди, где нет соединения, добавьте связующие пересечения
— повторить процедуру 3 раза для оставшихся слоев.



Шаг 5. Конструирование куба
Все четыре слоя готовы, осталось их спаять вместе в один куб.

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

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

Повторите процедуру для оставшихся 2-х слоев.
Шаг 6. Подбор токоограничивающих резисторов

Ток микроконтроллера AVR в сумме не может превышать 200 мА. Т.о. 200/16 дает нам 12 мА на один светодиод.
Я использовал резисторы номиналом 220 Ом. Получилось как раз 12 мА на один светодиод.
Шаг 7. Схемотехника

Схема контроллера для управления кубом, показана на рисунке выше.
RS-232 опционален и может быть опущен (микросхема IC2).




Шаг 8. Присоединение МК к светодиодному кубу
Обьяснять я думаю не надо, все показано на картинках.




Шаг 9. Программа, компиляция и прошивка МК
Наш куб готов, осталась только программная часть.
Вы можете использовать мою программу, написать сами ее, либо дополнить мою программу дополнительными эффектами.
Если вы захотите использовать ATMega32 вместо ATMega16, то необходимо будет поменять настройки в makefile и перекомпилировать.
Для прошивки МК я использовал avrdude и программатор USBTinyISP.
Я работаю под Ubuntu. Подробнее о прошивки микроконтроллеров под эту ОС вы можете почитать в этих статьях: программирование МК AVR в ОС Ubuntu и программирование МК AVR в ОС Ubuntu. Часть 2 (GUI)
Итак, сперва нужно соединение программатора с микроконтроллером. Подсоедините программатор к плате куба и ПК.
Команда: avrdude -c usbtiny -p m16
Далее, заливаем прошивку командой: avrdude -c usbtiny -p m16 -U flash:w:main.hex
Наш куб должен будет перезапуститься и стартовать. МК запуститься на очень низкой частоте 1 МГц используя встроенный тактовый генератор. Некоторые LED работать не будут, потому что порты GPIO заняты под JTAG.
Чтобы подключить внешний тактовый генератор и выключить JTAG, нужно перезаписать фьюзы:
введите: avrdude -c usbtiny -p m16 -U lfuse:w:0xef:m
затем: avrdude -c usbtiny -p m16 -U hfuse:w:0xc9:m
Все, после этого, наш светодиодный куб должен запуститься в нормальном режиме!
Ниже вы можете скачать прошивку, исходники и печатную плату в формате LAY
How to Make a 4x4x4 LED Cube Using Arduino
In this tutorial I’ll show you how to make a 4x4x4 LED cube.
The cube has 64 blue LEDs which make up it’s 4 layers(positives) and 16 columns(negatives).
I programed code(sketches) for the Arduino Uno to control the individual LEDs to display patterns for this captivating desktop light show.
Thank You NextPCB:
This project is successfully completed because of the help and support from NextPCB. Guys if you have a PCB project, please visit their website and get exciting discounts and coupons.
See more info about PCB Assembly Capabilities: https://www.nextpcb.com/PCB Assembly
Here are mid-summer sales at NextPCB :
1. Up to 30% off for the PCB orders
2. Up to 20% off for the PCBA orders
Don’t skip this wonderful electronics project because it offers invaluable opportunities for electronic construction and Arduino coding.
visit My website DiY Projects Lab having more than 25 awesome detailed projects
1. Electronics
- Arduino Nano
- 64- 3mm blue LEDs
- Female Headers
- Rainbow Ribbon cable
- 100Ω Resistor
- (OPTIONAL) general purpose prototype board
- PCBs
2. Tools
- Soldering iron.
- Soldering wire.
- Scissors.
Step 1: Watch the Video!
Step 2: Check All the Leds
Take the all 64 LEDs and test them to ensure that they all work using a button cell battery
Before we start making our LED cube and solder everything, it’s a good idea to test the LEDs, our LEDs operate at 3.3V, 20mA, we could easily test them using any 3.3v battery, in my case, I used a Lithium-Ion battery to test the LEDs.
- the Longer lead is Positive and shorter one is Negative
- DON’T! reverse bias LED, you might damage it.
- DON’T use 5V power supply to test LED.
Making the LED Jig jag
- Find a piece of wood large enough to make a 4×4 grid of 2, 5cm on.
- Draw up a 4×4 grid of lines.
- Make dents in all the intersects with a center punch.
- Find a drill bit that makes holes small enough so that the led will stay firmly in place, and big enough so that the led can easily be pulled out (without bending the wires..).
- Drill the 16 holes.
- Your led cube template is done.
Insert a LED into the individual holes to test the fit. (as you can see in picture)
Now that you are geared to solder, follow these steps to solder column layer.
- take the template from the last step.
- start soldering with Negative leads.
- complete one row at time.
- solder the positive leads.
- remove the Column from Template.
- Repeat this process for rest 4 Column Layers
Making the Cube Layers
We make the cube in 4 layers of 4×4 leds, then solder them together. Create a layer:
- Put in the LEDs along the back and along one side, and solder them together
- Insert another row of LEDs and solder them together. Do one row at a time to leave place for the soldering iron!
- Repeat the above step 2 more times.
- add cross bracing in the front where the led rows are not connected.
- Repeat 4 times.
Making the Cube, Attach the Layers.
Consider a corner LED and that is your reference. Corner towards right becomes your ‘x’ axis and the other becomes ‘y’axis.
I have named the pins and terminals after connecting on PCB.(Refer to the image)
Solder each wire to the terminal strip and hot glue it to avoid the breakage of solder joints.
I made a Small simple wooden casing to hide the wiring. Cut required size ply-wood and hot glue them to form a Box.
The controller.
Guys if you have a PCB project, please visit their website and get exciting discounts and coupons.
Only 0$ for 5–10pcs PCB Prototypes https://www.nextpcb.com…
The following is the connection details. Example: Pin Name (1, 1) goes to Digital pin 13 on Arduino.
[(x, y)-Pin]
Layers [Layer-Pin]
The Code!
I found this sketch online, then I edited it to work for my LED cube.
Soon, I’ll have my own sketch that will be posted right here, on this i’ble. But for now, if you have any improvements or add-ons to this current sketch, let me know so I can keep it updated:)
Note: The code uploaded here is not Designed by me.
Download the Code and open it in Arduino software.
Connect the arduino to your PC USB port.
Select the Correct Port and your Arduino Board.
Upload the code and your done!
You can power your Arduino using a mobile phone charger.
Working Video and References
Congragulations!!
You made yourself a Cool looking LED CUBE to place on a corner of your Desk.
Светодиодный куб 4х4х4 своими руками
1) Для начала соберем все необходимые элементы:
а) Нам понадобятся светодиоды, вы можете выбрать любой яркости и любого цвета какой захотите, лично я выбрал светодиоды синие круглые 5 мм, стоимость одного светодиода обошлась для меня в 5 рублей. Всего нам понадобятся 64 светодиода, я взял 70, т.к. бывает, что некоторые светодиоды могут быть бракованными или в процессе эксплуатации или проверки банально сгореть, поэтому запасные будут не лишними.
б) Резисторы на 680 Ом. Всего нам нужно 4 штуки.
в) Если светодиоды — это будет наше тело, то Arduino это наш мозг, а без мозга тело не работает. А именно нам нужен микроконтроллер Arduino Nano 3.0. Платить почти тысячу рублей мне как то не хотелось, поэтому я заказал на AliExpress всего за 150 рублей.
г) Конечно же питание и тумблер. В качестве питания нам понадобится батарейка типа Крон на 12 Вольт. А клемму, которую можно увидеть слева от батарейки на фотографии, я в процессе заменил на отсек для кроны, отсек для кроны стоит 50 рублей.
д) В качестве кнопки вкл/выкл я использовал тумблер, который стоит около 20 рублей, только выбирайте тумблер или обычные кнопки (например, такие какие у вас стоят на сетевом фильтре) так чтобы его рабочее напряжение не превышало напряжение батарейки, то есть 12 Вольт.
е) Ну и конечно же нам понадобятся провода, для куба я приобрел монтажный провод с сечением 0.14 кв.мм, лично мне хватило 3 метра и даже большой кусок еще остался. Метр такого провода стоит 10 рублей.
ж) Корпус. Корпус необходимо выбирать исходя из размеров куба и проводов которые будут торчать снизу куба. В качестве корпуса я взял пластмассовую баночку, по диаметру она идеально подошла к кубу, а высота баночки 8 см.Необязательно искать готовый корпус, корпус при желании можно сделать и самому.

2) Когда вы собрали всё необходимое, можно приступать к сбору. Начнем собирать куб по слоям.

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

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


в) Итак, нам необходимо спаять 4 слоя светодиодов по 16 в каждом, а затем все 4 слоя спаять в один объёмный куб. Ставим первые 16 светодиодов в проделанные отверстия и отгибаем наши плюса так, чтобы все светодиоды соединились, как показано на фото ниже. На всех слоях ваши минуса(ножки торчащие вверх) должны находится на все слоях в одинаковом положении, чтобы их можно было слои соединить между собой. Важно: по краю в двух местах у вас не получится соединить(на фото эти места около двух черточек), т.к. ножек светодиодов не хватает, поэтому если у вас есть лишние светодиоды, то можете оторвать у них ножки и припаять в эти места.

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

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

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

д) Когда все 4 слоя будут собраны, мы их должны объединить в один. Все что нам тут нужно это соединить минуса которые мы специально отогнули в пункте 2.г.

3) Примемся за наши мозги. Нам нужно записать алгоритм работы нашего куба в контроллер, с помощью программы Arduino, найти и скачать ее вы можете без проблем в интернете. Если вы программист то думаю вы сможете сами придумать алгоритм работы вашего куба, ну а для тех кто не знает как программировать, для вас я выложу готовый скетч, все что вам понадобится это открыть его и делать все как на скриншотах:
а) Подсоединяете Arduino Nano через микро USB к компьютеру.

б) Открываете скачанный скетч и у вас должна запуститься программа Ардуино. Затем выбираете вкладку инструменты-плата-Arduino Nano.

в) Затем там же инструменты-процессор-ATmega 328.

г) И выбираете порт, у меня это был СОМ4, у вас может быть другой, но не 1-ый!

д) И финальный штрих, скетч-загрузка. После завершения загрузки можете смело вынимать Arduino Nano из USB.

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


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

б) Теперь нам необходимо соединить плюса, для этого используем 4 резистора. Ранее я говорил что в корпусе необходимо сделать окошко для проводов, вот через это окно у нас будут соединены слои как показано на рисунке.
Если смотреть по оси Y, то слой 4(верхний) должен присоединиться к контакту А0, 3 к А1 , 2 к А2, 1 к А3.

в) Теперь осталось припаять питание. Плюс батарейки нужно припаять к контакту UIN, а минус к GND. Эти контакты должны находиться на той же стороне что и контакты А0-А7. Тумблер же я припаял между UIN и плюсом батарейки.

г) Установите все в корпус.

5) Запускайте и наслаждайтесь.

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