- •Введение Как сделатьсветодиодный 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. Отладка аппаратных средств: сгоревшие светодиоды
62. Программное обеспечение.Эффект-6, летучая строка
Мы загрузили 8x5 растровый шрифт, который мы ранее использовали с графическим ЖК-монитором в память EEPROM и создали некоторые функции, которые взяли случайную работу ASCII в качестве аргумента и возвратили битовый массив символов.
Функция stringfly2 берет любую последовательность ASCII и показывает ее как символы, летящие через куб.
Это начинается, помещая характер позади куба, затем использует изменение () функция, чтобы переместить содержание куба к Вам, заставляя текст полететь.
63. Программное обеспечение. Rs 232 входа
Для создания самых удивительных эффектов, мы используем настольный компьютер. Компьютеры могут делать вычисления с плавающей точкой намного быстрее, чем микроконтроллер. И вамне придется перепрограммировать микро контроллер для каждого эффекта.
Интерфейс USART в ATmega настроен на работу со скоростью 38400 бод с одним стоп-битом, без контроля чётности. Каждый байт, который передаёт линия, имеет стартовый бит и стоп-бит, так что для передачи 8-ми бит, уходит 10 бит. Это дает нам полосу пропускания 3840 байт в секунду. Буфер куба составляет 64 байта. Синхронизирующие байты составляют структуру 2 байта за куб. В 38400 бод мы в состоянии послать приблизительно 58 кадров в секунду. Более чем достаточно для плавных мультипликаций.
0xff используется в качестве управляющего символа и ставит функцию rs232 в режим выхода. Если следующий байт - 0x00, координаты для буфера вернулись 0,0. Если следующий байт - 0xff, он добавлен к буферу. Чтобы послать 0xff, Вы посылаете его дважды.
64. Программное обеспечение пк. Введение
Куб просто получает двоичные данные через RS232. Эти данные могли легко быть произведены многими различными языками программирования, как pythonили perl.
Мы приняли решение использовать C для программного обеспечения ПК, так как программное обеспечение микроконтроллера написано в C.
65. Программное обеспечение пк.Обновление темыкуба
В cube.c у нас есть функция, называется cube_push (). Она берет 64 байтовых массива и отправляет его по последовательной линии к светодиодному кубу.
Она так же работает с форматированием, посылая каждый байт 0xff дважды. 0xff и 0x00 будет передан первым, чтобы сброситьвнутренние светодиодного куба х и у счётчики.
В main.c у нас есть функция cube_updater (). Эта функция запускается в отдельном потоке с использованием pthread_create ().
Первая попытка обновить тему, оказалось, создала некоторое мерцание в анимации. После некоторой отладки мы узнали, что кадрыбыли переданы прежде, чем они были полностью получены функциями эффекта.
Мы создаем двойной буфер и синхронизируем два буфера на момент времени, когда эффект функции закончил рисовать рамку. К счастью все эффекты функции используют delay_ms () для задержки между кадрами.
66. Программное обеспечение пк. Эффект 1, рябь
Это - первый эффект, который мы сделали для программного обеспечения ПК, и мы думаем, что это оказалось очень хорошим.
Все функции эффектовна микроконтроллередля создания эффектов используют операторы if(). Эффекты программного обеспеченияПК построены немного по-другому. Мы используем много sin(),cos () и другие математические функции. Большинство координат вычислены как координаты с плавающей точкой и приводятся к целым прежде, чем эффект будет нарисован на кубе.
Как это работает:
Счётчик итераций цикла.
Цикл проходит через все 64 координаты x и y.
Вычисление расстояния между центром куба и координатой x/y.
Координата z вычислена с sin () в зависимости от расстояния от центра + счётчик итераций. В результате, синусоидальная волна перемещается из центра как итеративные увеличения счётчика.
