Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ru_Led_Cube_6.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
144.43 Кб
Скачать

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 () и другие математические функции. Большинство координат вычислены как координаты с плавающей точкой и приводятся к целым прежде, чем эффект будет нарисован на кубе.

Как это работает:

  1. Счётчик итераций цикла.

  2. Цикл проходит через все 64 координаты x и y.

  3. Вычисление расстояния между центром куба и координатой x/y.

  4. Координата z вычислена с sin () в зависимости от расстояния от центра + счётчик итераций. В результате, синусоидальная волна перемещается из центра как итеративные увеличения счётчика.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]