Простое удалённое управление с компьютера роботом. Управление роботом может происходить разными способами Удаленное управление роботом

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

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

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

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

Введение

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

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

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

Сотовые телефоны частично заменяют многие устройства такие как: фотоаппарат, компьютер, электронную книгу и т.п. Стоит задуматься «а почему бы не управлять с помощью телефона какими-нибудь не сложными устройствами?». Предлагается заменить не все устройство, а только некоторые средства дистанционного управления. Это упростит управление различными приборами в повседневной жизни человека. Например, один телефон с функцией Bluetooth сможет заменить все пульты от домашней техники, которые так часто теряются.

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

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

Слово Bluetooth - переводится с датского языка как «Синезубый». Это прозвище носил король Харальд I, правивший в X веке Данией и частью Норвегии и объединивший враждовавшие датские племена в единое королевство. Подразумевается, что Bluetooth делает то же самое с протоколами связи, объединяя их в один универсальный стандарт.

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

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

С развитием робототехники определились 3 разновидности роботов:

С жёсткой программой действий;

Управляемые человеком-оператором;

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

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

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

Для выполнения цели проекта поставлены и решены следующие задачи:

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

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

3) Разработка алгоритма и программы устройства управления;

1 . Разработка структурной схемы устройства управления

Структурная схема системы

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

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

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

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

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

Разработка схемы электрической принципиальной

Выбор двигателя

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

Выбор микроконтроллера

В качестве основного элемента получения и обработки сигналов был выбран микроконтроллер Atmega8 фирмы Atmel (см. приложение Б). У микроконтроллера имеются порты UART, 3 таймера, что необходимо для данной работы.

Цифровые сигнальные процессоры фирмы Atmel получили широкое применение, так как они имеют доступную цену и достаточный набор периферии.

Выбор микросхемы и интерфейса связи

Для управления двигателями стоял выбор между драйверами L298N и L293D. Но выбор остановился на драйвере L298N. Он работает в более широком диапазоне напряжений, и в связи с этим отпадает риск перегрева микросхемы. Так же он легкодоступный и имеет полный ряд функций необходимых для выполнения данной работы.

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

Расчет механической мощности.

Вес модели равен 0,7 кг, максимальная скорость 1 м/с при диаметре колес 30 мм.

Рассчитаем ускорение:

Вращающий момент рассчитывается следующим образом:

При моменте инерции и угловом ускорении б =

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

Мощность двигателя пропорциональна вращающему моменту и частоте вращения:

Расчет схемы электрической принципиальной

Выбор силового драйвера управления.

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

Максимальное рабочее напряжение: Uпит < Uдрайвера=46 В;

Напряжение питания U пит =+5 В, +3,3 В;

Максимальный выходной ток (на один канал): Iпит < Iдрайвера=2 А:

Расчет резисторов.

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

Резисторы для соединения микроконтроллера и Bluetooth модуля устанавливаются исходя из технической документации модуля: рабочее напряжение 3.3 В, при работе с напряжением 5 В установить резисторы номиналом 4,7 кОм.

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

Расчет конденсаторов.

Для стабилизации напряжения поступающего с источника питания были параллельно подключены конденсаторы емкостью 30 мкФ и 100 мкФ.

Уже известно, что Bluetooth модуль работает от напряжения 3,3 В, получается рабочее напряжение в микросхеме 5 В будет излишним, что может привести к сгоранию модуля. Поэтому для уменьшения напряжения необходимо подключить стабилизатор L78L33. Исходя из его технической документации потребуются 2 конденсатора емкостью 0,33 мкФ и 0,1 мкФ. Схема соединения представлена на рисунке.

Схема соединения стабилизатора L78L33

Разработка печатной платы

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

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

Если нет каких-либо ограничений, печатная плата (ПП) должна быть квадратной или прямоугольной. Максимальный размер любой из сторон не должен превышать 520 мм. Толщина ПП должна соответствовать одному из чисел ряда: 0.8; 1.0; 1.5; 2.0 в зависимости от площади ПП.

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

Диаметр монтажных отверстий, диаметры выводов микросхем колеблются в пределах 0,8…1,2 мм, а диаметры выводов резисторов колеблются около 0,66 мм. Для упрощения процесса изготовления, монтажные отверстия на плате имеют диаметр 0,8 и 1,2 мм. Шаг координатной сетки составляет 1,27 мм.

Паять элементы припоем ПОС-61. Материал платы стеклотекстолит фольгированный СТЭФ 2-1,5-50 по ГОСТ 10316-86.

Разработка сборочного чертежа

В ходе разработки сборочного чертежа необходимо уделить внимание следующим требованиям:

1) разработка сборочного чертежа устройства управления двигателями постоянного тока осуществляется на основе разработанной принципиальной электрической схемы с учетом требований к чертежным документам;

2) в соответствии со схемой деления изделия на составные части присвоить обозначение сборочной единице и ее элементам по ГОСТ 2.201-68;

3) проставить необходимые размеры согласно требованиям ГОСТ 2.109-73;

4) заполнить спецификацию, выдерживая все требования ГОСТ 2.108-68;

5) заполнить основную надпись и выполнить другие необходимые надписи (технические требования и пр.).

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

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

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

На рисунке 3 представлена схема алгоритма работы микропроцессорного устройства управления.

Значения передаваемого байта:

10: 00 - Стоп; 01 - Вперед; 10 - Назад; 11 - Стоп.

23: 00 - Стоп; 01 - Вправо; 10 - Влево; 11 - Стоп.

Разработка программы.

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

Данная программа необходима для управления двигателями постоянного тока. Микроконтроллер управляется программой с телефона.

Программа управления двигателем постоянного тока, с использованием микроконтроллера ATmega8 (см. приложение А).

Разработка программы на телефон.

Для запуска этой программы необходимо иметь на компьютере установленную версию Windows 98/2000/ME/XP. Данная программа разрабатывалась в среде Android SDK.

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

import java.io.IOException;

import java.io. OutputStream;

import java.util. List;

import java.util.UUID;

import android.app. Activity;

import android.app. AlertDialog;

import android.app. ProgressDialog;

import android.bluetooth. BluetoothAdapter;

import android.bluetooth. BluetoothDevice;

import android.bluetooth. BluetoothSocket;

import android.content. Context;

import android.content. DialogInterface;

import android.content. Intent;

import android.content. DialogInterface. OnClickListener;

import android.hardware. Sensor;

import android.hardware. SensorEvent;

import android.hardware. SensorEventListener;

import android.hardware. SensorManager;

import android.net. Uri;

import android.os. Bundle;

import android.os. Handler;

import android.os. Message;

import android.view. LayoutInflater;

import android.view. Menu;

import android.view. MenuInflater;

import android.view. MenuItem;

import android.view. MotionEvent;

import android.view. View;

import android.widget. Button;

import android.widget. TextView;

import android.widget. Toast;

Назначение и условия применения программы.

Программа предназначена для формирования и передачи сигналов на микропроцессорное устройство.

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

Обращение к программе

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

Для запуска программы необходимо включить Bluetooth на устройстве и запустить приложение «BluCar». С помощью кнопки «Connect to a device» установить соединение с Bluetooth модулем («linvor»). После того как светодиод перестанет мигать можно приступать к передаче данных.

4. Руководство пользователя

Для проверки работоспособности учебного мобильного робота необходимо следующее:

Включить питание учебном мобильном роботе при помощи кнопки представленной на рисунке.

Кнопка включения питания

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

Мигание: ожидание подключения;

Постоянное горение: показывает наличие подключения.

Рабочее состояние светодиодов

Далее включаем на телефоне Bluetooth и запускаем программу «BluCar» представленную на рисунке 6. В программе нажимаем кнопку «Connect from device», из предоставленного списка выбираем linvor, которым является Bluetooth модуль. Дожидаемся когда светодиод на модуле начинает гореть постоянно, что означает успешное подключение. Учебный мобильный робот с дистанционной системой управления готов к работе.

Программа на телефоне «BluCar»

Способы управления:

Кнопка «Forward» - движение вперед;

Кнопка «Reverse» - движение назад;

Поворот телефона по горизонтальной плоскости правым ребром вниз - поворот передних колесо вправо;

Поворот телефона по горизонтальной плоскости левым ребром вниз - поворот передних колес влево;

Для выключения мобильного робота необходимо отключить питание схемы и в программе нажать кнопку «Disconnect from device».

Заключение

В результате выполнения выпускной квалификационной бакалаврской работы на тему: «Разработка дистанционной системы управления учебным роботом» произведена и создана система дистанционного управления учебным роботом по каналу связи Bluetooth. Учебным роботом является машинка с двумя двигателями постоянного тока и элементом питания. Устройством передачи сигнала был выбран телефон с возможностью передачи информации по Bluetooth, а устройство приемник - это Bluetooth модуль установленный на плате в машинке.

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

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

Вышеуказанные выводы сделаны по первой (теоретической) части. Создана структурная схема.

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

В третьей главе создан алгоритм и программа на телефон для визуализации управления двигателями постоянного тока.

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

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

1. Семенов Б.Ю. Силовая электроника для любителей и профессионалов - М.: Солон-Р, 2001. -126 с.

2. Лорен Дэрси, Шейн Кондер: Android за 24 часа. Программирование приложений под операционную систему Google. Изд. Рид Групп, 2011 г.

3. Касаткин А.С. Электротехника: Учеб. пособие для вузов. 4-е изд. - М.:Энергоатомиздат, 1983. -440 с., ил.

4. Евстифеев А.В.: Микроконтроллеры AVR семейств Tiny и Mega фирмы ATMEL. Издательский дом «Додэка-XXI», 2008. - 558 с.

5. Романычева Э.Т. Разработка и оформление конструкторской документации радиоэлектронной аппаратуры. / Справочник. М.: Радио и связь, 1989. - 448 с.

6. Сивухин Д.В. Общий курс физики: Т.1. Механика: Учебное пособие для физических специальностей вузов. - М.: Наука, 1974. - 520 с.

7. Хорвиц П., Хилл У. Искусство схемотехники. В 3-х томах. Пер. с англ. - М.: Мир, 1993.

8. Atmel, 8-bit Microcontroller with 16K Bytes In-System Programmable Flash Atmega16 - Datasheet.

9. L298 - Dual Full-Bridge Driver - Datasheet.

10. L78L00 SERIES - Positive voltage regulators - Datasheet.

11. Bluetooth Serial Converter UART Interface 9600bps User"s Guide - Datasheet

12. Википедия: Свободная энциклопедия. 2012. URL: http://ru.wikipedia.org. (Дата обращения 20.05.2012).

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

...

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

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

    курсовая работа , добавлен 24.06.2013

    Разработка принципиальной электрической схемы микропроцессорного устройства управления двигателем постоянного тока на базе контроллера ATmega 128. Разработка пакета подпрограмм на языке Assembler в целях регулирования и корректной работы устройства.

    курсовая работа , добавлен 14.01.2011

    Характеристика устройства и технологических данных промышленного робота СМ40Ц. Описание микропроцессорного комплекта серии U83-K1883, системы его команд, микросхемы К572ПВ4, функциональной, принципиальной схем и алгоритма работы программы управления.

    курсовая работа , добавлен 02.06.2010

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

    курсовая работа , добавлен 25.10.2009

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

    дипломная работа , добавлен 25.11.2014

    Анализ существующих систем создания и управления сайтами, их общая характеристика и оценка функциональности на современном этапе. Требования к серверной части, средства ее разработки. Тестирование интерфейса. Формирование руководства пользователя.

    дипломная работа , добавлен 11.04.2012

    Актуальность задачи. Разработка функциональной схемы устройства. Радиолокационная установка (РЛУ). Микропроцессорная часть. Обоснование алгоритма работы устройства. Разработка управляющей программы устройства. Схема алгоритма. Пояснения к программе.

    курсовая работа , добавлен 18.10.2007

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

    курсовая работа , добавлен 31.07.2012

    Современные технологии ведения боя. Роботизированные средства в военной сфере. Устройство беспилотных летательных аппаратов, наземных и морских роботов. Разработка программы на языке Prolog для выполнения задачи разминирования военным роботом-сапером.

    курсовая работа , добавлен 20.12.2015

    Проектирование микропроцессорного устройства, которое преобразует интерфейс RS-232 (COM-порт) в IEEE 1284 (LPT-порт). Структурная схема устройства. Преобразование последовательного интерфейса в параллельный интерфейс на микроконтроллере ATMega 8.

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

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

Полуавтономные роботы

Хорошим примером полуавтономного робота является сложный подводный робот. Человек контролирует основные движения робота. И в это время бортовой процессор измеряет и реагирует на подводные токи. Это позволяет держать робота в одном и том же положении без дрейфа. Камера на борту робота отправляет видео обратно человеку. Дополнительно бортовые датчики могут отслеживать температуру воды, давление и многое другое.

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

Управление по кабелю

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

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

Они не имеют интеллекта и считаются скорее «дистанционно управляемыми машинами», чем «роботами».


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

Управление роботом при помощи кабеля и встроенного микроконтроллера

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


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

Управление по Ethernet

Используется разъём Ethernet RJ45 . Для управления нужно Ethernet соединение. Робот физически подключен к маршрутизатору. Следовательно его можно контролировать через Интернет. Также это возможно (хотя и не очень практично) для мобильных роботов.

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


  • Преимуществами является то, что робота можно контролировать через интернет из любой точки мира. Робот не ограничен по времени работы, так как он может использовать Power over Ethernet. PoE. Это технология, которая позволяет передавать удалённому устройству электрическую энергию вместе с данными через стандартную витую пару по сети Ethernet. Использование интернет-протокола (IP) может упростить и улучшить схему связи. Преимущества те же, что и при прямом проводном компьютерном управлении.
  • Недостатком является более сложное программирование и те же недостатки, что и при управлении по кабелю.

Управление при помощи ИК-пульта

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

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


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

Радиоуправление

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

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


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

  • Преимуществами является возможность управлять роботом на значительных расстояниях, может просто настраиваться. Связь является всенаправленной, но может не проходить сигнал полной блокировке стенами или препятствиями.
  • Недостатками является очень низкая скорость передачи данных (только простые команды). Дополнительно нужно обращать внимание на частоты.

Управление по Bluetooth

Bluetooth является радиосигналом (RF) и передается по определенным протоколам для отправки и получения данных. Обычный диапазон Bluetooth часто ограничен примерно 10 м. Хотя он имеет то преимущество, что позволяет пользователям управлять своим роботом через устройства с поддержкой Bluetooth. Это в первую очередь сотовые телефоны, КПК и ноутбуки (хотя для создания интерфейса может потребоваться настраиваемое программирование). Так же, как и радиоуправление, Bluetooth предлагает двустороннюю связь.


  • Преимущества: управляемый с любого устройства с поддержкой Bluetooth. Но, как правило, требуется дополнительное программирование. Это смартфоны, ноутбуки и т.д. Более высокие скорости передачи данных могут быть всенаправленными. Следовательно, не нужна прямая видимость и сигнал может немного проходить через стены.
  • Недостатки. Должен работать в паре. Расстояние обычно составляет около 10 м (без препятствий).

Управление по WiFi

Управление по WiFi часто является дополнительной опцией для роботов. Способность управлять роботом по беспроводной сети через Интернет представляет некоторые существенные преимущества (и некоторые недостатки) для беспроводного управления. Чтобы настроить управление роботом по Wi-Fi нужен беспроводной маршрутизатор, подключенный к Интернету, и блок WiFi на самом роботе. Для робота можно использовать устройство, которое поддерживает TCP / IP протокол.


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

Управление при помощи сотового телефона

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


  • Преимущества: робота можно контролировать в любом месте, где есть сотовый сигнал. Возможна спутниковая связь.
  • Недостатки; настройка управления по сотовой связи могут быть сложными — не для начинающих. В каждой сотовой сети есть свои собственные требования и ограничения. Обслуживание в сети не является бесплатным. Обычно чем больше данных вы передаете, тем больше денег вам надо заплатить. Система пока еще не настроена для использования в робототехнике.

Следующим шагом будет использование микроконтроллера в вашем роботе в полном объеме. И в первую очередь программирование его алгоритма работы по вводу данных от его датчиков. Автономное управление может осуществляться в различных формах:

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

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


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

  • Преимущества – это ”настоящая" робототехника. Задачи могут быть очень простым, например, от мигания света, основанного на показаниях одного датчика. До посадки космического корабля на далекой планете.
  • Недостатки зависят только от программиста. Если робот делает что-то, чего вы не хотите чтобы он делал, то у вас есть единственный вариант. Это проверить свой код, изменить его и загрузить изменения в робота.

Практическая часть

Целью нашего проекта является создание автономной платформы, способной принимать решение, основанное на внешних сигналах от датчиков. Мы будем использовать микроконтроллер Lego EV3. Он нам позволяет сделать как полностью автономную платформу. Так и полуавтономную, управляемую по Bluetooth или при помощи инфракрасного пульта управления.


Программируемый блок LEGO EV3

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

Шаг 1: Список компонентов и стоимость проекта

1. Игрушечная Машинка с радиоуправлением (radio controlled).

Стоит эта штука около 20 баксов, если у вас есть возможность потратить больше, то можете использовать и получше.

2. Arduino Uno микроконтроллер - 25 долларов

3. Motor shield для контроля электромоторов - 20 долларов

4. GPS для навигации. Adafruit Ultimate GPS Shield - 50 долларов

5. Магнитометр в качестве компаса для навигации. Adafruit HMC5883 Magnetometer - 10 долларов

6. Ультразвуковой датчик расстояния, чтобы избегать препятствия. HC-SR04 - 6 долларов

7. ЖК-дисплей для отображения состояния транспортного средства и информации. LCD Display Blue 1602 IIC, I2C TWI - 6 долларов (можете использовать другой)

8. Инфракрасный датчик и пульт.

9. Arduino sketch (программа C++).

10. Тонкая древесная плита в качестве монтажной платформы.

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

12. Перемычки.

13. Набор для монтажа ультразвукового датчика - 12 долларов

14. Паяльник и припой.

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

Шаг 2: Шасси и монтаж платформы

Радиоуправление изъяли из ненужной игрушки, которая стоила 15 баксов.

Машинка здесь с двумя двигателями. С помощью одного движка пультом контролируется скорость движения робота, а с помощью другого контролируется рулевое управления.

Использовалась тонкая доска в качестве монтажной поверхности, на которой были прикреплены макетные платы, Arduino, ЖК и т.д. Батарейки размещены под доской и провода пропущены через просверленные отверстия.

Шаг 3: Программа

Arduino управляется через программу С ++.

Исходный код

RC_Car_Test_2014_07_20_001.ino

Шаг 4: ЖК-дисплей

Во время работы экран отображает следующую информацию:

Ряд 1:

1. TH - Задача, курс к текущей маршрутной точки

2. CH - Текущее направление робота

Ряд 2:

3. Err - Направление по компасу, показывает в каком направлении движется робот (влево или вправо)

4. Dist - Фокусное расстояние (в метрах) до текущей маршрутной точки

Ряд 3:

5. SNR - Sonar расстояние, то есть расстояние до любых объектов в передней части робота

6. Spd - Скорость робота

Ряд 4:

7. Mem - Память (в байтах). В памяти Arduino имеется 2 КБ

8. WPT n OF x - Показывает, где робот находится в списке маршрутных точек

Шаг 5: Избежать столкновения с объектами

Чтобы робот избегал препятствий, здесь использовался ультразвуковой датчик » Ping». Было решено совместить его с библиотекой Arduino NewPing, поскольку она лучше, чем простая PIng библиотека.

Библиотека была взята отсюда: https://github.com/fmbfla/Arduino/tree/master/NewPing

Датчик был установлен на бампере робота.

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

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

  1. Управление с помощью инфракрасных сигналов пульта ДУ (то же самое, что переключение каналов телевизора)
  2. Управление по радио

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

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

В последнее время получают все большее распространение и другие способы беспроводного управления. Конечно же, речь идет о технологиях Bluetooth и Wi-Fi, которые в настоящее время используются практически повсеместно в компьютерах, КПК, коммуникаторах, мобильных телефонах...

Модель управления роботом при использовании технологий Wi-Fi и Bluetooth в основном такая: непосредственно на роботе закрепляются мобильный телефон или КПК, которые, через определенную самопайную схему, могут отсылать роботу управляющие сигналы, и забирать показания датчиков. Основная «мозговая» деятельность - осуществляется на основном, стационарном, компьютере (иногда - даже с помощью распределенной сети серверов). Такой подход позволяет порой в несколько раз уменьшить вес робота и потребляемую им мощность.

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

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

Управление звуком - достаточно стандартная функция, для ее реализации можно использовать обычную ОС Windows Vista.

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

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

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

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

Скорость и направление движения робота будет зависеть от степени и направления отклонения джойстика. Робот сможет выполнять такие команды как движение вперёд или назад, с заворотом или без, разворот на месте влево или вправо, установка всех суставов в центральные положения, ослабление всех суставов, подъем и опускание корпуса. При разрыве связи между bluetooth модулями пульта и робота, робот перестанет идти, а все его сервоприводы ослабнут.

Подробно об управлении роботом и сопряжении Bluetooth модулей рассказано ниже, в разделе «Управление».

Нам понадобится:

    Робот «QUADRUPED»:
  • Элементы питания:
    • либо 2 аккумулятора Li-ion размером .
    • либо 5 аккумуляторов Ni-MH размером .
    Пульт:
  • Элементы питания:
    • либо 1 аккумулятор Ni-MH размером крона и переходник под DC-jack .
    • либо иной для Arduino Uno .

Для реализации проекта нам необходимо установить библиотеки:

  • iarduino_Bluetooth_HC05 - для работы с Trema Bluetooth модулем HC-05.
  • iarduino_HC_SR04 - для работы с ультразвуковым датчиком расстояния HC-SR04+.
  • Библиотеки SoftwareSerial и Servo входят в базовый набор Arduino IDE и не требуют установки.

О том как устанавливать библиотеки, Вы можете ознакомиться на странице Wiki - Установка библиотек в Arduino IDE .

Видео:

Схема подключения пульта дистанционного управления:

  • Установите Trema-Set Shield на Arduino Uno .
  • Установите Trema-модуль потенциометр на 2 посадочную площадку Trema-Set Shield .
  • Установите Trema-модуль джойстик на 4 посадочную площадку Trema-Set Shield .
  • Установите Trema-модуль Bluetooth HC-05 на 6 посадочную площадку Trema-Set Shield .
  • При желании все установленные на Trema-Set Shield модули можно закрепить, используя нейлоновые винты и стойки.

В данном коде показания джойстика и потенциометра постоянно сохраняются в массив arrData после чего он отправляется по радиоканалу через bluetooth модуль. Скетч калибрует джойстик при старте, считывая показания для осей X и Y, которые до отключения питания считаются центральными. Показания осей X и Y отправляются в пределах значений от -100 до +100. Показания потенциометра отправляются в пределах значений от 0 до +100. Состояние кнопки отправляется как число 0 или 1.

Если подать питание с нажатой кнопкой джойстика, то в коде setup выполнится код вызова функции createMaster, которая установит bluetooth модулю роль мастера, инициирует поиск ведомого с именем "QUADRUPED" и PIN-кодом "1212", и если такое ведомое устройство будет доступно, то произойдёт сопряжение и соединение с этим ведомым bluetooth модулем (именно такое имя и PIN будут присвоены bluetooth модулю на роботе). Если не нажимать на джойстик при подаче питания, то функция createMaster будет пропущена, а bluetooth модуль будет принимать попытки создать соединение на основе своих последних настроек. Таким образом сопряжение с bluetooth модулем робота достаточно выполнить всего один раз.

Функции begin(), createMaster() и checkConnect() объекта objHC05 возвращают true или false, и вызываются как условие оператора while(), то есть инициализация, назначение роли и проверка соединения bluetooth модулей выполняются до тех пор пока не будет получен положительный результат. Эти функции можно вызывать однократно только в том случае если Вы уверены что второй bluetooth модуль (модуль робота) точно включён, ему назначена роль ведомого, он готов к соединению и находится в радиусе действия связи. Иначе функция вернёт false, а код продолжит выполняться не отреагировав на ошибку.

Функция send() объекта objHC05 способна отправлять массивы и переменные любых типов, и так же возвращает true или false, сообщая о результате приёма данных вторым bluetooth модулем. В нашем случае данную функцию нет необходимости вызывать в условии оператора while(), так как эта функция и так постоянно вызывается в коде цикла loop().

С подробным описанием всех функций объекта objHC05 можно ознакомиться на странице .

Код программы для робота QUADRUPED:

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

В данном коде управление роботом осуществляется через функции:

  • funLimbMove - установка одного сустава выбранной конечности в значение от -100 до 100.
    • Если указать funLimbMove(4,1,100), то у 4 конечности, вертикальный сустав, поднимется максимально вверх.
    • Если указать funLimbMove(4,0,-100), то у 4 конечности, горизонтальный сустав, сдвинется максимально влево.
  • funLimbStep - установка одной конечности в положение от 0 до 255.
    • Если указать funLimbStep(4,x,0,50), где x будет увеличиваться от 0 до 255, то 4 конечность совершит следующие действия: плавный сдвиг внизу назад, резкий подъём, быстрый проход сверху вперёд и резкий спуск, остановившись в той же позиции с которой начинались движения. Что похоже на реальное движение лап при движении вперёд.
    • Если указать funLimbStep(4,x,0,50), где x будет уменьшаться от 255 до 0, то 4 конечность совершит те же действия, но в обратном порядке. Что похоже на реальное движение лап при движении назад.
    • Предпоследний аргумент функции можно указывать в пределах от -100 до +100, он будет ограничивать амплитуду движений левых или правых конечностей, что вызовет заворачивание (поворот) влево (-100...0) или вправо (0...+100).
    • Последний аргумент функции можно указывать в пределах от 0 до 100, это высота подъёма корпуса в процентах, если указать 0, то QUADRUPED будет «ползти», чем больше значение, тем выше QUADRUPED. Средний подъём корпуса соответствует значению 50.
  • funLimbGait - установка всех конечностей в положение от 0 до 255. Эта функция вызывает предыдущую функцию funLimbStep для каждой конечности, указывая их положение в соответствии с алгоритмом походки.
    • Если указать funLimbGait(1, x, 0, 50), где x будет увеличиваться от 0 до 255, то все конечности совершат действия при которых QUADRUPED пройдёт вперёд и прямо на один полный шаг, а его конечности вернутся в ту же позицию с которой этот шаг начинался.
    • Если указать funLimbGait(1, x, 0, 50), где x будет уменьшаться от 255 до 0, то все конечности совершат те же действия, но в обратном порядке. Следовательно, QUADRUPED пройдёт тот же шаг но назад.
    • Если указать funLimbGait(0, x, 0, 50), где x будет увеличиваться от 0 до 255, то все конечности совершат действия при которых QUADRUPED выполнит разворот вправо на один полный шаг, а его конечности вернутся в ту же позицию с которой этот разворот начинался.
    • Последний и предпоследний аргументы выполняют те же действия что и аргументы функции funLimbStep той же позиции, а именно, выполняют заворот (поворот) и поднятие корпуса.
    • Вы можете дополнить функцию funLimbGait придумав свои варианты походок.
  • funLimbFree - ослабление всех суставов. Функция вызывается без параметров и приводит к отключению сервоприводов. Сервоприводы включатся самостоятельно при вызове любой функции управления суставами или конечностями.
  • funLimbCent - установка всех суставов в центральное положение. Функция вызывается без параметров и устанавливает суставы всех конечностей в положение установленное при калибровке.
  • funWaitMaster - эта функция проверяет нажатие на кнопку сопряжения. Если кнопка нажата, то текущее соединение (если оно есть) с мастером будет разорвано, список пар будет очищен, bluetooth модулю будет назначена роль ведомого с указанием имени «QUADRUPED» и PIN-кодом «1212», после чего он будет ожидать подключения мастера.

Получение данных и работа с Trema-модулем Bluetooth HC-05 осуществляется через функции и методы объекта objHC05 библиотеки iarduino_Bluetooth_HC05 , с подробным описанием которых можно ознакомиться на странице Wiki - Trema-модуль bluetooth HC-05 .

Управление:

Сразу после сборки, загрузки скетча и подачи питания на пульт, и QUADRUPED, суставы робота будут ослаблены, и он не будет реагировать на команды с пульта, так как Bluetooth модулям требуется сопряжение (создание пары). Сопряжение достаточно выполнить только один раз, bluetooth модули запомнят созданную пару в своей энергонезависимой памяти и будут пытаться соединится друг с другом при каждой последующей подаче питания.

  • Отключите питание пульта (если оно было подано), нажмите на джойстик (как на кнопку) и подайте питание пульта. После выполнения этих действий bluetooth модулю пульта будет назначена роль мастера и он начнёт поиск ведомого с именем «QUADRUPED» и PIN-кодом «1212».
  • Подключите питание робота (если оно не было подано), нажмите и удерживайте кнопку сопряжения не менее 1 секунды (её можно нажимать в любое время). После нажатия на кнопку, bluetooth модулю робота будет назначена роль ведомого с именем «QUADRUPED» и PIN-кодом «1212», и он будет ожидать подключение мастера.
  • Для выполнения повторного сопряжения (если оно потребуется) нужно выполнить те же действия как для пульта, так и для робота.
  • Как только связь будет установлена, суставы робота «оживут» и он будет выполнять команды пульта. Если Вы отключите питание пульта, то суставы робота ослабнут и вновь оживут при подаче питания пульта.

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

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