- •Введение Как сделатьсветодиодный 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. Отладка аппаратных средств: сгоревшие светодиоды
56. Программное обеспечение. Управлениеэффектами
Мы хотели найти легкий способ управления эффектами. Решение состояло в том, чтобы создать функцию запуска эффекта.
launch_effect.c содержит функцию launch_effect (международный эффект).
В функции есть switch() заявление, которое вызывает соответствующие функции эффекта, основанные на числе launch_effect ().
В launch_effect.h определен EFFECTS_TOTAL. Мы устанавливаем его на одно число выше, чем самое большое количество в switch ().
Запуск эффектов один за другим является теперь простым вопросом просто перекручивания через числа и звонящий launch_effect (), как это:
While(1)
For (i=0; i < EFFECTS_TOTAL; i++)
{
launch_effect(i);
}
}
Этот код образует циклы через все эффекты в возрастающем порядке. Если Вы хотите, чтобы куб показал эффекты в случайном порядке, просто используйте следующий код:
While (1)
{
launch_effect (rand () %EFFECTS_TOTAL);
}
%EFFECTS_TOTAL после того, как rand () содержит случайное значение между 0 и EFFECTS_TOTAL-1.
5.Программное обеспечение. Эффект 1-дождь
Вeffect.cВынайдетефункциюeffect_rain (intiterations).
Этот эффект добавляет капли дождя к верхнему слою куба, затем позволяет им падать к нижнему слою.
У большинства эффектов есть основной циклfor ()i=0 to i < iterations. effect_rain (int iterations) берет только один аргумент, который является числом повторений.
В итеративном цикле функция делает следующее:
1) Создайте случайное число между 0 и 3, будем называть его n.
2) Образуйте циклы for ()n количество раз.
3) Для каждого повторения этого цикла поместите пиксель в слой 7 (z=7) наугад x и координаты y.
4) Задержка некоторое время
5) Переместите содержание всего куба вдоль Оси Z-1 положением. Это перемещает все вниз один уровень.
Это - довольно простой эффект, но он работает!
58. Программное обеспечение. Эффект 2- самолет
Другойпростойэффект, effect_planboing (intplane, intspeed).
Этот эффект тянет самолет вдоль указанной оси, перемещая его от положения 0 до 7 на оси и снова назад. Это очень просто, но это действительно показывает глубину 3D светодиодного куба.
У этой функции нет повторяющегося цикла. Вместо этого это называют дважды для каждой оси в launch_effect ().
Вот то, что это делает:
ЦиклFor () - i from 0 to 7.
2) Куб очищен и заполняется (0x00);
3) Вызовите setplane (), чтобы потянуть самолет вдоль желаемой оси в положении i. Самолет фактически не продвинут определенная ось, это оттянуто на других двух осях. Если Вы определяете AXIS_Z, самолет оттянут на оси X и Y. Просто легче думать о нем тот путь. Вместо того чтобы назвать константы PLANE_XY, PLANE_YZ и т.д.
4) Задержка некоторое время.
5) Повторите тот же самый цикл с i идущей от 7 до 0.
Очень простой, но классный эффект!
59. Программное обеспечение. Эффект 3-отправление воксели в случайный z
Этот эффект посылает воксели вверх и вниз по Оси Z.
void sendvoxels_rand_z () берет три аргумента. Повторения - количество раз, вокселей вверх или вниз. Задержка - скорость движения (более высокие средства задержки более низкая скорость). Ожидание - задержка между каждым вокселем, который посылают.
Вот как это работает:
1) Куб очищен и, заполняется (0x00);
2) Циклпо всем 64 позициям вдоль X/Y и случайно устанавливаетвоксель или в Z=0 или в Z=7.
3) Войдите в главныйповторяющийся цикл.
4) Выберите случайные координаты для X и Y между 0 и 7. Если координаты X и Y идентичны предыдущим координатам, то это повторение пропущено.
5) Проверьте воксель в этой координате X/Y в Z=0 или Z=7, и пошлите его в противоположную сторону, используя отправленный воксель z ().
6) Задержка некоторого времени и сохранение координат этой итерации, таким образом, мы можем проверить их против случайных координат в следующейитерации.
Функция отправления вокселей_z () берет четыре аргумента. X и координаты Y. Z координата, это - предназначение и может быть 0 или 7. Задержка, которая управляет скоростью.
Вот как это работает:
ЦиклFor () - i от 0 до 7.
2) Если пункт назначения7, мы устанавливаем ii в 7-1, делая ii обратной переменнойi. Очистите воксель в Z = ii+1. Спускаясь, ii+1 - предыдущий воксель.
3) Если пункт назначения 0, пусть ii, равнаi. Ясно ii-1. При движении вверх,-1 является предыдущим вокселем.
4) Установите воксель в z=ii.
5) Подождите некоторое время.
