07 июля 2013

Создание робота телеприсутствия



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

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



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

Аппаратная часть

За основу робота я взял четырёхколёсную платформу с удобно расположенными отверстиями для крепления плат и достаточным местом для размещения аккумулятора.
Размеры платформы: 200мм x 170мм x 105мм, масса: 660г.



Ёмкий аккумулятор- залог долгого путешествия без подзарядки. Я использовал 12-ти вольтовый аккумулятор, ёмкостью 6700мА*ч.



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

В качестве «спинного» мозга был выбран микроконтроллер Arduino с платой расширения для двигателей постоянного тока Motor Shield.



Снизу «бутерброда» находится микроконтроллер, сверху- шилд для управления двигателями. Прямо на нас смотрят разъёмы USB и питания МК.

Программное обеспечение

ПО состоит из двух частей:
1.Программа на ПК под Windows, отвечающая за пользовательский интерфейс и за передачу команд по COM-порту на микроконтроллер.
2.Скетч на микроконтроллере, который принимает команды с ПК и в соответствии с ними выставляет режимы двигателей.

В качестве среды для разработки интерфейса я выбрал среду Delphi 7, так как с помощью неё можно сделать форму с кнопками для управления без особых усилий. Так же синтаксис языка показался мне довольно простым и понятным, и написание приложения не вызвало у меня никаких затруднений.



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

Список Id команд:
001 – Левый двигатель вперёд
002 – Левый двигатель назад
003 – Правый двигатель вперёд
004 – Правый двигатель назад
005 – Оба двигателя вперёд
006 – Оба двигателя назад
255 – Запуск тестовой программы робота

Передаваемое значение параметра должно лежать в диапазоне от 000 до 255, и в конечном счёте оно влияет на частоту вращения двигателей. Если передать значение 000, то произойдет остановка двигателей. После запуска программы необходимо открыть COM-порт для передачи данных. По умолчанию идет открытие COM10. Если порт занят, будет показана предупреждающая надпись.
Команды можно передавать как с помощью кнопок, расположенных на форме, так и при помощи комбинации чисел. Например, команда «005200» означает, что робот поедет вперёд с условной «скоростью» 200. При нажатии на кнопку Up по COM-порту передается строка «005200», а при отпускании кнопки «000000».

Основная задача скетча в моём проекте – разбиение входящего потока символов с COM-порта на группы по 6 цифр, анализ и исполнение соответствующих команд.

Заключение

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



Данное устройство не является конечной реализацией моей идеи. Впоследствии я планирую отказаться от USB-кабеля в пользу связки Wi-Fi – Планшетный ПК – Bluetooth – микроконтроллер. Для этого придётся написать приложение под ОС Android и использовать Bluetooth модуль на контроллере. Так же для удобства и обеспечения кроссплатформенности я планирую перейти от Delphi-приложения к Web-интерфейсу с сервером для хранения, обработки и передачи команд на Android-устройство.




+1

Комментарии 0

Регистрация в один клик!


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