Главное меню

Алгоритм управления и его реализация

В ходе работы программы микроконтроллера необходимо обеспечить выполнение вышеописанных требований: приём данных по последовательному интерфейсу со скоростью 115200 бит/с, их обработка, выдача ШИМ с параметрами удовлетворяющими требованиям описанным в документации к сервоприводам и одновременное управление всеми контроллерами.

В микроконтроллере реализован цикл приёма и формирования управления.

Для реализации данной схемы работы был разработан алгоритм работы программы управления. Он прост, что объясняется тем, что разработка велась на простом микроконтроллере с ограниченным количеством памяти и возможностей.

Рассмотрим реализованный алгоритм поподробнее с приведением ссылок на участки кода программы микроконтроллера для более понятного разъяснения принципа работы.

После подачи питания на контроллер происходит его начальная инициализация, что и отраженно в схеме и программе. В момент инициализации контроллер определяет свой номер (строки 183-186) который устанавливается четыремя джамперами (переключателями) на Рисунке они обозначены номерами 5 - 8. Четырех джамперов достаточно в следствие того, что контроллеры управляют парами машинок, а из четырёх двухпозиционных переключателей возможно получить 16 комбинаций которых хватает для перечисления всех звеньев Змеелока.

Как уже известно с Верхнего уровня должна поступать информация - задания для приводов. Однако до этого момента не был оценён её объём. Но его легко подсчитать:

У нас есть известное число степеней подвижности за каждую из которых отвечает один сервопривод. В Змеелоке таких степеней 30 следовательно необходимо 30 управляющих команд для реализации движения. Но для задания всех возможных положений на используемых машинках не хватает 1 байта и приходится использовать 2, что в результате ведёт к удвоению объёма передаваемой информации. Хотя это не критично т.к. было показано, что скорости интерфейса более чем достаточно для работы данной схемы. Не стоит забывать и о стартовых байтах (их использовано 2 - AA и F1 для обеспечения защиты от срабатывания при помехах) и контрольном. В итоге получается массив из 63 байт данных.

После начальной инициализации контроллер ожидает стартовый байт AA (строка 131) Когда же с Верхнего уровня приходит массив данных состоящий из 63 байт которые включают в себя все задания для всех контроллеров и байт контроля, контроллер обнаружив в канале первый стартовый байт (строка 132) ждёт следующего стартового байта F1 (строка 135) для исключения случайного срабатывания, а по получение его начинает принимать посылку отсчитывая при этом количество принятых байт (строки 140-44) для проверки контрольной суммы (строка 144). Когда номер байта равняется номеру контроллера установленному на плате, микропроцессор сохраняет принятый байт и следующие за ним 3 байта в память (строки 140 -144) и после подсчёта контрольной сумы (строка 144-148) в соответствие с тем сошлась контрольная сумма (строка 148) или не сошлась (строка 149) помещает данные в память для дальнейшей обработки или просто игнорирует принятую посылку и ждёт следующей. Параллельно с циклом приёма в микроконтроллере работает цикл выдачи ШИМ с требуемыми параметрами (строки 56-121).

Перейти на страницу: 1 2

Другое по теме:

Исследование частотного преобразования акустического сигнала
В настоящее время ультразвук получил широкое применение в военной технике, технологии, а также в измерительных приборах, в средствах технической и медицинской диагностики. Технические средства измерений, контроля и диагностики на основе ул ...

Copyright © www.techproof.ru