Файл: Разработка змееподобного робота.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 08.11.2023

Просмотров: 109

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

.10 Время выполнения команд
ЦПУ процессора AVR управляется системной частотой генерируемой внешним резонатором. Внутреннее деление частоты генератора не используется.
В процессоре организован буфер (pipeline) команд, при выборе команды из памяти программ происходит выполнение предыдущей команды.
Подобная концепция позволяет достичь быстродействия 1MIPS на МГц, уникальных показателей стоимости, быстродействия и потребления процессора.
Данная характеристика обусловила выбор 10 MHz модификации данной модели.
.12 Время реакции на прерывание
Минимальное время реакции на любое из предусмотренных в процессоре прерываний - 4 периода тактовой частоты. После четырех циклов вызывается программный вектор обрабатывающий данное прерывание. За эти 4 цикла программный счетчик (9 бит) записывается в стек, указатель стека уменьшается на 2. Программный вектор представляет собой относительный переход на подпрограмму обслуживания прерывания и этот переход занимает
2 периода тактовой частоты. Если прерывание происходит во время выполнения команды длящейся несколько циклов, перед вызовом прерывания завершается выполнение этой команды.

Выход из программы обслуживания прерывания занимает 4 периода актовой частоты. За эти 4 периода из стека восстанавливается программный счетчик. После выхода из прерывания процессор всегда выполняет еще одну команду, прежде чем обслужить любое отложенное прерывание.
.15 Передача данных
Передача данных инициируется записью передаваемых данных в регистр ввода / вывода данных UART - UDR. Данные пересылаются из UDR в сдвиговый регистр передатчика когда: новый символ записывается в UDR после того как был выдвинут стоповый бит для предыдущего символа. При этом сдвиговый регистр загружается сразу. новый символ записывается в UDR до того, как выдвинут стоповый бит для предыдущего символа. При этом сдвиговый регистр записывается сразу после того, как будет выдвинут стоповый бит предыдущего символа. При этом в регистре состояния UART - USR устанавливается бит-признак очистки регистра данных - UDRE/. Когда этот бит установлен, UART готов к приему следующего символа. Пре перезаписи UDR в 10 (11) - разрядный сдвиговый регистр, бит 0 сдвигового регистра обнуляется (стартовый бит), а бит 9 или 10 устанавливается (стоповый бит). Если выбрано 9-битовое слово данных
(установлен бит CHR9 в регистре UCR), бит TXB8 из UCR переписывается в
9-й бит сдвигового регистра передатчика.
Послетактового импульса, следующего с частотой передачи, стартовый

бит выдвигается на вывод TXD. Затем выдвигаются данные, начиная с младшего бита. После того как выдвинут стоповый бит, в сдвиговый регистр загружаются новые данные, если они были записаны в UDR во время передачи. При загрузке устанавливается бит UDRE. Если до выдвижения стопового бита в регистр UDR не поступают новые данные, UDRE остается установленным до последующей записи UDR. Если новые данные не поступили и на выводе TXD появляется стоповый бит, в регистре USR устанавливается флаг окончания передачи - TXC.
Установка бита TXEN в UCR разрешает работу передатчика. При очистке бита TXEN, вывод PD1 можно использовать для ввода / вывода данных. Если бит TXEN установлен, передатчик UART подключен к выводу
PD1 независимо от установки бита DDD1 в регистре DDRD.
.16 Прием данных
Логическая схема приемника обрабатывает сигнал на выводе RXD с частотой в 16 больше скорости передачи (для обработки одного бита принимаемой последовательности, производится 16 выборок входного сигнала). В состоянии ожидания одна выборка логического нуля интерпретируется как спадающий фронт стартового бита, после чего запускается последовательность обнаружения стартового бита. Если в первой выборке сигнала обнаружен нулевой отсчет, приемник обрабатывает 8, 9 и 10 выборки сигнала на выводе RXD. Если хотя бы две из трех выборок равны логической единице, стартовый бит считается шумом и приемник ждет следующего перехода из 1 в 0.

Если обнаружен стартовый бит, начинается обработка бит данных.
Решение об уровне данных также производится по 8, 9 и 10 выборкам входного сигнала, уровень входного сигнала определяется по равенству двух выборок. После того как уровень данных определен, данные вдвигаются в сдвиговый регистр приемника.
Для определения стопового бита хотя бы две из трех выборок входного сигнала должны быть равны 1. Если это условие не выполняется, в регистре
USR устанавливается флаг ошибки кадра FE. Перед чтением данных из регистра UDR пользователь должен проверять бит FE для обнаружения ошибок кадра.
Независимо от принятия правильного стопового бита по окончанию приема символа принятые данные переписываются в UDR и устанавливается флаг RXC в регистре USR. Физически регистр UDR состоит из двух отдельных регистров, один используется для передачи данных, другой - для приема. При чтении UDR происходит доступ к регистру приемника, при записи - к регистру передатчика. При обмене 9-битовыми данными 9-й бит принятых данных записывается в бит RXB8 регистра UCR.
Если при приеме символа из регистра UDR не был прочитан предыдущий символ, в регистре UCR устанавливается флаг переполнения -
OR. Установка этого бита означает, что последний принятый байт данных не переписывается из сдвигового регистра в регистр UDR и будет потерян. Бит
OR буферирован и обновляется при чтении правильных данных из UDR.
Таким образом, пользователь всегда может проверить состояние OR после чтения UDR и обнаружить происшедшее переполнение.
При сбросе бита RXEN в регистре UCR прием данных запрещается.


3.19 Реализация схемы управления змеевидным роботом «ЗМЕЕЛОК»
Робот «ЗМЕЕЛОК» (Рисунок) представляет из себя робототехническое устройство змеевидного типа состоящую из16 звеньев общей длинной 1 м.
Звенья соединены между собой с помощью двухстепенных шарниров Гука таким образом, чтобы обеспечивались повороты вокруг вертикальной и горизонтальной оси для каждого из них.
Корпус активного шарнира модуля робота выполнен из конструкционного карболана. К корпусу крепятся приводы и плата контролера. Для обеспечения необходимого коэффициента сцепления робота с поверхностью, к нижней части корпуса звеньев прикреплены резиновые
«подошвы» полусферической формы.
Рис. 3.8 Внешний вид робота «ЗМЕЕЛОК»
Характеристики робота «ЗМЕЕОЛК» приведены в Таблице 3.9.
Таблица 3.9
Масса
3 кг

Длина
1020 мм
Ширина
65 мм
Максимальный момент по оси курса
0,3 Нм
Максимальный момент по оси тангажа
1,2 Нм
Напряжение питания
4,8 - 6 В
Максимально потребляемый ток на привод
0,3 А
.20 Структурная схема управления
В соответствии с техническим заданием требовалось реализовать управление которое бы обеспечило змеевидное движение вернее позволяло бы всем контроллерам одновременно отрабатывать заданное воздействие тем самым реализуя требуемую бегущую волну.
При использование разделения управления на уровни общая схема будет выглядеть как показано на Рисунке
Управляющая система реализована в виде двухуровневой системы:
Верхнего уровня, модули которого включают в свой состав программу моделирования волнового движения, человека оператора, который задаёт требования к движению, программу пересчета закона движения в форму необходимую для нижнего уровня и программу обмена. И Нижнего уровня который в свою очередь состоит из модулей отвечающих за прием и обработку данных и формирование требуемого ШИМ.
Поскольку в данной работе подробно рассматривается Нижний уровень управления рассмотрим и разберём алгоритм его работы.

.21 Алгоритм управления и его реализация
В ходе работы программы микроконтроллера необходимо обеспечить выполнение вышеописанных требований: приём данных по последовательному интерфейсу со скоростью 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).
Это цикл включает в себя два таймера Т0 и Т1.
Частота срабатывания таймера T0 рассчитывается по формуле (6.2) и составляет для данной реализации 100Гц.
f
кварца
f
T0
=
CK
2
*(256−TCNT0)
(3.4) где fкварца - частота работы внешнего кварцевого генератора. Для
Змеелока она составляет 7,3728 MГц, значение регистра TCNT0 равно 0xB8 что в десятеричной системе эквивалентно 184, а CK для микроконтроллера
AT90s2313 равно 10 и следовательно 2 в 10 равняется 1024.
Данное значение частоты срабатывания Т0 в два раза больше требуемой в соответствии с документацией рульмашинкой. Это связанно с тем что один контроллер управляет двумя сервоприводами и выдача ШИМ ведётся поочерёдно каждому из приводов.
Кроме выдачи ШИМ таймер Т0 отвечает за мигание светодиода обозначенного на Рисунке D6 с частотой 10/120 с. Это реализовано (строки
45-55) для наблюдения правильности работы (отсутствие зависания) и наличия питания на микроконтроллере.
Кроме таймеров в выработке ШИМ принимает участие переменная add_pwm (строки 62-87) она по сути является скоростью с которой вырабатывается ШИМ. Управление данной переменной возложено на первые четыре не использованных джампера (1-4) это сделано для удобства проведения экспериментов с движением робота. Так как раньше для её изменения приходилось перепрограммировать все микроконтроллеры, что требовало много времени и сил в следствии труднодоступности кроватки с контроллером на собранном роботе.


Заключение
В соответствии с ТЗ выполнена разработка системы управления многозвенным исполнительным устройством с числом степеней подвижности необходимых к управлению 5 и более. В ходе работы был получен ценный опыт по созданию управления многозвенного робота, выявлены особенности разработки распределённой микроконтроллерной системы управления, были получены базовые навыки программирования микроконтроллерных систем, в частности микроконтроллера семейства
MSC51 фирмы Atmel модели AT90s2313.
Данные полученные при разработке «Змеелок» будут учтены и проанализированы для дальнейшего совершенствования алгоритмов взаимодействия Нижнего и Верхнего управляющих уровней.
В случае продолжения разработки многозвенных мобильных роботов в
ЦНИИ РТК возможно использование микроконтроллера AT90CAN128 с CAN интерфейсом от фирмы Atmel или использование в замен устаревшего
AT90s2313 новой модели
ATtiny2313, которая позиционируется производителем как доработанная версия s2313. Так же возможно использование текущей кофигурации вместе со специальными контроллерами беспроводных интерфейсов с целью изучения реализации беспроводной системы связи Верхнего уровня и Нижнего.

Список использованной литературы и источников
1. Файсканова Юлия
Геннадьевна.
Моделирование движения механического аналога змеи. Лицей НИП г. Королев, 2000 г.
2. Shigeo Hirose Biologically Inspired Robots (Snake-like Locomotor and
Manipulator), Oxford University Press, 1993 г.
. Yoji Umetani, Shigeo Hirose Biomechanical Study of Active Cord - Mechanism with Tactile Sensors, Proc. 6th Int. Symp. on Industrial Robots, Nottingham, 1976 г.
. Dowling K., Terrestrial locomotion without wheels or legs, A Thesis Proposal The
Robotics Institute, Carnegie Mellon, Pittsburgh, PA 1997 г.
5. Юревич Е.И., Иванов А.А. Исследование и реализация принципов создания ползающих роботов, ЦНИИ РТК, Санкт-Петербург, 2004 г.
. Иванов А.А. Исследование принципов локомоций гиперизбыточных ползающих роботов, СПбГПУ, ЦНИИ РТК, Санкт-Петербург, 2004 г. http://voronoi.sbp.ri.cmu.edu/serpentine/serpentine.html http://www-robot.mes.titech.ac.jp/robot/snake_e.html http://www.snakerobots.com/S5.htm
10. Ljrevtynfwbz b jgbcfyb http://www.atmel.com/dyn/products/product_card.asp? part_id=1993