Основные понятия о роботах и их разновидностях

Разработка аппаратно-программного комплекса для мобильного робота на базе Arduino. Принцип работы микроконтроллера, платформы Makeblock Ultimate Robot Kit и платы расширения Arduino Motor Shield. Широтно-импульсная модуляция. Среда программирования.

Рубрика Программирование, компьютеры и кибернетика
Вид отчет по практике
Язык русский
Дата добавления 12.10.2015
Размер файла 405,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

1. Определение понятия - робот

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

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

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

2. Понятие - последовательный порт (СОМ-Роrt)

Последовательный порт - название интерфейса стандарта RS-232, которым массово оснащались персональные компьютеры. Последовательным данный порт называется потому, что информация через него передаётся по одному биту, бит за битом (в отличие от параллельного порта). Хотя некоторые другие интерфейсы компьютера - такие как Ethernet, FireWire и USB - также используют последовательный способ обмена, название «последовательный порт» закрепилось за портом стандарта RS-232.ernet, FireWire и USB - также используют последовательный способ обмена, название «последовательный порт» закрепилось за портом стандарта RS-232. [11-13].

На рисунке 1 представлен последовательный порт стандарта RS-232.

Рисунок 1 - последовательный порт стандарта RS-232

3. Платформа Makeblock Ultimate Robot Kit

Набор Makeblock Ultimate Robot Kit включает в себя основу для сборки роботов, механических устройств и конструкций разного дизайна и концепций. Makeblock Ultimate Robot Kit представляет собой расширенный сборный комплект двух наборов - Makeblock Starter Robot Kit и Makeblock Advanced Robot Kit, включает в себя алюминиевые рейки (с желобом с резьбой для крепления в любом месте по всей длине), покрышки, зубчатые колеса, шкивы, ремни передач, моторы, переходники, втулки, заклепки, покрышки, винты. Все отверстия на деталях комплекта находятся на расстоянии 8 мм, имеют нарезную резьбу для исключения применения в конструкциях гаек и способствуют совместимости их с конструкторскими блоками Lego.

На рисунке 2 представлен внешний вид набора Платформа Makeblock Ultimate Robot Kit.

Рисунок 2. -набор Makeblock Ultimate Robot Kit.

4. Платформа ARDUINO

Arduino - Open Source платформа для прототипирования устройств, которая построена на микроконтроллерах Atmel AVR ATmega328, ATmega168, ATmega2560, ATmega32U4, ATTiny85 с частотой тактирования 16 или 8 МГц. В старых изделиях применялись ATmega8, ATmega1280 и другие. Такие микроконтроллеры можно программировать с помощью ISP (In-System Programming, внутрисхемный программатор) программатора на языке C. Arduino позволяет программировать находящийся на ней микроконтроллер с помощью встроенного в неё программатора.

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

Семейство микропроцессорных плат Arduino включает в себя несколько устройств, самыми популярными являются (по состоянию на июнь 2014 года):

· Arduino Uno

· Arduino Leonardo

· Arduino Due

· Arduino Mega 2560

· Arduino Nano

В данной работе использовалась аппаратная платформа Arduino Uno, внешний вид которой представлен на рисунке 3.

Рисунок 3 - внешний вид аппаратной платформы Arduino Uno.

Ардуино и Ардуино-совместимые платы спроектированы таким образом, чтобы их можно было при необходимости расширять, добавляя в устройство новые компоненты. Эти платы расширений подключаются к Ардуино посредством установленных на них штыревых разъёмов.

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

5. Принцип работы микроконтроллера

Микроконтроллеры для Arduino отличаются наличием предварительно прошитого в них загрузчика (bootloader). С помощью этого загрузчика пользователь загружает свою программу в микроконтроллер без использования аппаратных программаторов. Загрузчик соединяется с компьютером через USB, или с помощью отдельного переходника UART-USB. Поддержка загрузчика встроена в Arduino IDE и выполняется в один щелчок мыши.

На случай затирания загрузчика или покупки микроконтроллера без загрузчика разработчики предоставляют возможность прошить загрузчик в микроконтроллер самостоятельно. Для этого в Arduino IDE встроена поддержка нескольких популярных дешевых программаторов, а большинство плат Arduino имеет штыревой разъем для внутрисхемного программирования (ICSP для AVR, JTAG для ARM).

6. Плата расширения Arduino Motor Shield

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

Motor Shield -- это плата расширения для Arduino, основанная на схеме L293D предназначенная для двухканального управления скоростью и направлением вращения коллекторных двигателей постоянного тока, напряжением 5-24 В и максимальным током до 2 А на канал.

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

На рисунке 4 внешний вид платы расширения Arduino Motor Shield.

Рисунок 4 - Плата расширения Arduino Motor Shield.

7. Широтно-импульсная модуляция (ШИМ)

Широтно-Импульсная модуляция, или ШИМ, это операция получения изменяющегося аналогового значения посредством цифровых устройств. Устройства используются для получения прямоугольных импульсов - сигнала, который постоянно переключается между максимальным и минимальным значениями.

Данный сигнал моделирует напряжение между максимальным значением (5 В) и минимальным (0 В), изменяя при этом длительность времени включения 5 В относительно включения 0 В. Длительность включения максимального значения называется шириной импульса.

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

Цель работы - разработать аппаратно-программный комплекс для мобильного робота на базе Arduino для управления мобильным роботом через последовательный порт.

Задачи:

· Изучить платформу Arduino.

· Изучить исходную модель мобильного робота.

· Изучить способы передачи данных через последовательный порт.

· Разработать алгоритм обработки и исполнения получаемых команд.

· Разработать структурную схему проекта.

· Разработать программное обеспечение.

· Провести испытания.

8. Конструкторская часть

В данном разделе описывается практическая реализация проекта.

Для реализации проекта были выбраны элементы платформы робо-конструктора Makeblock Ultimate Robot Kit.

В качестве несущей конструкции мобильного робота выступали следующие элементы:

· Рейка, в количестве 2-ух штук, с восемью отверстиями и желобом 128 мм.

· Два уголка с отверстиями 3Ч3.

· Две плашки для крепления поворотных колес.

· Два колеса (68,5Ч22 мм).

· Два крепления для моторов (? 25 мм, D-шпиндель 4 мм).

· Два двигателя постоянного тока (? 25 мм, D-шпиндель 4 мм)

· Два листа фанеры в форме круга: толщина- 2мм., ? 140мм.

На рисунке 5 представлен внешний вид мобильного робота.

Рисунок 5 - внешний вид мобильного робота.

В качестве управляющей начинки была выбрана аппаратная платформа Arduino UNO со следующими характеристиками:

· Микроконтроллер (ATmega328).

· Рабочее напряжение - 5В.

· Рекомендуемое входное напряжение 7-12В.

· Предельное входное напряжение 6-20В.

· Цифровые входы/выходы - 14 (6 из которых могут использоваться как выходы ШИМ).

· Аналоговые входы - 6.

· Постоянный ток через вход/выход - 40 мА.

· Постоянный ток для вывода 3.3В - 50 мА.

· Флеш память - 32 Кб из которых 0.5 Кб используются для загрузчика.

· ОЗУ (Оперативно запоминающее устройство) - 2 Кб.

· Тактовая частота - 16МГц.

Управление двигателями робота производилось с помощью платы расширения Arduino Motor Shield с техническими характеристиками:

· Напряжение питания: +7…+24В.

· Количество силовых каналов: 4.

· максимально-продолжительный ток каждого канала: 0,6А.

· напряжение питания сервоприводов: 5 В.

· возможность реверса каждого двигателя.

· возможность независимого управления каждым каналом.

· модуль полностью совместим со всеми известными моделями Freeduino/Arduino: MaxSerial, Through-Hole, Diecimila, 2009, Duemilanove, а также Arduino Mega. Версия v3 может удобно стыковаться с Freeduino/Arduino Nano.

На рисунке приведена схема, поясняющая электрические соединения шин питания основной платы Freeduino/Arduino совместно и модуля M-Shield. 3-й штекер джампера питания не связан ни с одной из электрических цепей и предназначен для предотвращения утери перемычки при её переключении из одного положения в другое.

Подключение шин питания показано на рисунке 6.

Рисунок 6 - соединения шин питания с основной платой.

В качестве среды программирования была выбрана среда Arduino IDE позволяющая легко написать код программы и загрузить его на плату. Данная среда работает на Windows, Mac OS X, Linux и Unix подобных системах.

Среда разработки Arduino состоит из встроенного текстового редактора программного кода, области сообщений, окна вывода текста(консоли), панели инструментов с кнопками часто используемых команд и нескольких меню. Для загрузки программ и связи среда разработки подключается к аппаратной части Arduino. [8]

На рисунке 7 представлено основное окно среды разработки Arduino IDE.

Рисунок 7 - среда разработки Arduino IDE.

Программный протокол управления потоком XON/XOFF (Handshaking =1). Работает протокол следующим образом: если устройство, принимающее данные, обнаруживает причины, по которым оно не может их дальше принимать, оно по обратному последовательному каналу посылает байт-символ XOFF (13hex). Противоположное устройство, приняв этот символ, приостанавливает передачу. Когда принимающее устройство снова становится готовым к приему данных, оно посылает символ XON (11hex), приняв который противоположное устройство возобновляет передачу. [10-13]

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

Код функции считывания команды из последовательного порта:

void serialEvent() {

while (Serial.available()) { //повторять пока в буфере есть данные

char inChar = (char)Serial.read(); //считывание символа из буфера порта

inputString += inChar; //добавление символа к строке команды

if (inChar == '\n') { //если встречен завершающий символ

stringComplete = true; //поднять флаг получения команды

}

}

Команда получается в виде строки в которой указывается мотор, направление вращения мотора и мощность подаваемая на мотор.

if (stringComplete) { // Флаг получения команды

int spaceIndex1 = inputString.indexOf(' ');

16

int spaceIndex2 = inputString.indexOf(' ', spaceIndex1 + 1);

String command = inputString.substring(0, spaceIndex1);

String motorNo = inputString.substring(spaceIndex1 + 1, spaceIndex2);

String motorPower = inputString.substring(spaceIndex2);

int mNo = motorNo.toInt();

int mPower = motorPower.toInt();

Motor(mNo, mPower);

// clear the string:

inputString = "";

stringComplete = false;

}

После обработки команды микроконтроллером, на двигатели робота поступает команда вращать вал мотора.

void Motor(int mNo, int mPower) {

int M = 0;

int E = 0;

if (mNo == 1) {

M = M1; E = E1;

} else if (mNo == 2) {

M = M2; E = E2;

} else if (mNo == 3) {

M = M3; E = E3;

}

if (mPower > 0) {

digitalWrite(M, HIGH);

} else {

digitalWrite(M, LOW)

}

mPower = abs(mPower);

analogWrite(E, mPower);

}

9. Экспериментальная часть

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

Wi-Fi сети. Так же была установлена некоторая задержка приблизительно в 0,3 секунды между подачей команды со смартфона и исполнение ее роботом. Причиной данной проблемы оказался смартфон, который значительное время обрабатывал данные на WEB-странице.

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

Заключение

По результатам проведенной летней практики были приобретены следующие навыки:

· Была детально изучена платформа Arduino Uno.

· Была изучена исходная модель робота.

· Изучены способы передачи данных через последовательный порт

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

· Были получены навыки разработки программного обеспечения.

· Был приобретен навык программирования в среде ARDUINO IDE.

программирование мобильный робот микроконтроллер

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

1. А.В. Петин. Проекты с использованием контроллера Arduino.-СПб.: 2014.-400с. (дата обращения 20.05.2015)

2. У. Соммер., программирование микроконтроллерных плат Arduino /Freeduino. - СПб.: 2012.

3. Т. Иго., Arduino, датчики и сети для связи устройств, 2-е изд.- СПб.: 2015. - 544с. (Дата обращения 21.05.2015)

4. Дж. Блум., Изучаем Arduino: инструменты и методы технического волшебства. - СПб.: 2015. - 36с.

5. Гололобов В.Н. С чего начинаются роботы? О проекте Arduino для школьников. - 2011. - 186с.

6. Дипломная работа разработка мобильного робота на базе платформы arduino Д. С. Пнёв. - 2014. (Дата обращения 22.05.2015)

7. Шарапов А.В. Основы микропроцессорной техники: Учебное пособие. Томск: ТУСУР, 2008. - 200с.

8. Харкевич А.А., Основы радиотехники. - 2007. - 512с.

9. Баскаков С.И., Радиотехнические цепи и сигналы. - 2000.

10. Яшкардин В.Л. Последовательный порт. Программирование COM-порта в Windows и MS-DOS

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.