Другие журналы

научное издание МГТУ им. Н.Э. Баумана

НАУКА и ОБРАЗОВАНИЕ

Издатель ФГБОУ ВПО "МГТУ им. Н.Э. Баумана". Эл № ФС 77 - 48211.  ISSN 1994-0408

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

# 08, август 2009

Ривкин Андрей Маркович

лицей ╧ 1581, 11 класс

 

Научный руководитель:

Власов Андрей Игоревич

кандидат технических наук,

доцент кафедры «Проектирование и технология

производства электронной аппаратуры»

МГТУ им. Н.Э.Баумана

 

Введение

Работа посвящена разработке и исследованию самоходного мехатронного аппарата робота Robo-PICA, построенного на основе микроконтроллера PIC16F877A. Целью данной работы является создание робота, исследование датчиков и механизмов управления, входящих в базовый комплект робота, а также программирование робота и исследование его поведения

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

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

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

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

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

Робот Robo-Pica способен анализировать ситуацию и принимать решения в соответствии с заложенными в него программами управления. Большой набор датчиков, подключаемых к роботу, и возможность программирования поведения робота делают набор его возможностей огромным. Robo-pica оснащен гусеницами, что позволяет ему преодолевать почти любые препятствия на поверхности земли.

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

Возможности робототехники демонстрируются на различных робототехнчисеких соревнвоаниях, таких как «Eurobot», «Robocup», «First» (For Inspiration and Recognition of Science and Technology), Fira RoboWorld Cup (например, в Дортмунде, Германия в 2006 году) Фестивалях  «Роботы для людей», «Мобильные роботы», других форумах и конференциях.

1. Архитектура и принципы функционирования самоходного мехатронного аппарата «Robo-PICA»

1.1. Принципы работы самоходного мехатронного аппарата

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

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

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

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

1.       Движение по произвольным твердым поверхностям.

2.       Возможность разворота относительно своего центра, или относительно центра гусеницы (очень удобно в ограниченном пространстве).

3.       Преодоление различных препятствий.

4.       Движение по наклонной поверхности без проскальзывания, в отличие от колес.

Рис. 1. Гусеницы робота «Robo-PICA»

 

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

 

1.2. Конструкция самоходного мехатронного аппарата

Конструктивно электронная схема робота выполнена на одной печатной плате RBX-877 PIC16F877A из фольгированного стеклотекстолита. Вся ходовая часть робота (двигатели, гусеницы) крепятся к пластиковой раме, к которой сверху крепится печатная плата с электронной схемой. На раму так же установлен батарейный отсек (рис. 2).

Рис. 2. Крепление двигателей и батарейного отсека

 

Датчики, в зависимости от их назначения могут крепиться как на раму, так и сверху на печатную плату. На плате есть стандартные разъемы для подключения датчика. Дисплей расположен на верхней части печатной платы (рис. 3).

 

Рис. 3. Внешний вид робота Robo-Pica

 

Питание электрической схемы и двигателей осуществляется от 4 батареек АА. Напряжение питания – 6 вольт. Потребляемый ток (мин., макс.) 35-600мА.

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

Программатор позволяет программировать микросхемы имеющие возможность загрузки ПЗУ программ и ЭСППЗУ данных через SPI порт. Предусмотрена возможность регулирования напряжения питания программируемых устройств. Благодаря данному микроконтроллеру мы можем самостоятельно написать программное обеспечение для этого робота. Его также можно использовать для экспериментов с программой управления роботом.

Программы могут быть написаны на языках программирования BASIC и С.

 

1.3. Датчики самоходного мехатронного аппарата

В базовый комплект робота Robo-Pica входят три датчика:

·         датчик ZX-03 инфракрасный отражатель, позволяющий определить цвет объекта.

·         датчик ZX-08 инфракрасный датчик бесконтактного обнаружения объектов.

·         инфракрасный приемник ZX-05 для приема сигналов управления с пульта дистанционного управления ER-4.

Так как датчики имеют стандартный интерфейс и подключаются в стандартные разъемы (программируемые порты) RA (RA0-RA3, RA5) и RE (RE0-RE2) (см. главу 2), то базовый набор датчиков можно расширить за счет установки дополнительных стандартных датчиков используемых в промышленности.

 

Датчик ZX-03. Инфракрасный отражатель. Один из главных датчиков Robo-PICA это инфракрасный отражатель ZX-03. Этот датчик испускает инфракрасный сигнал и затем ловит отражение этого инфракрасного сигнала от поверхности. В зависимости от типа и цвета поверхности меняется интенсивность отраженного сигнала. По этой интенсивности можно приблизительно судить об оттенках цвета поверхности. Прибор ZX-03 сконструирован на основе отражающего датчика объектов TCRT5000 и может работать только в непосредственной близости к объекту.

Расстояние между датчиком и поверхностью должно находить в пределах от 3 до 8мм. ZX-03 состоит из инфракрасного диода и инфракрасного транзистора. Когда инфракрасное излучение, испускаемое диодом, отражается от поверхности, оно попадает на базу транзистора, расположенного за черным окном датчика. Чем больше интенсивность отраженного сигнала, тем больше открывается транзистор и тем больше тока он пропускает. Таким образом, мы можем измерять интенсивность отраженного сигнала и судить о цвете исследуемой поверхности. Схема датчика ZX-03 приведена на рис. 4.

Рис. 4. ZX-03 Инфракрасный отражатель ZX-03

 

Важную роль в микроконтроллере играют программируемые порты. На них может подаваться как аналоговый, так и цифровой сигнал. Конвертирование аналогового сигнала в цифровой выполняет модуль конвертора (ADC). Он обслуживает 8 портов - порты RA0-RA3, RA5, RE0-RE2. Управление конвертором выполняется с помощью регистра ADCON1.

Команда

Описание

ADCON1 = %10000000

откроет все порты А и Е как аналоговые

ADCON1 = $07

откроет все порты А и Е как цифровые

Для работы в аналоговом режиме надо задать три значения:

ADC_BITS

число битов результата

ADC_CLOCK

какие часы использовать (3 – внутренние часы)

ADC_SAMPLEUS

время задержки в микросекундах

Для микроконтроллера PIC16F877A надо установить:

DTFINE ADC_BITS                 10

DTFINE ADC_CLOCK              3

DEFINE ADC_SAMPLEUS     50

Датчик ZX-03 работает в аналоговом режиме. Если он подключен к порту RA0, то для чтения значения с датчика надо использовать команду ADSIN. Фрагмент программы на языке BASIC для работы с датчиком ZX-03 приведен ниже

Команда

Описание

DTFINE ADC_BITS                 10

DTFINE ADC_CLOCK              3

DEFINE ADC_SAMPLEUS     50

ADCON1 = %10000000

Все порты А и Е переведены в аналоговый режим.

SENSOR0 VAR WORD

Объявляем переменную Sensor0  типа Word, в которую будем считывать показание датчика

ADCIN 0, SENSOR0

Считать значение датчика с порта RA0 в переменную SENSOR0

Установим два датчика ZX-03 (инфракрасный отражатель) на днище робота Robo-Pica так, что бы они находились на некотором расстоянии друг от друга справа и слева от продольной оси робота. Тогда при движении робота по белой поверхности с нанесенной на нее черной полосой мы можем получить 4 разных варианта:

1. Оба датчика определяют белый цвет, т.е. находятся по разные стороны от черной полосы (рис. 5).

В этом случае робот может продолжать движение вперед вдоль черной полосы.

2. Оба датчика определяют черный цвет, т.е. робот пересекает черную полосу перпендикулярную его движению (рис. 6).

 

 

 

 

 

 

 

 

          Рис. 5.                                                              Рис. 6.

 

В этом случае надо принять некоторое решение (например, продолжить движение вперед или повернуть).

3. Левый датчик находиться над черной полосой, а правый – над белой поверхностью.  Робот отклонился вправо от заданной траектории (см. рис. 7). Следовательно, робот должен повернуть налево, до тех пор, пока он вновь не станет параллелен черной линии.

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

 

 

 

 

 

 

 

 

Рис. 7.                                                Рис. 8.

 

В нашем эксперименте датчик показывал значение 300 для белой поверхности и значение 100 для черной поверхности. Поэтому в качестве граничного значения было выбрано значение 200 = (300+100)\2. При значении более 200 мы считали, что цвет белый.

На Robo-pica можно установить большее количество датчиков, это будет способствовать более точному определению направления полосы, и соответственно более четкому следованию ей.

 

Датчик ZX-08. Инфракрасный датчик бесконтактного обнаружения объектов. Одной из популярных функций умного робота является возможность бесконтактного обнаружения объектов. Robo-PICA тоже умеет это делать. Это выполняется при помощи инфракрасного датчика обнаружения объектов ZX-08.

Данный датчик имеет приемник и передатчик инфракрасного излучения. Он может обнаруживать препятствия на расстоянии 6 см. Датчик имеет два провода со стандартными разъемами, подключаемыми к плате робота: Rx и Tx. По Rx выполняется чтение данных с датчика и он соединяется с цифровым входом платы RBX-877. По Tx идет передача данных от электронной схемы робота к датчику, поэтому Tx должен быть присоединен к цифровому выходу платы RBX-877.

Посылка логической «1» на Tx заставит инфракрасный передатчик датчика ZX-08 включиться. Если перед ним есть препятствие, то посланный инфракрасный сигнал отразиться от этого объекта и попадет на приемник инфракрасного излучения. Это приведет к тому, что логический «0» будет послан на входной порт Robo-PICA. Т. е. появление логического «0» на входном порту Rx означает обнаружение препятствия. Схема инфракрасного датчика ZX-08 приведена на рис. 9.

Рис. 9. Схема инфракрасного датчика обнаружения объектов ZX-08

 

Для того чтобы робот мог использовать данные с датчика ZX-08 необходимо написать программу, читающую данные с датчика,  и загрузить ее в микроконтроллер. Ниже представлен фрагмент программы на языке бейсик, которая позволяет роботу определять есть ли перед ним препятствие.

Предположим, что провод Rx датчика подключен к пору RA3, а провод Tx – к порту  RE0. Работа должна выполняться в цифровом режиме.

Команда

Описание

ADCON1 = $07

Перевод портов RA и RE в цифровой режим

МЕТКА:

HIGH PORTE.0

Посылка логической «1» на порт RE0

активизирует датчик

IF (PORTA.3 = 0) THEN

Чтение значения с порта RA3 и его проверка, если считан логический «0», значит датчик обнаружил препятствие

GOTO METKA

Команды посылки и чтения сигнала надо выполнять постоянно, т. е. они должны быть в цикле.

 

Модуль инфракрасного приемника ZX-05. Еще одним достоинством автоматических роботов является то, что они способны принимать команды от  пульта дистанционного управления, расположенного на некотором расстоянии от робота.

Robo-PICA оснащен системой инфракрасного дистанционного управления. Он управляется дистанционно с помощью пульта ER-4. Пульт дистанционного управления ER-4 может передавать данные на серийный порт с помощью инфракрасного излучения. Для того чтобы робот мог получать эти сигналы от пульта, он должен быть оснащен 38 Килогерцовым инфракрасным приемником.

Данные от пульта ER-4 передаются на расстояние до 5-10 метров за счет модулирования сигнала инфракрасного излучения. Данная система управления похожа на  систему управления телевизором с помощью пульта дистанционного управления. Несущая частота сигнала 38 килогерц. Таким образом, приемник должен демодулировать несущую частоту 38 килогерц. После этого приемник передает информацию в микроконтроллер.

Если датчик ZX-05 не находит сигнал инфракрасного излучения частотой 38 килогерц, то на микроконтроллер передается логическая «1».  В противном случае, если он обнаруживает сигнал инфракрасного излучения частотой 38 килогерц, то на микроконтроллер передается логический «0».  Инфракрасный приемник и его схема изображены на рис. 10.

 

 

Рис. 10. Схема и конструкция инфракрасного приемника ZX-05

 

Для удаленного управления данным Самоходным Мехатронным Аппаратом используется пульт дистанционного управления ER-4. Его характеристики:

·         Действует на расстоянии 5-10 метров на открытом пространстве.

·         Четырех канальный переключатель функционирует в режиме вкл./выкл.

·         Потребляет мало энергии. Автоматически включает режим сохранения энергии после посылки данных.

·         Работает от 2-х АА батареек.

·         Передает серийные данные в формате 8N1 (8 бит данных) со скоростью 1200 бит в секунду.

Для того чтобы облегчить приемнику чтение значений переключателей передаваемое пультом дистанционного управления, пульт ER-4 передает серийные данные по стандарту RS-232 со скоростью 1200 бит в секунду в формате 8N1. При нажатии различных кнопок на пульте ER-4 передаются различные символы. Расположения кнопок приведено на рис. 11.

Рис. 11. Фотография пульта дистанционного управления ER-4, схема расположения его кнопок и принципиальная схема пульта

 

Пульт имеет четыре кнопки и может посылать следующие сигналы:

1.       При нажатии кнопки «А» посылается символ «А», а за ним символы «а».

2.       При нажатии кнопки «B» посылается символ «B», а за ним символы «b».

3.       При нажатии кнопки «C» посылается символ «C», а за ним символы «c».

4.       При нажатии кнопки «D» посылается символ «D», а за ним символы «d».

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

Для того чтобы роботом можно было управлять с пульта дистанционного управления, в микроконтроллер надо загрузить соответствующую программу. Ниже приведен фрагмент программы, показывающий как можно определить, какая кнопка была нажата на пульте. Пусть датчик подключен к порту RA2. Работа должна выполняться в цифровом режиме.

Команда

Описание

KEY VAR BYTE

Объявление переменной KEY длиной в 1 байт, в которую будет считываться  код кнопки

ADCON1 = $07

Перевод портов RA и RE в цифровой режим

МЕТКА:

SERIN2 PORTA.2, 813, 100, METKA, [KEY]

Команда SERIN2 читает значение символа из порта RA2 в переменную KEY

IF (KEY = "A") OR (KEY = "a") THEN...

IF (KEY = "B") OR (KEY = "b") THEN…

IF (KEY = "C") OR (KEY = "c") THEN…

IF (KEY = "D") OR (KEY = "d") THEN…

Проверка считанного значения и реакция на него

GOTO МЕТКА

Команда SERIN2 имеет формат SERIN2 порт, мода, время, метка, [переменная для результата]. В нашем случае порт – это RA2. Мода определяет скорость передачи и ее формат и устанавливается в 813. Время – время ожидания в миллисекундах. Если за это время сигнал с пульта не получен, то мы переходим на Метку. Переменная – переменная типа BYTE в которую считывается полученное значение. Считывание символов производится в цикле.

 

1.4. Управление двигателями

В базовый комплект робота входят 2-DC электромотора, и есть места для подключения еще трех вспомогательных электромоторов. При одновременном вращении осей обоих  моторов в одном направлении Robo-Pica будет двигаться вперед или назад.

Если же остановить один из моторов, а второй будет работать, то робот будет поворачиваться относительно центра одной из гусениц. Допустим, левый мотор остановлен, а ось правого вращается вперед, тогда Robo-Pica поворачиваться относительно точки поворота, совпадающей с центром гусеницы.

 

Рис. 12. Поворот вокруг гусеницы

 

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

Рис. 13. Поворот вокруг центра

 

Пусть двигатель подключен к порту С1. Двигатели у Robo-Pica подключены не на прямую к микроконтроллеру, а через модуль драйвера IC6 L293D. Он служит для регулировки скорости и для включения/выключения двигателей. Схема подключения моторов A и B приведена на рис. 14. Например, для двигателя A от микроконтроллера к IC6 L293D подходят 3 контакта (с портов RD0, RD1 и RC2) (для двигателя B – RD2, RD3 и RC1).

 

Рис. 14. Схема на которой изображены подключения двигателей А и B

 

Порт RC2 служит для включения мотора А. Если мотор выключен, то его ось будет свободно прокручиваться (незаблокированна). Когда же мотор включают, т.е. подают на него логическую «1», то возможны 4-е положения мотора. Они представлены в таблице 1. строками 2-5 и зависят от того, какой сигнал подан на порты (0 или 1).

Таблица 1.

Значения портов моторов

1.       Если на RD0 и RD1 поданы 0, то ось заблокирована.

2.       Если на RD0 подан 0, а на RD1 - 1, то ось крутиться по часовой стрелке.

3.       Если на RD0 подана 1, а на RD1 – 0, то ось крутиться в противоположную сторону, т.е. против часовой.

4.       Если на RD0 и RD1 поданы 1, то ось заблокирована.

Аналогично с мотором B.

Ниже представлен фрагмент программы, для управления двигателями.

Команда

Описание

HIGH PORTC.2

Посылка 1 на порт RC2 включает мотор А

TRISD = %11110000

Открытие портов RD0-RD3 на выход

LOW PORTD.0

Посылка 0 на порт RD0

HIGH PORTD.1

Посылка 1 на порт RD1

Эта программа заставляет мотор A вращаться по часовой стрелке. Мотор будет работать в этом режиме до тех пор, пока мы не пошлем на эти порты другие значения (т.е. цикл не нужен). Однако индивидуальная работа с каждым портом неудобна, поэтому можно заготовить битовые маски для порта D, которые будут управлять действием двух ведущих моторов (А и B) и посылать их в цикле на порт D.

Пример таких масок:

·         Оба вперед           00000110

·         Оба назад             00001001

·         Поворот налево     00000101

·         Поворот направо   00001010

В этом случае программа будет выглядеть проще

Команда

Описание

HIGH PORTC.2

HIGH PORTC.1

TRISD = %11110000

Loop:

GOSUB FORWARD : PAUSE 2000

GOSUB S_LEFT90 : PAUSE 2000…

GOTO Loop

Вызывает подпрограмму,  делает паузу 2 сек.

FORWARDPORTD = %00000110  : RETURN

Пример подпрограммы, подает напряжение на 2 и 3 порты D. Что заставляет оба мотора крутиться вперед

S_LEFT90:     PORTD = %00000101  : PAUSE 600 :  RETURN

Поворот налево на 90 градусов

Также можно управлять скоростью передвижения Robo-Pica. Если напряжение на мотор подавать импульсами, то в зависимости от продолжительности импульсов будет меняться суммарная скорость движения робота. Это позволяет управлять скоростью движения робота и скоростью и углом поворота. Так же можно запрограммировать робота так, чтобы при определенных условия скорость была равна некоторому значению. Для того, что бы регулировать скорость движения используется команда PWM.

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

Например, если вы хотите получить не полную скорость, а только 50% от полной скорости, то необходимо использовать команду PWM вида:

HPWM X ,(Y*255)/100,Z

где X - это номер порта RCx, Y-процент от полной скорости который нам необходимо получить, Z- частота тока в герцах (для моторов DC – 20 kHz).Для нашего случая команда будет выглядеть следующим образом.

HPWM 1 ,(50*255)/100,20000

Фрагмент программы управления скоростью мотора А представлен ниже:

Команда

Описание

OUTPUT PORTC.1

Объявить порт RC1 как выходной порт

HPWM 1, (50*255)/100, 20000

LOW PORTD.0

Установить скорость – 50% от максимальной скорости

HIGH PORTD.1

ось крутится по часовой стрелке

2. Схемотехническое решение самоходного мехатронного аппарата «Robo-Pica»

Электронная схема Самоходного Мехатронного Аппарата выполнена на единой печатной плате, вычислительный модуль реализован на базе микроконтроллера PIC16F877(A). Ее внешний вид и расположение элементов приведен на рис. 15.

Рис. 15. Расположение элементов Самоходного Мехатронного Аппарата на печатной плате.

 

Управление двигателями выполняется через порты для основных и дополнительных моторов. Работа с датчиками выполняется через 8 программируемых портов. RA и RE. Загрузка новых программ с ПК  через программатор выполняется через параллельный порт.

На плате размещен динамик для воспроизведения звуков и 3 лампочки (светодиода), включением/выключением которых может управлять микроконтроллер. Поверх микроконтроллера крепится LCD экран, на который микроконтроллер может выводить символьную информацию.

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

При желании информацию с Самоходного Мехатронного Аппарата можно вывести не только на LCD экран, но и передать ее на персональный компьютер (ПК). Для этого на плате предусмотрен стандартный разъем RS-232, через который микроконтроллер может передавать данные на ПК.

 

2.1. Принципиальная электрическая схема

Принципиальная схема Самоходного Мехатронного Аппарата представлена на рис. 16.

Рис. 16. Принципиальная электрическая схема Самоходного Мехатронного Аппарата

Сердцем схемы является микроконтроллер PIC16F877A и элементы схемы, необходимые для его функционирования:

·         таймер;

·         блок питания (батарея);

·         блок оповещения о низком уровне заряда;

·         блок обеспечения напряжения 5 вольт.

Для работы элементов схемы необходимо напряжение 5 вольт. Поскольку блок питания из 4 батареек АА выдает 6 вольт, и это напряжение постепенно падает, в схеме предусмотрен блок стабилизации напряжения, выдающий на схему 5 вольт до тех пор, пока напряжение на блоке питания не упадет до 1,5 вольт (батарея разряжена).

Однако для работы блока загрузки программ в микроконтроллер (он прошивает новую программу в память микроконтроллера) нужно напряжение 12 вольт. Поэтому в схеме предусмотрен генератор высокого напряжения, преобразующий 5 вольт в 12 вольт. Ниже приведена схема, на которой изображена батарея, блок оповещения и генератор высокого напряжения (рис. 17).

 

 

 

 

 

 

 

Рис. 17.

2.1.1. Таймер

Таймер построен на основе керамического резонатора с частотой 20 Гц. Он задает базовую тактовую частоту для работы элементов схемы. На основе изменения базовой частоты можно управлять скоростью вращения моторов (см. описание работы с моторами). Таймер подключают к микроконтроллеру через порты 13 и 14 (рис. 18).

Рис. 18.

 

Остальные элементы принципиальной схемы можно разделить на 2 группы: это устройства, которыми может управлять микроконтроллер (исполнительные устройства):

·         динамик;

·         лампы;

·         LCD монитор;

·         основные моторы;

·         дополнительные моторы

и порты для обмена информацией между микроконтроллером и внешними устройствами (датчиками, персональным компьютером, дополнительными модулями). К ним относятся:

·         стандартные порты для подключения датчиков

·         порт для загрузки программ в микроконтроллер с ПК

·         порт вывода данных на ПК (RS-232)

·         порт для подключения дополнительных модулей.

 

2.1.2. Блоки управления исполнительными модулями

Блок управления основными моторами был описан выше и его схема приведена на рис. 14.

Три дополнительных сервомотора можно подключить через три специальных порта, расположенные на плате. Они подключены к портам RB2 RB1 и RB0 микроконтроллера (рис. 19).

 

Рис. 19.

 

Динамик не подключается отдельно, он уже находится на плате, подключенный к порту RA4 (рис. 20).

Рис. 20.

 

Три лампы (светодиода) подключены к портам RB3, RB4, RB5 микроконтроллера. И через эти порты можно включать и выключать лампы, подавая на них 1 или 0 (рис. 21).

Рис. 21.

 

LCD экран подключается к портам RC0 RC5 RD7 RD6 RD5 RD4. На него можно выводить различную информацию. В длину на нем может уместиться до 16 символов. В языках программирования есть набор команд, с помощью которых можно выводить информацию на экран (рис. 22).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 22.

 

2.1.3. Блоки обмена информацией между микроконтроллером и внешними устройствами

На плате предусмотрены восемь стандартных программируемых портов, через которые микроконтроллер может обмениваться информацией с внешними устройствами (например, датчиками, описанными выше). Микроконтроллер может, как писать, так и читать информацию с этих портов. Порты имеют названия RE2 RE1 RE0 RA5 RA4 RA3 RA2 RA1 RA0 (рис. 23). Работа с портами и подключение к ним датчиков описаны в разделе 1.3.

Рис. 23.

 

I2C - это порт для подключения различных дополнительных модулей. Новый модуль будет подключен к RC4 и RC3 портам микроконтроллера (рис. 24). Эта возможность позволяет расширять функционал Самоходного Мехатронного Аппарата

Порт RS-232 служит для управления Самоходным Мехатронным Аппаратом через компьютер. Через него нельзя загружать программы, но можно считывать информацию с Robo-PICA. Стандартный разъем RS-232 связан с портами RC6 и RC7 микроконтроллера (рис. 25).

Рис. 24.

 

Рис. 25.

 

Для загрузки новой программы в микроконтроллер используется специальный параллельный порт. Он позволяет специальным кабелем соединить микроконтроллер с ПК и загрузить в микроконтроллер бинарную программу управления микроконтроллером, полученную в результате компиляции С или BASIC программы с помощью специального компилятора для ПК. Загрузка программ будет выполняться в микроконтроллер через порты RB6, RB7 и MCLR (рис. 26). Загруженная программа будет храниться в памяти микроконтроллера до тех пор, пока туда не будет загружена другая программа.

Рис. 26.

 

Укрупненная блок-схема Самоходного Мехатронного Аппарата изображена на рис. 27.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 27. Блок-схема Самоходного Мехатронного Аппарата

 

3. Экспериментальные исследования

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

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

Самым простым в реализации и одним из самых дешевых является способ движения Самоходного Мехатронного Аппарата по разметке. На поверхность, по которой будет двигаться Самоходный Мехатронний Аппарат, наносится цветная линия и Аппарат следует вдоль этой линии. В стандартном комплекте поставки робота Robo-PICA есть два инфракрасных датчика ZX-03, которые позволяют реализовать такой способ движения. Однако стандартная программа робота была ориентированна на движение вдоль черной полосы, нарисованной на белом фоне (на бумаге). Такой способ хорош, если у вас есть один робот и один маршрут или несколько роботов и несколько непересекающихся маршрутов (у каждого робота свой непересекающийся маршрут).

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

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

Итак, нам надо выяснить, какие цвета лучше всего использовать для разметки и для фона. Нам нужны цвета, наиболее точно определяемые датчиком ZX-03.

 

3.1. Выбор цветов разметки маршрута

Первое исследование посвящено выбору цвета, у которого отражающая способность отличается от остальных. Для этого возьмем следующие базовые цвета спектра: черный, белый, зеленый, красный, фиолетовый, желтый, рыжий, синий и коричневый. Полосы этих цветов нарисуем на белой бумаге. В микроконтроллер загрузим программу, которая считывает значение с инфракрасного датчика ZX-03 и отображает его на LCD экране робота. После этого будем ставить робота на каждую из этих полос, и он будет показывать на экране значение, считанное с датчика. Точность измерения менялась в пределах ±5 ед. Результаты измерений приведены в таблице 2. и на графике, показанном на рис. 28. Код программы можно посмотреть в приложении.

Таблица 2.

Показания датчика для базовых цветов

Цвет

Значение

Черный

60

Коричневый

270

Зеленый

975

Фиолетовый

977

Желтый

977

Красный

978

Рыжий

980

Синий

981

Белый

983

Рис. 28. Показания датчика для базовых цветов

 

Из графика видно, что сильно отличаются черный, коричневый и белый цвета. Все остальные показания близки к белому цвету. Также видно, что в интервале между коричневым и зеленым нет никакого цвета. Поэтому я приготовил еще два цвета: серый и темно зеленый и повторил эксперимент для пяти цветов: черного, белого, серого, коричневого и темно зеленого. Результат измерений показан в таблице 3 и на графике, показанном на рис. 29. Показания датчика для этих пяти цветов отличаются на 100-200 ед. и следовательно программа может легко их распознать.

Таблица 3.

Показания датчика для сильно различающихся цветов

Цвет

Значение

Черный

60

Серый

145

Коричневый

270

Темно зеленый

530

Белый

977

Рис. 29. Показания датчика для сильно различающихся цветов

 

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

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

 

3.2. Оценка влияния типа освещения на показания датчика

Во втором исследовании проверим, насколько сильно зависит коэффициент отражения того или иного цвета от типа освещения. Для этого снимем показания датчика в темноте, при комнатном освещении и при естественном свете (на улице) для трех полос: черной, белой и коричневой. Результаты измерений приведены в таблице 4 и на графике, показанном на рис. 30.

Из показаний снятых с датчика видно, что с учетом погрешности измерения результат не зависит от освещения. Т.е. т.к. датчик ZX-03 инфракрасный, то видимый глазом свет на показания не влияет (видимы и инфракрасный свет имеет разную частоту). Это означает, что данный способ указания движения можно применять  в любое время суток, днем и ночью, на улице и в помещении.

 

3.3. Оценка влияния загрязнения полосы на показания датчика

В третьем исследовании проверим, насколько показания датчика зависят от искажения цвета. Если полоса будет нанесена на улице, то она будет загрязняться. На нее может попасть вода, песок, листья и т.д. Возьмем наши полосы белого, черного и коричневого цвета и загрязним их. Загрязнение я имитировал, посыпая полосы местами песком. Результаты измерения приведены в таблице 5 и на графике, показанном на рис. 31.

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

Заметим, что отражательная способность белого цвета при загрязнении уменьшилась, а отражательная способность темных цветов – увеличилась, т.е. результаты зависят от цвета, состава и количества грязи.

Таблица 4.

Показания датчика при различном освещении

Цвет

Комнатное освещение

В темноте

На улице

Черный

60

61

61

Коричневый

270

266

270

Белый

983

982

981

Рис. 30. Показания датчика при различном освещении

 

Таблица 5.

Показания датчика для чистой и загрязненной полосы

Цвет

Простой

Загрязненный

Черный

60

104

Коричневый

270

340

Белый

983

790

Рис. 31. Показания датчика для чистой и загрязненной полосы

 

3.4. Оценка влияния типа поверхности на показания датчика

Следующее исследование позволит определить, как влияет на результаты измерения материал поверхности, на которую нанесена полоса. Возьмем те же три цвета черный, белый и коричневый и нарисуем полосы на разных поверхностях: бумаге, дереве пластмассе и кафеле. Снимем показания датчика. Результаты измерения изображены в таблице 6 и графике, показанном на рис. 32.

Таблица 6.

Показания датчика на различных поверхностях

Материал

Черный

Коричневый

Белый

бумага

60

270

983

дерево

61

272

977

кафель

58

267

984

пластик

62

269

980

Рис. 32. Показания датчика на различных поверхностях

 

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

 

3.5. Результаты исследования

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

 

Заключение

Целью данной работы было изучение основ мехатроники и принципов построения самоходных автоматических аппаратов на основе микроконтроллеров. Сегодня такие аппараты находят очень широкое применение в самых разных областях промышленности (от бытовой техники до исследования космоса и работы в труднодоступных местах). Необходимо было изучить возможности таких аппаратов и принципы программирования их поведения.

Для этого был создан самоходный гусеничный робот  Robo-Pica на основе микроконтроллера PIC16F877A. Были исследованы конструкция и поведение робота, особенности его системы ориентации в пространстве, а также возможность создания и загрузки в микроконтроллер программ, написанных на языке BASIC.

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

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

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

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

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

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

Приложение

Программа для считывания данных с датчика ZX-03 и вывода их на экран.

SENSOR0 VAR WORD

DEFINE OSC 20 ' Частота 20МГц

DEFINE ADC_BITS 10 ' Количество битов в результате

DEFINE ADC_CLOCK 3 ' Использовать внутренние часы (Internal RC = 3)

DEFINE ADC_SAMPLEUS 50 ' Измерять время в микросекундах

DEFINE LCD_DREG PORTD ' Установить порт для экрана

DEFINE LCD_DBIT 4 ' Использовать 4-х битную шину

DEFINE LCD_RSREG PORTC ' Задать LCD Register Select порт

DEFINE LCD_RSBIT 0 ' Задать LCD Register Select  бит

DEFINE LCD_EREG PORTC ' Установить порт включения LCD

DEFINE LCD_EBIT 5 ' Установить бит включения LCD

DEFINE LCD_BITS 4 ' Установить размер шины LCD

DEFINE LCD_LINES 2 ' Установить количество строк LCD

DEFINE LCD_COMMANDUS 2000 ' Установить время задержки команд

DEFINE LCD_DATAUS 50 ' Установить время задержки передачи данных

 

ADCON1 = %10000000 ' Все порты А и Е - аналоговые

MAIN:ADCIN 0, SENSOR0 ' Читать данные из канала 2

LCDOUT $FE,$01,"SENSOR0 = ", DEC SENSOR0

PAUSE 500

GOTO MAIN

 

Список литературы

1.       Robot experiment with PIC microcontroller based-on Robo-PICA robot kit // Innovative Experiment Co. Ltd., 2006.

2.       PicBasic Pro Compiler // microEngineering Labs Inc., 2004 г

3.       Дитер Кохц. Измерение, управление и регулирование с помощью  PIC микроконтроллеров // МК-Пресс, 2006.

4.       Заец Н.И. Радиолюбительские конструкции на PIC-микроконтроллерах. – М.: Солон-Пресс, 2006.

5.       Джон Ловин. Создаем робота-андроида своими руками. – М.: ДМК пресс, 2007.

6.       Микушин А.В. Занимательно о микроконтроллерах. – СПб.: БХВ-Петербург, 2006.

 


Тематические рубрики:
Поделиться:
 
ПОИСК
 
elibrary crossref ulrichsweb neicon rusycon
 
ЮБИЛЕИ
ФОТОРЕПОРТАЖИ
 
СОБЫТИЯ
 
НОВОСТНАЯ ЛЕНТА



Авторы
Пресс-релизы
Библиотека
Конференции
Выставки
О проекте
Rambler's Top100
Телефон: +7 (915) 336-07-65 (строго: среда; пятница c 11-00 до 17-00)
  RSS
© 2003-2017 «Наука и образование»
Перепечатка материалов журнала без согласования с редакцией запрещена
 Тел.: +7 (915) 336-07-65 (строго: среда; пятница c 11-00 до 17-00)