Разработка нижнего контура управления змееподобного робота

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информатика, ВТ, телекоммуникации
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    5,19 Mb
  • Опубликовано:
    2012-02-03
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка нижнего контура управления змееподобного робота












ВЫПУСКНАЯ РАБОТА БАКАЛАВРА

Разработка нижнего контура управления змееподобного робота

Введение


В настоящее время всё чаще требуются мобильные роботы для работы в труднодоступных местах. Для этих целей создано множество роботов и ещё больше разрабатывается. Долгое время основным средством передвижения роботов являлись колесные или гусеничные (реже шагающие) транспортные модули - по сути тележки подведённые под робота. Однако природа с которой человек копирует многие составляющие роботов куда разнообразнее в выборе способа передвижения своих созданий.

Одним из самых интересных представителей живой природы являются змеи. Они обладают многими интересными особенностями, но нас интересуют прежде всего их мобильные возможности - они почти безграничны: свободное перемещение почти по любым видам грунта а также возможность передвигаться в жидкой среде. Поэтому многие мировые научные центры, включая ЦНИИ РТК ведут разработки мобильных роботов используя бионический1 подход к разработке автоматизированного автономного мультизвенного (много модульного) робота, использующего в качестве передвижения змеевидные локомоции2.

Основные преимущества таких роботов заключаются в следующем: механические многозвенные роботы-змеи способны приспосабливаться практически к любым условиям. Они могут двигаться практически по любой поверхности. Модульность, распределенная масса и гиперизбыточность позволяют создавать отказоустойчивые модели. Все перемещения таких роботов обусловлены исключительно сгибанием и разгибанием модулей или шарниров соединяющих модули.

 


1. Существующие разработки змеевидных роботов и их природные прототипы

При рассмотрении управления многозвенными роботами необходимо знать базовые схемы и принципы движения их природных прототипов - змей.

 

.1 Движение змей в природе


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

При «змеевидном» типе движения туловище волнообразно изгибается, и образующиеся волны как бы пробегают вдоль тела от головы до хвоста. Выгибающийся участок тела, поставленный наискось к направлению движения, опирается на субстрат и создает толкающую силу. Она направлена под углом к движению, но может быть разложена на две составляющие - перпендикулярную и параллельную линии движения. Первая составляющая гасится сопротивлением опоры, а вторая толкает тело вперед. Таким образом, чем больше изгибов, тем больше суммарная движущая сила. Поэтому змеи, использующие такой способ движения, имеют обычно длинное, гибкое и стройное тело. Таковы, например, ужи и полозы - активные змеи, выслеживающие и догоняющие свою добычу. Заметим, однако, что скорость, развиваемая змеей даже при самом быстром скольжении, не превышает, как правило, 6-8 км/час, а у многих видов не достигает и 5 км/час. Поскольку при змеевидном типе движения используется опора на субстрат, то эффективность движения зависит от шероховатости опоры. Так, по гладкому стеклу змея не может двигаться - тело извивается, а животное остается на месте. Помимо гладкого субстрата, плохую опору для тела представляет и сыпучий субстрат - подвижные пески пустынь, не закрепленные растительностью. В этих условиях у некоторых видов змей выработался особый тип движения - «боковой ход». Змея ползет не вперед, а как бы вбок. Подтягивая вперед заднюю часть туловища, она перебрасывает ее, не касаясь субстрата, вперед, и затем, опираясь на весь бок тела, подтягивает переднюю часть.

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

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

 

.2 Механические роботы-змеи


Механические роботы-змеи могут двигаться практически по любой поверхности. Их «тела» состоят из множества гибко связанных между собой сегментов. Все перемещения роботов-змей обусловлены исключительно сгибанием и разгибанием этих ключевых составляющих. Движение начинается с одного из концов «пресмыкающегося» и реализует один из способов передвижения описанный в предыдущем пункте.

Двигатели активизируют процесс изгибания начальных сегментов, возникающие при этом «боковые» силы передаются на опорные элементы и голова начинает тянуться вперед. После этого включаются следующие моторчики, за головой подтягивается тело и затем хвост. Для различных мод движения этот алгоритм может различаться, но суть управления многозвенным роботом не меняется.

Из приведенного описания движения очевидно, что управление таким типом роботов сложно и требует для реализации упрощения.

Существует несколько путей решения задачи управления.

Можно управлять по отдельности каждым приводом и соответственно усложнить управление, а можно задать отработку какого-то действия (Верхний уровень) возложив управление приводами на отдельный контроллер (Нижний уровень) который уже будет напрямую управлять движениями. Это разбиение на Верхний и Нижний уровень управления очень напоминает рефлекторную отработку простых движений человеком: когда мы идем мы не задумываемся о том как согнуть ногу или поставить стопу - мы делаем это рефлекторно. Как и в приведённом примере удобнее возложить исполнение управления роботом на отдельный контроллер, а освободившиеся ресурсы направить на совершенствование управления движением.

Прежде чем дальше рассматривать особенности управления змеевидным роботом обратимся к разработкам которые существуют и которые были реализованы в «железе».

 

.3 Существующие разработки змееподобных роботов

робот движение управление змеевидный

В настоящее время в мире существует несколько видов и моделей змееподобных роботов. Все они могут быть поделены на 2 группы: это механизмы, имеющие одно и более подвижных относительно корпуса опорных колес на каждом модуле, и безколёсные механизмы, которые при перемещении по поверхности опираются непосредственно на корпус. В зависимости от числа степеней свободы шарниров и количества звеньев эти модели обладают большим или меньшим общим числом степеней свободы и способностью имитировать движения живой змеи. Замечу, что реальные динамические и физические характеристики искусственных змей существенно отличаются от характеристик природных прототипов как по маневренности и грузоподъёмности, так и по скорости, степени автономности (т.е. способности к длительной работе без использования внешнего источника питания) и др.

Первые разработки были реализованы в виде колесных роботов в 70х годах прошлого века Hirose и Umetami, которые разрабатывали устройства, перемещающиеся за счёт изгибания тела. Активный хордовый механизм с колесными опорами (Active Cord Mechanism model ACM III) (Рисунок 2.1) - это первый в мире робот использующий для движения принцип серпентойды. Его длинна 2 м, он состоит из 20 сегментов - модулей опирающихся на пары пассивных колес с перпендикулярными «телу» механизма осями, имеющих возможность свободно вращаться вокруг вертикальной оси. 26 декабря 1972 года этот робот первым в мире, осуществил механическое змеевидное движение со скоростью около 40 см/сек, используя изгибные движения в горизонтальной плоскости тела.

Число степеней свободы

20

Скорость передвижения

40 см/сек

Год создания

1972


Дальнейшие разработки этой исследовательской группы привели к созданию робота ACM-R3 состоящего из модулей с двумя ортогональными осями - многозвенного механизма с пассивными колесами. Его основные характеристики приведены в Таблице 2.2

Таблица 3.2

Число степеней свободы

20

Количество звеньев

20

Размеры

1755 х 110 х 110 (мм)

Масса

12,1 кг

Максимальный угол поворота вокруг одной оси

62,5 (град)

Момент привода

19,1 (Нм)


В 1994-1995 гг. американцами Лораном Чабиным и Роджером Крочиным был создан робот (Рисунок 2.3). Модулями в нём служили мини-модели скейтбордов. Идея создания робота пришла к Лорану, когда он наблюдал за тем как человек, катаясь на роликовой доске, использует повороты доски для продвижения вперед. Его основные характеристики приведены в Таблице 2.3 Робот имеет автономное питание - четыре батареи на 1,2 В и одну на 9 В. С таким питанием он может работать без подзарядки около часа. Управление реализовано с помощью микропроцессора ST62E15 или ST62E25. Технические характеристики приведены в Таблице 2.3

Таблица 3.3

Количество звеньев

9 по 2 колеса на каждом

Размеры

790 х 65 х 20 (мм)

Масса

1270 (г)

Максимальная скорость

13 см/сек


В Европе в 1996 году доктор Bernhard Klaassen в GMD's Institute for Autonomous Intelligent System (AIS) создал свою первую модель GMD-Snake (Рисунок 2.4). Она создана из нескольких идентичных секций, а также специального головного элемента, содержащего различные сенсоры для ориентации и контроля. Электронное оснащение робота сделано минимальным для уменьшения веса. Каждая секция контролируется отдельным процессором, управляющим движением сочленения. Действия отдельных процессоров координируются главным процессором который в свою очередь контролируется оператором с помощью специально разработанного программного обеспечения. Характеристики GMD-Snake приведены в Таблице 2.4.

Таблица 3.4

Количество звеньев

6

Длина

200 см

Диаметр

6 см

Вес

3 кг

Скорость передвижения

50 см/мин

Потребляемая мощность

15 ватт


Основываясь на опыте первой модели зимой 1998 года была создана вторая модификация, её закончили как раз к началу Cebit 99 на котором она и дебютировала. В отличие от предшественицы вокруг каждого сегмента были размещены 12 колёс для передвижения со скоростью до 0.1 м/сек. Новая модель была оснащена видеокамерой и имела развитую сенсорную систему. Емкости встроенной батареей автономного питания хватало приблизительно на 40 минут работы GMD-Snake. Характеристики GMD-Snake 2 приведены в Таблице 2.5.

Таблица 3.5

Количество звеньев5


Длина

90 см

Диаметр

Вес

10 кг

Скорость передвижения

10 см/сек

Емкость ракета батарей

47 Вольт ампер час

Потребляемая мощность

Встроенной электроники 20 Вт, плоское движение 25 Вт, подъём головы и двух секций 40 Вт


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

В период с 2000 по 2002 год в Sensor Based Planning Lab, Carnegie Mellon University создана серия змееподобных роботов. Они имеют различные размеры и в них реализованы различные алгоритмы движения. Разработчикам удалось создать проводную систему управления реализованную в виде мобильного пульта управления, имеющего параллельный или последовательный (в зависимости от модели) интерфейс связи с модулями и исполнительными механизмами.

В 2003 году аспиранты Китайского Национального университета оборонной науки и технологии разработали робота. Оборудованный видео камерой робот способен передавать изображения окружающей местности. Он выполняет команды, которые получает через расположенный в головном модуле управляющий центр. Одетый в оболочку робот может плавать. Его характеристики приведены в Таблице 2.6.

Таблица 3.6

Длина120 см


Диаметр

6 см

Вес

1,8 кг

Скорость передвижения

20 м/мин


В заключение обзора змеевидных роботов хотелось бы упомянуть о разработке Японского института мед оборудования 1986 года. В ней использован необычный привод для движения секций манипулятора длинной 25 см. Состоящий из 7 секций приводимых в движение приводами использующими эффект памяти форм манипулятор представлял одно из альтернативных направлений в разработке приводов. Однако в настоящее время уровень развития данной технологии до сих пор не позволяет создать змееподобных роботов.

 


2. Схема управления змеевидным роботом


Типичный змеевидный робот (ЗР) состоит из звеньев (минимальное количество звеньев необходимое для реализации движения 5), на каждом звене может быть размещено от 1 до 3 приводов, каждый из которых отвечает за свою степень свободы звена. Типовая схема ЗР приведена на Рисунке 2.1.

Рис. 2.1 Типовая схема змеевидного робота

Так же необходимо наличие схемы управления которую обычно реализуют в виде двух ступенчатой системы: микроконтроллеров с программой управления приводами, размещённым на небольших платах и отвечающими за прием, обработку и отправку информации (на микроконтроллеры может приходить информация с датчиков обратных связей, сенсорных датчиков и т.д.) и платы управления верхнего уровня. Хотя возможен вариант и централизованного управления всеми приводами и обработки сенсорной информации с датчиков. В этом случае появляется необходимость в быстром канале связи и высоком быстродействии вычислительного комплекса.

В случае необходимости обеспечения автономности на змеевидном роботе размещают систему энергоснабжения.

 

.1 Змеевидный робот Кевина Доулинга


По одному из путей пошёл Кевин Доулинг. Его работа в области змеевидных роботов Kevin J. Dowling Limbless Locomotion: Learning to Crawl with a Snake Robot является одной из самых известных в области создания змеевидных роботов. В этой работе проведен наиболее полный и комплексный анализ построения змеевидного робота. В результате работы был создан прототип змеевидного робота.

В прототипе использовались три микроконтроллера и 20 сервоприводов. При проведении исследовательской работ был выбран протокол RS-232, как наиболее простой в реализации и достаточный для отработки 20 сервоприводами всех требуемых положений. Каждый из микроконтроллеров, который использовался в прототипе был способен обеспечить работу 8 сервоприводов, за счет использования нескольких каналов. Для управления был выбран стандартный интерфейс с протоколом RS-232, на скорости 9600 бод. Для активации сервопривода использовалось 3х байтовый поток информации, что обеспечивало обновление информации на сервомоторе 16 раз в секунду. Принципиальная схема робота представлена на Рисунке 2.2.


Рис. 2.2 Схема управления ЗР Доулинга

Принцип обмена данными т.е. управления прост: Когда с компьютера через последовательный интерфейс по протоколу RS-232 отсылается задание на контроллеры приводов, каждый из контроллеров (С0, С1, С2) определяет какому приводу оно предназначено (так как при формировании задания, а вернее посылки в него закладывается и номер привода которому оно предназначено) и выполняет его, в случае прихода задания на привод, которым контроллер не управляет, информация не обрабатывается.

 

.2 Змеевидный робот Дору Михалачи


В настоящее время всё большое распространение получают так называемые протоколы полевой шины (FieldBus, CAN и т.д.). В связи с этим я считаю необходимым дать краткий обзор реализации многозвенного робота с использованием этих протоколов. Примером послужит схема управления роботом «Коперник» предложенная Дору Михалачи.

На каждом звене его прототипа расположено по 3 сервопривода (Рисунок 2.3).

Рис. 2.3 Схема модуля ЗР Михалачи

Так же на каждом модуле расположен управляющий контроллер, который получает задание с компьютера и потом распределяет задание по приводам, естественно каждый привод работает на своем канале. Для связи контроллеров был использован CAN интерфейс.(Controller Area Network) представляет собой систему с последовательной распределенной передачей сообщений, т.е. посредством программного или аппаратного фильтра происходит идентификация сообщения узлом, установка приоритета и реакция на него. Передача информации по CAN fieldbus может проходить без участия устройств верхнего уровня (для сложных схем реализаций и взаимодействия). Согласно CAN-протоколу, если передачу CAN-сообщения начинает более чем один узел, после арбитража передачу продолжает только тот узел, который передает сообщение с наивысшим приоритетом.

В протокол встроен сложный алгоритм обнаружения ошибок. Его в общих чертах можно описать следующим образом: если передающий узел посылает или получает кадр ошибки, он автоматически начинает повторную передачу текущего сообщения. Еще одной особенностью этой технологии является зависимость скорости передачи от длины физического канала связи. Наиболее популярные протоколы этого типа: CANopen, Kingdom (Kvaser), DeviceNet (Allen Brandley), SDS (Honeywell), CAL (CAN Application Layer), SAEJ1939. Какой из них был реализован в данной модели автор не уточнял.

Причина выбора CAN была обусловлена наличием большого количества сервоприводов и датчиков обратных связей, наличием регуляторов, для работоспособности этой системы в реальном времени нужен был широкий канал связи, RS-232 не позволял этого из-за низкой пропускной способности ограниченной стандартами. Контроллеры на модулях использовались от фирмы SIEMENS - С167, с изначально заложенной поддержкой CAN.

Схема управления представляет собой, формирование массива данных, в котором заключалась информация для приводов, после чего он отправлялась по CAN интерфейсу на котроллеры, они же предавали сигнал на привода. (Рисунок 2.4).

Рис. 2.4 Схема управления ЗР Михалачи

3. Разработка системы управления для змеевидного робота - «ЗМЕЕЛОК»


В конце 2004 году в ЦНИИ РТК началась разработка прототипа змееподобного робота «ЗМЕЕЛОК». Группе студентов под руководством Телешева Н.С. было дано задние по созданию системы управления многозвенным исполнительным устройством с числом степеней подвижности необходимых к управлению 5 и более.

Одним из требований разработчиков робота была способность системы управления отрабатывать воздействие в виде бегущей волны. Выполнение такого технического задания рассматривается в данной работе.

Для реализации подобных многозвенных систем используют электромеханические и пневматические приводы, металлы и пластики с памятью формы.

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

Такая сервосистема отрабатывает позицию которая задаётся системой управления при помощи выдачи ШИМ сигнала. Данный вид управления называется позиционным.

В качестве исполнительных механизмов в каждом звене робота предполагалось использовать 2 сервопривода HS-81MG (Рисунок 6.1 Такие серводвигатели фирмы HiTec используются в качестве приводов в моделестроение. Они управляются за счёт подачи на вход ШИМ в диапазоне от 0.9 мс до 2.1 мс с частотой 50 Гц т.е. 20 мс (данные производителя).



Рис. 3.1 Общий вид сервопривода HS-81MG

Рис. 3.2 Общий вид сервопривода HS-81MG

Характеристики рулевой машинки приведены в Таблице 3.1.

Таблица 3.1

Момент - 4.8 / 6 В

2.6 / 3.0 кг/см

Скорость - 4.8 / 6 В

0.11 / 0.09 сек/60°

Размеры

29.8x12x29.6mm

Потребляемый ток

8.8mA/9.1mA

Вес

16,6 г



Управлять данным объектом возможно имея централизованную систему управления (Рисунок 3.2) в виде персонального компьютера или специализированного автономного аппаратно-програмного комплекса с соответствующими интерфейсами или распределенную систему (Рисунок 3.3). Сравним эти конкурирующие варианты в соответствии с требованиями предъявляемыми разработчиками.

 

.1 Моноуправляющая система


Основная её особенность это отсутствие дополнительных контроллеров управляющих отдельными приводами (Рисунок 3.3). Но при реализации такой схемы (Рисунок 3.4) придётся протягивать множество проводов - связей от каждого привода (минимум 3 провода (питание и управляющий сигнал) от каждой рульмашинки и это в случае отсутствия обратной связи). Следует упомянуть, что в данной схеме управления при помощи ШИМ сам управляющий сигнал предаётся в аналоговом виде и как следствие в нём отсутствуют средства контроля ошибок. Этот параметр не является существенным в случае работы в лабораторных условиях однако при практическом применении (особенно в экстремальных условиях) будут возникать сильные помехи в управлении из-за помех в линии. Конечно возможна реализация управления при помощи цифрового сигнала, но это требует особых приводов, способных работать с таким управляющим сигналом, что существенно повышает затраты на разработку и в данном случае неприемлемо. Так же при такой схеме придётся использовать специальную плату - адаптер для питания всех сервоприводов и конвертирования управляющего сигнала в требуемый ШИМ. Кроме того значительно усложнится создание программы управления так как надо будет учитывать особенности каждого конкретного привода и при необходимости замены сервопривода или необходимости добавления нескольких модулей придётся вносить значительные изменения в программу управления что не всегда удобно, а иногда и просто не возможно.

 

.2 Распределённая система


Её особенность наличие отдельных контролеров которые берут на себя функции преобразования управляющего сигнала в требуемый ШИМ (Рисунок 3.2). Это существенно упрощает реализацию программного обеспечения - позволяет разбить его на модули, а часть функций переложить на микроконтроллеры модулей робота, причём при увеличение числа звеньев (микроконтроллеров) потребуется минимум изменений в программе управления. Если пойти далее по этому пути развития, то в результате можно подойти к разработке схемы схожей с природной - когда управляющая программа задаёт некое сложное движение, а распределённая сеть контроллеров преобразует и модифицирует с учётом конкретных условий управляющий сигнал в серию простых «рефлексов». Конечно этим не ограничиваются достоинства данной схемы, не стоит забывать и о том, что для подобной схемы необходимо подвести лишь одну шину данных к контроллеру (достаточный минимум: два провода), а он уже в свою очередь раздаст необходимые указания каждому из подконтрольных ему приводов - это позволит уменьшить число и протяженность кабелей которые будут протянуты тем самым обеспечивая больше гибкости и технологичности при создании робота и управляющей системы. Так же не надо забывать и о линии питании для машинок и контроллеров, но в сравнении с централизованным вариантом основной выигрыш достигается за счёт реализации обмена с каждым контроллером (который может в среднем контролировать до 3 машинок на каждом из портов, что в принципе позволяет одному микроконтроллеру управлять несколькими звеньями) через цифровой интерфейс. Эта особенность позволяет контролировать и проверять передаваемый сигнал на наличие ошибок. В зависимости от сложности протокола возможно даже частичное устранение появившихся ошибок, что так же позволяет сэкономить на времени повторной передачи и обработке информации. Такая схема существенно сокращает требования к вычислительным ресурсам верхнего уровня или даёт возможность переключить освободившиеся (по сравнению с моносхемой) на программу моделирования движения и прогнозирования конфигурации робота. Подводя итог хочется заметить, что тенденция перехода от аналогового управления к цифровому приобрела общемировой масштаб ещё десятилетие назад и необходимость использования распределённой системы управления с цифровым интерфейсом в данное время наиболее актуально, логично и технологично.

Для большей наглядности рассмотрим случай управления 30 координатами без обратной связи и датчиков и сведем в Таблицу 3.2 основные параметры для моносистемы и распределённой системы управления.

Таблица 3.2

Сравниваемый параметр

Моносистема

Распределённая система

30

2 и более в зависимости от топологии схемы и модели микроконтроллера

Требования к вычислительной мощности верхнего уровня

Высокая

Низкая

Масштабируемость и модульность

Низкая

Высокая

Необходимость в установке контроллера на каждое звено

Нет

Да, возможна установка одного контроллера для нескольких звеньев

Помехозащищённость и отказоустойчивость

Низкая

Высокая


Как видно из таблицы сравнения для многозвенных роботов лучшим выбором станет распределённая система управления.

3.3 Интерфейсы передачи данных


Очевидно, что современной робототехнике для управления роботами требуется множество различных параметров. Их передача реализуется через различные интерфейсы передачи данных характеризующиеся различными скоростями передачи данных, типом передаваемой информации и способом её передачи.

В Таблица 3.3 представлены наиболее распространённые и часто встречающиеся в робототехнике и стандарты связи.

Таблица 3.3

Стандарт связи

Скорость передачи по стандарту (max)

Максимальная длина лини

Параллельный интерфейс (LPT)

9600 бит/с

2 м

Последовательный интерфейс RS-232С (COM)

115200 бит/с

15 м

CAN и его разновидности

1 Мбит/с

Зависит от числа подключённых устройств

InfraRed

115200 бит/с

10 м

Bluetooth (802.15.1)

921,6 Кбит/с

10 - 100 м

WiFi (802.11 b/g)

11 / 54 Мбит/с

100 м

ZigBee (802.15.4)

250 Кбит/с

10 - 70 м


Как видно из таблицы среди проводных последовательных интерфейсов RS-232С самый медленный, однако в силу простоты реализации большой распространенности в мире его использование наиболее приемлимо для учебных моделей и прототипов на которых отрабатываются различные тестовые принципы и алгоритмы. Так как его поддержка реализована в 99% программных продуктов на уровне стандартных библиотек интерфейсов по разработке ПО для современных компьютеров, а возможности которые предоставляет данный протокол связи позволяют контролировать наличие ошибок в линии, что достаточно для большинства схем. Конечно не стоит забывать и о параллельном интерфейсе однако он обладает существенными недостатками: прежде всего это очень низкая скорость передачи данных которая в некоторых случаях становится узким местом в реализации схемы, необходимость в прокладке большего числа кабелей по сравнению с последовательным интерфейсом передачи данных и малой длинной линии обусловленной очень низкой помехозащищённостью. Всё это делает данный интерфейс неудобным в реализации и мало подходящим для создания связи между микроконтроллерами и управляющей схемой.

Среди беспроводных протоколов для целей управления простыми роботами наиболее подходящим является стандарт связи ZigBee в связи с малой потребляемой мощностью оборудования работающего по этому стандарту и его направленности на данный сектор задач.

 

.4 Последовательный интерфейс RS-232С


Данный последовательный интерфейс синхронной и асинхронной передачи данных, определяется стандартом EIA RS-232-C (Таблица) и рекомендациями V.24 CCITT. Изначально он создавался для связи компьютера с терминалом однако в настоящее время используется в самых различных целях.

Интерфейс RS-232-C предназначен для соединения двух устройств. При чём линия передачи первого устройства соединяется с линией приема второго и наоборот, данный режим называется полнодуплексным. Для управления соединенными устройствами используется программное подтверждение хотя и возможна организация аппаратного подтверждения путем организации дополнительных линий для обеспечения функций определения статуса и управления.

Таблица 3.4

Стандарт

EIA RS-232-C, CCITT V.24

Скорость передачи

115 Кбит/с (максимум)

Расстояние передачи

15 м (максимум)

Характер сигнала

несимметричный по напряжению

Схема соединения

полный дуплекс


Основными преимуществами использования RS-232C являются возможность передачи на большие (по сравнению с параллельным интерфейсом) расстояния и более простая схема разводки кабеля. Данные в RS-232C передаются в последовательном коде побайтно. Каждый байт обрамляется стартовым и стоповыми битами в добавок к ним может присутствовать и бит чётности, но как правило он не используется.

Современный компьютер имеет 25-контактный (DB25P) или 9-контактный (DB9P) разъем (более распространённый и в дальнейшем будет рассматриваться и подразумеваться только он) для подключения RS-232C. Распайка контактов для (DB9P).

Таблица 3.5. Порядок обмена по интерфейсу RS-232C

Наименование

Направление

Описание

Контакт (DB9P)

DCD

IN

Carrie Detect (Определение несущей)

1

RXD

IN

2

TXD

OUT

Transmit Data (Передаваемые данные)

3

DTR

OUT

Data Terminal Ready (Готовность терминала)

4

GND

-

System Ground (Корпус системы)

5

DSR

IN

Data Set Ready (Готовность данных)

6

RTS

OUT

Request to Send (Запрос на отправку)

7

CTS

IN

Clear to Send (Готовность приема)

8

RI

IN

Ring Indicator (Индикатор)

9


Назначение сигналов следующее:- защитное заземление (экран).- данные, передаваемые компьютером в последовательном коде - данные, принимаемые компьютером в последовательном коде - сигнал запроса передачи. Активен во все время передачи.- сигнал сброса (очистки) для передачи. Активен во все время передачи. Говорит о готовности приемника.- готовность данных. Используется для задания режима модема.- сигнальное заземление, нулевой провод.- обнаружение несущей данных (детектирование принимаемого сигнала).- готовность выходных данных.- индикатор вызова. Используется при соединение с модемом и приеме им сигнала вызова по телефонной сети. В нашем случае вообще не используется.

Для связи наиболее часто используются трех- или четырехпроводная связь (для двунаправленной передачи).

Использование двухпроводной линии связи возможно только в случае передачи из компьютера во внешнее устройство, при этом используются используются сигналы SG и TxD. Все 10 сигналов интерфейса задействуются только при соединении компьютера с модемом что в данном случае не актуально.

Данные соопровождаются стартовым битом, битом четности и одним или двумя стоповыми битами их количество не принципиально. Получив стартовый бит, приемник выбирает из линии биты данных через определннные интервалы времени. Очень важно, чтобы тактовые частоты приемника и передатчика были одинаковыми, допустимое расхождение - не должно превышать 10%.

Скорость передачи по RS-232C в соответствии со стандартом может выбираться из ряда: 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600 и 115200 бит/с. Очевидно что данная вольность в выборе скорости позволяет подобрать наиболее оптимальные условия для передачи данных.

Замечу, что данные передаются в инверсном коде т.е. логической единице соответствует низкий уровень, а логическому нулю - высокий уровень сигнала.

Обмен данными по последовательному интерфейсу осуществляется с помощью обращений по специально выделенным для этого портам COM1 (адреса 3F8h…3FFh, прерывание IRQ4), COM2 (адреса 2F8h…2FFh, прерывание IRQ3), COM3 (адреса 3F8h…3EFh, прерывание IRQ10), COM4 (адреса 2E8h…2EFh, прерывание IRQ11). Аналогичное описание присутствует и в документации к любому микроконтроллеру использующему данный интерфейс связи.

Однако возникает вопрос о достаточности скорости работы данного интерфейса при использовании протокола RS-232С с максимальной скоростью передачи составляющей 115200 бит/с. Разрешить подобный вопрос позволяет простая формула. Для расчёта по которой требуется знать скорость интерфейса, некоторые его особенности и количество байт требуемое для управления приводом (некоторым приводам требуется всего один байт, а некоторым 2 или даже 3 для управления, но этот параметр определяется особенностью самого привода)

Формула (для выяснения количества обновлений задания для привода за 1 секунду:

 (3.1)

где i - количество обновления команд за 1 секунду, V - скорость канала,- количество приводов, S - количество байт требуемое для управления 1 приводом, k - служебные байты, предназначенные для активации контроллера, порядковый № привода, контрольная сумма, а 10 это количество бит передаваемых за одну посылку по протоколу RS-232С т.е. 8 бит даннных плюс один стартовый и один стоповый бит. Бит чётности не используется. Тогда для змеевидного робота Змеелок получается:

 (3.2)

Что означает: за 1 секунду приводы могут максимально получить ~182 команды что более чем достаточно для реализации управления т.к. по расчётам минимально необходимое количество обновлений в секунду составляет 20 - 40 обновлений.

В связи со всем вышеизложенным на начальном этапе разработки змеевидного робота целесообразно направить усилия на создание многозвенного робота с проводным интерфейсом RS-232С с последующим переходом на интерфейс CAN или беспроводной ZigBee как более скоростные и современные.

3.5 Выбор микроконтроллера для управления змеевидным роботом


Следующий выбор который необходимо сделать - это выбор «спинного мозга» нашего робота т.е. микроконтроллера.

В данное время существует огромное количество различных семейств микроконтроллеров а также их разновидностей.

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

Существуют четырех-, восьми-, шестнадцати- и даже сорока разрядные микроконтроллеры. Наибольшее распространение сегодня получили восьми разрядные микроконтроллеры их доля около 75% всего рынка микроконтроллеров. Их быстродействие зависит от внутренней структуры и частоты.

Важно выбрать подходящий по быстродействию и возможностям для конкретной задачи микроконтроллер.

В соответствии с техническим заданием задачи которые должен был решать локальный микроконтроллер установленный для управления рульмашинкой(ами) заключаются в следующем: принятие и обработка информации от верхнего уровня по последовательному интерфейсу, формирование необходимого управляющего сигнала и выдача его на рульмашинку(и). Причём система управления должна была справляться с отработкой движения типа бегущая волна, что диктовало необходимость реализации транслирования команды следующему контроллеру или одновременной обработки команды управления всеми микроконтроллерами.

Одним из самых распространённых семейств микроконтроллеров стало семейство MSC51. На базе этой архитектуры фирма Atmel создала целое семейство различных микропроцессоров которые различаются своими характеристиками и функциональными возможностями, что позволяет подобрать наиболее подходящую модель.

По перечисленым в техническом задание параметрам из доступных в настоящее время в России моделей отвечающих перечисленным требованиям и наиболее дешёвых была выбрана модель 8 битового микроконтроллера AT 90s2313 фирмы Atmel. Причины её выбора разъяснены в следующем пункте.

 

.6 Микроконтроллер AT90s2313 фирмы Atmel


В данном описании микроконтроллера будут опущенны некоторые разделы которые подробно описывают не существенные или не используемые элементы AT90S2313. В случае необходимости полное описание данного микроконтроллера можно найти по адресу [10].S2313 - экономичный 8 битовый КМОП микроконтроллер, построенный с использованием расширенной RISC архитектуры AVR. Исполняя по одной команде за период тактовой частоты, AT90S2313 имеет производительность около 1MIPS на МГц. (MIPS - миллион целочисленных операций в секунду).

В основе ядра AVR лежит расширенная RISC архитектура (Рисунок 5.1), объединяющая развитый набор команд и 32 регистра общего назначения. Все 32 регистра непосредственно подключены к арифметико-логическому устройству (АЛУ), что дает доступ к любым двум регистрам за один машинный цикл. Подобная архитектура обеспечивает десятикратный выигрыш в эффективности кода по сравнению с традиционными CISC микроконтроллерами.

Рис. 3.5

S2313 предлагает следующие возможности: 2кБ загружаемой флэш памяти; 128 байт EEPROM; 15 линий ввода / вывода общего назначения; 32 рабочих регистра; настраиваемые таймеры / счетчики с режимом совпадения; внешние и внутренние прерывания; программируемый универсальный последовательный порт; программируемый сторожевой таймер со встроенным генератором; SPI последовательный порт для загрузки программ; два выбираемых программно режима низкого энергопотребления. Холостой режим (Idle Mode) отключает ЦПУ, оставляя в рабочем состоянии регистры, таймеры / счетчики, SPI порт и систему прерываний. Экономичный режим (Power Down Mode) сохраняет содержимое регистров, но отключает генератор, запрещая функционирование всех встроенных устройств до внешнего прерывания или аппаратного сброса.

Микросхемы производятся с использованием технологии энергонезависимой памяти высокой плотности фирмы Atmel. Загружаемая флэш память на кристалле может быть перепрограммирована прямо в системе через последовательный интерфейс SPI или доступным программатором энергонезависимой памяти. Объединяя на одном кристалле усовершенствованный 8-битовый RISC процессор с загружаемой флэш памятью, AT90S2313 является мощным микроконтроллером, который позволяет создавать достаточно гибкие и эффективные по стоимости устройства.S2313 поддерживается полной системой разработки включающей в себя макроассемблер, программный отладчик / симулятор, внутрисхемный эмулятор и отладочный комплект. Однако более продуктивно и удобно оказалось использовать некоторые продукты сторонних разработчиков (см список использованного программного обеспечения)

.6 Описание выводов

Рис. 3.6 Описание выводов AT90S2313- вывод источника питания- земля

Port B (PB7..PB0) - Порт B является 8-битовым двунаправленным портом ввода / вывода. Для выводов порта предусмотрены внутренние подтягивающие резисторы (выбираются для каждого бита). Выводы PB0 и PB1 также являются положительным (AIN0) и отрицательным (AIN1) входами встроенного аналогового компаратора. Выходные буферы порта B могут поглощать ток до 20мА и непосредственно управлять светодиодными индикаторами. Если выводы PB0..PB7 используются как входы и извне устанавливаются в низкое состояние, они являются источниками тока, если включены внутренние подтягивающие резисторы. Кроме того, Порт B обслуживает некоторые специальные функции, которые будут описаны ниже.D (PD6..PD0) - Порт D является 7-битовым двунаправленным портом с внутренними подтягивающими резисторами. Выходные буферы порта D могут поглощать ток до 20мА. Как входы установленные в низкое состояние, выводы порта D являются источниками тока, если задействованы подтягивающие резисторы. Кроме того, Порт D обслуживает некоторые специальные функции, которые будут описаны ниже.- Вход сброса. При удержании на входе низкого уровня в течение двух машинных циклов (если генератор работает), сбрасывает устройство.- вход инвертирующего усилителя генератора и вход внешнего тактового сигнала.- Выход инвертирующего усилителя генератора.

3.7 Обзор архитектуры AT90S2313

Рис. 3.7

Регистровый файл быстрого доступа содержит 32 8-разрядных регистра общего назначения, доступ к которым осуществляется за один машинный цикл. Поэтому за один машинный цикл исполняется одна операция АЛУ. Два операнда выбираются из регистрового файла, выполняется операция, результат ее записывается в регистровый файл - все за один машинный цикл.

Шесть из 32 регистров можно использовать как три 16-разрядных указателя в адресном пространстве данных, что дает возможность использовать высокоэффективную адресную арифметику (16-разрядные регистры X, Y и Z). Один из трех адресных указателей (регистр Z) можно использовать для адресации таблиц в памяти программ. Это X-, Y- и Z-регистры.

АЛУ поддерживает арифметические и логические операции с регистрами, с константами и регистрами. Операции над отдельными регистрами также выполняются в АЛУ.

Кроме регистровых операций, для работы с регистровым файлом могут использоваться доступные режимы адресации, поскольку регистровый файл занимает адреса $00-$1F в области данных, обращаться к ним можно как к ячейкам памяти.

Пространство ввода состоит из 64 адресов для периферийных функций процессора, таких как управляющие регистры, таймеры / счетчики и другие. Доступ к пространству ввода / вывода может осуществляться непосредственно, как к ячейкам памяти расположенным после регистрового файла ($20-$5F).

Процессоры AVR построены по гарвардской архитектуре с раздельными областями памяти программ и данных (Рисунок 5.3). Доступ к памяти программ осуществляется при помощи одноуровневого буфера. Во время выполнения команды, следующая выбирается из памяти программ. Подобная концепция дает возможность выполнять по одной команде за каждый машинный цикл. Память программ - это внутрисистемная загружаемая флэш-память.

При обработке прерываний и вызове подпрограмм адрес возврата запоминается в стеке. Стек размещается в памяти данных общего назначения, соответственно размер стека ограничен только размером доступной памяти данных и ее использованием в программе. Все программы пользователя должны инициализировать указатель стека (SP) в программе, выполняемой после сброса (до того как вызываются подпрограммы и разрешаются прерывания). 8-разрядный указатель стека доступен для чтения / записи в области ввода / вывода.

Доступ к 128 байтам статического ОЗУ, регистровому файлу и регистрам ввода / вывода осуществляется при помощи пяти доступных режимов адресации поддерживаемых архитектурой AVR.

Все пространство памяти AVR является линейным и непрерывным.

Гибкий модуль прерываний имеет собственный управляющий регистр в пространстве ввода / вывода, и флаг глобального разрешения прерываний в регистре состояния. Каждому прерыванию назначен свой вектор в начальной области памяти программ. Различные прерывания имеют приоритет в соответствии с расположением их векторов. По младшим адресам расположены векторы с большим приоритетом.

.8 Загружаемая память программ

S2313 содержит 2кБ загружаемой флэш памяти для хранения программ. Поскольку все команды занимают одно 16-разрядное слово, флэш память организована как 1K 16-разрядных слов. Флэш-память выдерживает не менее 1000 циклов перезаписи. Программный счетчик имеет ширину 10 бит и таким образом адресуется к 1024 словам программной флэш-памяти.

.9 EEPROM память данных

S2313 содержит 128 байт электрически стираемой энергонезависимой памяти (EEPROM). EEPROM организована как отдельная область данных, каждый байт которой может быть прочитан и перезаписан. EEPROM выдерживает не менее 100000 циклов записи / стирания.

.10 Время выполнения команд

ЦПУ процессора AVR управляется системной частотой генерируемой внешним резонатором. Внутреннее деление частоты генератора не используется.

В процессоре организован буфер (pipeline) команд, при выборе команды из памяти программ происходит выполнение предыдущей команды. Подобная концепция позволяет достичь быстродействия 1MIPS на МГц, уникальных показателей стоимости, быстродействия и потребления процессора.

Данная характеристика обусловила выбор 10 MHz модификации данной модели.

.11 Пространство ввода / вывода

Все устройства ввода / вывода и периферийные устройства AT90S2313 располагаются в пространстве ввода / вывода. Различные ячейки этого пространства доступны через команды IN и OUT, пересылающие данные между одним из 32-х регистров общего назначения и пространством ввода / вывода.

.12 Время реакции на прерывание

Минимальное время реакции на любое из предусмотренных в процессоре прерываний - 4 периода тактовой частоты. После четырех циклов вызывается программный вектор обрабатывающий данное прерывание. За эти 4 цикла программный счетчик (9 бит) записывается в стек, указатель стека уменьшается на 2. Программный вектор представляет собой относительный переход на подпрограмму обслуживания прерывания и этот переход занимает 2 периода тактовой частоты. Если прерывание происходит во время выполнения команды длящейся несколько циклов, перед вызовом прерывания завершается выполнение этой команды.

Выход из программы обслуживания прерывания занимает 4 периода актовой частоты. За эти 4 периода из стека восстанавливается программный счетчик. После выхода из прерывания процессор всегда выполняет еще одну команду, прежде чем обслужить любое отложенное прерывание.

3.13 Таймер/счетчик в режиме ШИМ

При выборе режима широтно-импульсной модуляции (ШИМ), таймер / счетчик 1 и регистр совпадения OCR1A формируют 8, 9 или 10-разрядный непрерывный свободный от «дрожания» и правильный по фазе сигнал, выводимый на вывод PB3 (OC1). Таймер/счетчик 1 работает как реверсивный счетчик считающий от 0 до конечного значения (Таблица 5.1). При достижении конечного значения счетчик начинает считать в обратную сторону до нуля, после чего рабочий цикл повторяется. Когда значение счетчика совпадает с 8, 9 или 10-ю младшими битами регистра OCR1A, вывод PD1 (OC1) устанавливается или сбрасывается в соответствии с установками бит COM1A1 и COM1A0 в регистре TCCR1 (Таблица 3.5).

Таблица 3.5. Конечное значение таймера и частота ШИМ

Разрешение ШИМ

Конечное значение таймера

Частота ШИМ

8 бит

$00FF (255)

Ftc1/510

9 бит

$01FF (511)

Ftc1/1022

10 бит

$03FF (1023)

Ftc1/2046


В режиме ШИМ, при записи в регистр OCR1A, 10 младших бит передаются во временный регистр и переписываются только при достижении таймером / счетчиком конечного значения. При этом устраняется появление несимметричных импульсов (дрожания), которые неизбежны при асинхронной записи OCR1A.

Таблица 3.6. Установка режима совпадения при работе ШИМ

COM1A1

COM1A1

Влияние на вывод OC1

0

0

Не подключен

0

1

Не подключен

1

0

Очищается при совпадении, для возрастания счетчика и сбрасывается для уменьшения (неинвертирующий ШИМ)

1

1

Очищается при совпадении, для уменьшения счетчика и сбрасывается для возрастания (инвертирующий ШИМ)


Если OCR1A содержит значение $0000 или конечное значение (TOP), вывод OC1 остается в том состоянии, которое определяется установками COM1A1 и COM1A0. Это показано в Таблице 3.7.

Таблица 3.7. Выход ШИМ для OCR=$0000 или TOP

COM1A1

COM1A1

OCR1A

вывод OC1

1

0

$0000

Низкий

1

0

TOP

Высокий

1

1

$0000

Высокий

1

1

TOP


В режиме ШИМ флаг переполнения таймера 1 (TOV1) устанавливается, когда счетчик изменяет направление счета в точке $0000. Прерывание по переполнению таймера 1 работает как при нормальном режиме работы таймера / счетчика, т.е. оно выполняется, если установлен флаг TOV1 и разрешены соответствующие прерывания. То же самое касается флага совпадения и прерывания по совпадению.

.14 Универсальный асинхронный приемо-передатчик

В состав AT90S2313 входит универсальный асинхронный приемопередатчик (UART), его основные особенности:

генерация произвольных значений скорости

высокая скорость при низких тактовых частотах

8 или 9 бит данных

фильтрация шума

Определение переполнения

Детектирование ошибки кадра

Определение неверного стартового бита

Три раздельных прерывания - завершение передачи, очистка регистра передачи и завершение приема.

.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 прием данных запрещается. При этом вывод PD0 можно использовать для ввода / вывода общего назначения. При установке RXEN, приемник подключен к выводу PD0 независимо от состояния бита DDD0 в регистре DDRD.

.17 Генератор скорости передачи

Генератор скорости передачи этот делитель частоты, который генерирует скорости в соответствии с нижеприведенным выражением:= Fck / (16*(UBRR+1)) (здесь BAUD - скорость передачи (бод)), Fck - частота тактового генератора процессора, UBRR - содержимое регистра скорости передачи UART

.18 Характеристики по постоянному току

Основные характеристики приведены в Таблице 3.8=2.7…6.0V (если не указано иначе)

Таблица 3.8

Параметр

Мин.

Тип.

Макс.

Ед. изм.

Входное напряжение '0'

-0.5


0.3 Vcc

В

Входное напряжение '1' (кроме XTAL1 и RESET)

0.6 Vcc


Vcc+0.5

В

Входное напряжение '1' на XTAL1 и RESET

0.7 Vcc


Vcc+0.5

В

Выходное напряжение '0'(1) (Порты B и D)

IIL=20mA, Vcc = 5V IIL=10mA, Vcc = 3V



0.5

В

Выходное напряжение '1' (Порты B и D)

I0H=3mA, Vcc = 5V I0H=3mA, Vcc = 3V

Vcc-0.5



В

Выходной ток (Порты B и D)

Vcc=5V, V0H = 4.5V Vcc=3V, V0H = 2.7V


10 5


мА

Поглощаемый ток (Порты B и D)

Vcc=5V, VIL = 0.5V Vcc=3V, VIL = 0.3V


20 10


мА

Потребляемый ток:

Активный режим, 3V, 4 МГц



3

мА


холостой ход (idle mode), 3V, 4 МГц



1

мА


Примечания:

Максимальный ток через вывод - 20 мА (5V), 10 мА (3V)

Максимальный ток через все выводы - 80 мА

Создание макета платы управления.

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

На 1 контроллер была возложена задача управления 2 рульмашинками в зависимости от полученного задания без использования внешних датчиков обратной связи.

Схема управления была электрически развязана с сервоприводами при помощи оптронных развязок (на схеме обозначены VD1 и VD2). Управляющий сигнал приходил на разъём J3. Распайка его контактов соответствует разъёму DB9P для обеспечения функционирования последовательного интерфейса. Однако для обеспечения нормального функционирования микроконтроллера было необходимо использовать т.н. кренки (на схеме обозначены DА1 и DА2) которые преобразовывали уровни сигнала в допустимые в соответствии с документацией контроллера. Так же потребовалось создание отдельной платы преобразования и прошивки на которой разместилась микросхема отвечающая за кодирование сигнала и смены микропрограммы контроллера - MAX232, преобразование сигнала последовательного порта, разъём «кроватка» для быстрой смены контроллеров и разъём для перепрограммирования флэш памяти МК через параллельный интерфейс с необходимой обвязкой. Это потребовалось сделать из-за нехватки места на платах (Рисунок) расположенных на звеньях контроллера, с них в целях экономии места был убран разъём программирования, а сам контроллер крепился на плате в специальный разъём «кроватку» для удобства демонтажа.

В результате была создана распределённая МК сеть с топологией общей шины работающая по последовательному интерфейсу в соответствии со стандартом EIA RS-232-C, CCITT V.24 для связи с Верхним уровнем. Который был реализован в виде управляющей программы на ПК. Им решалась задача моделирования волнового движения, формирования задания которое должно быть реализовано исполнительной системой и отправкой его через последовательный порт на контроллеры. Все последующие операции: приём, декодирование и обработка посылки и формирование требуемого ШИМ выполнялись микроконтроллерами т.е. Нижним уровнем.

 


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Гц.

 (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) это сделано для удобства проведения экспериментов с движением робота. Так как раньше для её изменения приходилось перепрограммировать все микроконтроллеры, что требовало много времени и сил в следствии труднодоступности кроватки с контроллером на собранном роботе.

Кроме того в тексте программы можно видеть закомментированные участки кода отвечающие за отсылку данных (строки 156-170 и 209-217) о текущем значение ШИМ который был выставлен. Это псевдообратная связь по положению так, как она отражает лишь, то что ШИМ был выдан на машинку, а не реальное положение которое заняла машинка. Данный алгоритм был отключен за ненадобностью, но возможность быстро его восстановить была оставлена.

В ходе тестирования и отладки программного обеспечения микроконтроллера были выявлены ошибки обработки массива и выдачи ШИМ. Для их устранения пришлось несколько раз (по мере обнаружения) перепрограммировать все микроконтроллеры.

Заключение


В соответствии с ТЗ выполнена разработка системы управления многозвенным исполнительным устройством с числом степеней подвижности необходимых к управлению 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

Похожие работы на - Разработка нижнего контура управления змееподобного робота

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!