- •Введение Как сделатьсветодиодный 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. Отладка аппаратных средств: сгоревшие светодиоды
54. Программное обеспечение. Простые 3d-эффекты
Мы сделали небольшую библиотеку с простыми 3D-эффектами. Есть три причины для этого:
След памяти
Самый легкий способ обратиться к каждому вокселю через трехмерное буферное множество. Как это:
неподписанный куб случайной работы [x] [y] [z]; (случайная работа означает - 8-битное число, неподписанное – диапазон (от 0 до 255), подписанный-128 к +127),
В пределах этого массива каждый воксель был представлен целым числом, где 0 выключено, и 1включено. Вы можете использовать все целые числа и иметь 256 различных уровней яркости. Мы попробовали это сначала, но оказалось, что у наших светодиодов с eBay были очень маленькие изменения в яркости относительно рабочего цикла. Эффект не был достаточно примечателен, что было проблемой. Мы решили использовать монохромное решения.
С монохромным кубом и трехмерным буфером, мы потратили бы впустую 7/8 используемой памяти. Самый маленький объем памяти, который Вы можете ассигновать, составляет один байт (8 бит), и Вы только нуждаетесь в 1 бите, чтобы включать и выключать. 7 бит для каждого вокселя были бы потрачены впустую. 512 * (7/8) = 448 байтампамяти потраченным впустую. Памяти на микроконтроллере недостаточно, это - не оптимальное решение.
Вместо этого мы создали буфер, который похож на это:
неподписанный куб случайной работы [z] [y];
В этом буфере X осей представленных в пределах каждого из байтов в буферном массиве. Это может сильно запутать при работе, по этой причине мы создали библиотеки из графических функций низкого уровня:
Удобочитаемость кода
Урегулирование вокселей с координатами x=4, y=3, z=5 потребует следующего кода:
куб [5] [3] | = (0x01 <<4);
В draw.c мы сделали связку функций, которая берет x, y, z как аргументы и делает это удобство для Вас.
draw.c содержит еще много функций. Взгляните в draw.c и ознакомьтесь с различными функциями.
Повторно используемый код и размер кода
Как Вы можете видеть в draw.c, некоторые функции довольно большие. Строки, которые много раз кодируют внутренние функции эффектов, заняли бы много памяти программы. У нас есть только 32 КБ, для работы. Скучныйписать один и тот же код много раз.
55. Программное обеспечение. Действительное расположение куба
С этого времени родное положение светодиодного куба будет с кабелями, выходящими налево.
В этой ориентации Ось Y идет слева направо. X осей идут по всей длине. Ось Z идет от основания до вершины.
Координаты в этой инструкции всегда представляются как x, y, z.
Положение 0,0,0 - нижний левый передний угол. Положение 7,7,7 - верхний правый дальний угол.
Почему мы использовали Ось Y для левого/правильного и X для спины/фронта? Разве это не должно быть наоборот? Да, мы думаем так также. Мы проектировали светодиодный куб, который будет рассматриваться с "фронта" с кабелями, выходящими со спины. Это было довольно непрактично, имея светодиодный куб на столе, было более практично, чтобы иметь кабели, выходящие с одной стороны и имеющие куб и контроллера рядом. Все функции анимаций разработаны, чтобы быть рассмотренными от этой ориентации.
