Представляю проект 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
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
IC1 | МК AVR 8-бит | ATmega16 | 1 | Поиск в магазине Отрон | ||
IC2 | ИС RS-232 интерфейса | MAX232 | 1 | Поиск в магазине Отрон | ||
IC3 | Линейный регулятор | LM7805CT | 1 | 7805T | Поиск в магазине Отрон | |
Q2-Q5 | Биполярный транзистор | BC338 | 4 | КТ645, КТ646, КТ660Б | Поиск в магазине Отрон | |
LED1, LED2 | Светодиод | АЛ307В | 1 | Поиск в магазине Отрон | ||
Светодиод | АЛ307Б | 1 | Поиск в магазине Отрон | |||
Светодиод | 64 | Куб | Поиск в магазине Отрон | |||
C1-C5 | Конденсатор | 0.1 мкФ | 6 | Поиск в магазине Отрон | ||
C9 | Электролитический конденсатор | 10 мкФ | 1 | Поиск в магазине Отрон | ||
C10 | Электролитический конденсатор | 1000 мкФ | 1 | Поиск в магазине Отрон | ||
Конденсатор | 22 пФ | 2 | Керамика | Поиск в магазине Отрон | ||
R1-R16 | Резистор | 100-400 Ом | 16 | 12 мА на один светодиод | Поиск в магазине Отрон | |
R17 | Резистор | 10 кОм | 1 | Поиск в магазине Отрон | ||
R18-R21 | Резистор | 2.2 кОм | 4 | Поиск в магазине Отрон | ||
Резистор | 470 Ом | 2 | Поиск в магазине Отрон | |||
Кварцевый резонатор | 14.7456 MHz | 1 | Поиск в магазине Отрон | |||
SB1-SB2 | Кнопка | PB-22E | 2 | Поиск в магазине Отрон | ||
X1 | Гнездо | DB 9F | 1 | Поиск в магазине Отрон | ||
DIP панель | SCL-40 | 1 | Для ATmega16 | Поиск в магазине Отрон | ||
DIP панель | SCS-16 | 1 | Поиск в магазине Отрон | |||
Скачать список элементов (PDF)
Прикрепленные файлы:
- 4x4x4_ledcube-0_2.zip (185 Кб)
Комментарии (135) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
Две микрухи запорол буду восстанавливать
В прошивке 13 эффектов + задействована кнопка подключена к Pinb.3. Долгое нажатия-смена между мануальным и автоматическим переключениям эффектов, короткое-смена эффектов. Фьюзы как в статье.
Теперь делаю 8х8х8