- •Введение Как сделатьсветодиодный 3d Куб
- •1.Требующиеся навыки
- •2. Список компонентов
- •3. Заказ компонентов
- •4. Что является диодным кубом
- •5. Как работает светодиодный куб
- •6.Анатомия светодиодного куба
- •7. Размер куба и требующиеся порты ввода-вывода
- •8. Расширение количества портов io, за счет мультиплексирования
- •9. Расширение порта I/o, альтернативное решение
- •10. Требования к источнику питания
- •11.Создание или покупка источника питания
- •13. Выбор светодиодов
- •19.Требованияк пайке
- •20.Проверка светодиодов
- •21. Пайка слоёв
- •Начните с верхнего ряда.
- •22. Проверка площадок
- •23. Выравнивание контактов
- •24. Подгибание контактов
- •25. Спаивание слоев вместе
- •26. Создание корпуса
- •27. Установка куба
- •28. Элементы катода
- •29. Подключение кабеля
- •30.Сборка контроллера:расположение
- •31. Тактовая частота
- •32. Советы по пайке платы
- •33. Питание клеммы и фильтрующих конденсаторов
- •34. Гнезда ic, резисторы и разъёмы
- •35.Линии питания и мощность ic
- •37. Адрес селектора
- •38. Плата avr
- •39.Массив транзисторов
- •40. Кнопки и состояние светодиодов
- •42. Сделайте rs 232 кабелями
- •43.Подключение платы
- •44.Подключение куба
- •45. Программирование avr: Установка битов плавкого предохранителя
- •46. Программирование avr с тестовым кодом
- •47. Проверьте куб
- •48. Программирование avr с реальным кодом
- •49. Программное обеспечение. Введение
- •50. Программное обеспечение. Как это работает
- •51. Программное обеспечение. Инициализация портов ввода-вывода
- •52. Программное обеспечение.Метод генерации случайных чисел
- •53. Программное обеспечение. Прерывание
- •54. Программное обеспечение. Простые 3d-эффекты
- •55. Программное обеспечение. Действительное расположение куба
- •56. Программное обеспечение. Управлениеэффектами
- •5.Программное обеспечение. Эффект 1-дождь
- •58. Программное обеспечение. Эффект 2- самолет
- •59. Программное обеспечение. Эффект 3-отправление воксели в случайный z
- •60. Программное обеспечение. Эффект 4-рост и сжимание коробки
- •61. Программное обеспечение. Эффект-5, осивверх-вниз, приостановка ранда
- •62. Программное обеспечение.Эффект-6, летучая строка
- •63. Программное обеспечение. Rs 232 входа
- •64. Программное обеспечение пк. Введение
- •65. Программное обеспечение пк.Обновление темыкуба
- •66. Программное обеспечение пк. Эффект 1, рябь
- •67. Программное обеспечение pc: Эффект 2, sidewaves
- •68. Программное обеспечение pc: Эффект 3, фейерверк
- •69. Программное обеспечение pc: Эффект 4, Игра в жизнь 3d
- •70. Управляйте кубом на Arduino
- •71. Отладка аппаратных средств: сгоревшие светодиоды
46. Программирование avr с тестовым кодом
Мы подготовили простую тестовую программу, чтобы проверить работу светодиодов и правильность их подключения.
Вы можете загрузить прошивку test.hex в этом шаге, или загрузить исходный код и скомпилировать его самостоятельно.
Как в предыдущем шаге, мы используем avrdude для программирования:
avrdude -c usbtiny -p m32 -B 1 -U flash:w:test.hex
-c указывает, что мы используем USBtinyISP от Ladyada
M32-P указывает, что устройство представляет собой ATmega32-B
1 говорит AVRDUDE работать на более высокой, чем по умолчанию скоростью speed.
-Uflash:w:test.hex указывает, что мы работаем на флэш-памяти, в режиме записи, с файлом test.hex
47. Проверьте куб
Тест, который Вы загрузили в предыдущем шаге, позволит убедиться, что все сделано правильно.
Работа начнется с рисования плоскости вдоль одной оси и перемещением по всем 8 позициям этой оси.Тестовый код пересекает плоскость, проходя через все три оси. После этого, загорятся светодиоды в слое один за другим, начиная с нижнего слоя.
Если какой-либо из слоев или столбцов, светится в неправильном порядке, значит, что-то сделали не правильно.
48. Программирование avr с реальным кодом
Программирование ATmega с реальной прошивкой.
Процесс такой же, как и в предыдущем шаге. Но Вы должны программировать память EEPROM.
Прошивки программируется с использованием процедуры тест-кода.
Прошивка:
avrdude -c usbtiny -p m32 -B 1 -U flash:w:main.hex
EEPROM:
avrdude -c usbtiny -p m32 -B 1 -U eeprom:w:main.eep
- U eeprom:w:main.eep указывает, что мы получили доступ к памяти EEPROM, в режиме записи. AVR-GCC помещает все данные в EEPROM main.eep
При загрузке бинарных файлов, необходимо изменить имена файлов в командах к названию файлов, которые загрузили. Если Вы собираете из источника, имя - main.hex и main.eep.
49. Программное обеспечение. Введение
Программное обеспечение написано в C и собрано с общедоступным компилятором avr-gcc. Это - главная причина, по которой мы используем Atmel AVR микроконтроллеры. Ряд PIC от Microchip - также хороший выбор, но компилятор C стоит очень дорого, а в бесплатных версиях есть ограничения на размер кода.
Программное обеспечение на AVR состоит из двух главных компонентов: подпрограммы прерывания работы куба и кода для создания анимаций.
Создавать анимации в монохромном режиме при низком разрешении очень трудно.
Если бы дисплей имел более высокое разрешение и больше цветов, мы могли бы использовать функции sin() и cos(), чтобы сделать необычную усладу для глаз. С двумя цветами и низким разрешением, мы должны использовать многое из if() и for(), чтобы сделать что-то существенное.
В следующих нескольких шагах мы расскажем вам, как сделать работающие анимации. Нашей целью является дать вам знания того, как вы можете самостоятельно делать анимация и вдохновить вас на создание собственных!
50. Программное обеспечение. Как это работает
Программное обеспечение состоит из прерываний и эффектов.
Связь между ними происходит через массив вокселей (воксел - аналог пикселов для трехмёрного пространства). У этого массива есть немного вокселей для каждого светодиода в светодиодном кубе. Мы будем называть это как множество куба или буфер куба.
Массив куба состоит из 8x8 байтов. Так как каждый байт составляет 8 битов, это дает нам буфер, который равняется 8 вокселей по ширине, 8 вокселей по высоте и 8 вокселей по глубине (1 байт глубиной).
Прерывание читает из массива куба в данных интервалах и показывает информацию о светодиодном кубе.
Мы не использовали синхронизацию или двойную буферизацию, так как есть только один производитель (или эффекты, или вход от RS232) и один потребитель (код прерывания, который обновляет куб). Это означает, что некоторые воксели могли быть из следующего или предыдущего "кадра", но это не проблема, так как частота кадров очень высока.
Работая с микроконтроллерами важен размер кода. Чтобы сохранить размер кода и сделать код более читаемым, мы постарались написать многоразовый код так часто, насколько это возможно.
