Программа управления роботом М2С2Д
Статья принадлежит к серии – колёсная управляемая платформа с элементами BEAM.
Робот подключается через Bluetooth к компьютеру по радиоканалу. Для управления им была разработана небольшая управляющая программка.
Программа управления
Программа позволяет управлять роботом как с клавиатуры и джойстика или геймпада, так и обладает возможностью самим прописать, как он будет себя вести.
Подключение
После установки Bluetooth заходим в его программное обеспечение и находим робота. Устанавливаем соединение, вводим pin код и привязываемся к нему «синий зуб». В системе после подключения станет доступен виртуальный COM порт, который указываем в программе. Некоторое программное обеспечения после привязки устройства позволяет производить авто подключение к устройству после присоединения к виртуальному COM порту.
Управление
Роботом можно управлять как мышью – перемещая ползунки, с клавиатуры по средствам привычным по компьютерным играм WASD (только в фокусе должны быть ползунки). Шаг скорости и поворота задается в соответствующем поле «Шаг» на панели «Клавиатура». Так же можно управлять с джойстика или геймпада, настройку стиков правда пока не реализовал, в конечной версии планируется.
Датчики
Плата позволяет подключить 1 аналоговый датчик, но, к сожалению, из-за используемого псевдо АЦП на компараторе, а не обычного нормального АЦП, точность низкая, интервал 0,21В. Такая низкая точность не даёт широко разгуляться, но что-то с ней сделать можно. Из датчиков пока поддерживается только ИК датчик дальности, о замеряет расстояния выводит его на соответствующей шкале.
Автопилот
Даже один датчик уже даёт возможность роботу автономность. Он может преодолевать препятствия, двигаться на свет или звук или подальше от источника, т.е. реагировать на внешние раздражители. Из-за такой возможности роботу и были приписаны элементы BEAM. Робот пока поддерживает только дальномер и способен обходить препятствия лежащие на его пути, как именно это он будет делать – можно прописать с помощью небольшого скрптоязыка.
Описание скриптоязыка
В программе управления реализована возможность задать самостоятельное поведения робота по средством разработанного скриптоязыка.
После запуска скрипта на выполнение скрипт будет выполняться до тех порт, пока не достигнет завершающей скрипт команды или не напорется на ошибку, так же возможна ручная остановка выполнения скрипта. Каждая команда в скрипте выполняется со скоростью 10 мили секунд. Команды в языке имеют следующий формат:
< команда> < параметр> < значение>
Где команда и условия это одно символьные значения, как и интервал должен быть равен одному пробелу, подробнее:
- Команда – действие, которое необходимо выполнить
- Параметр – параметр, с которым будет выполнена команда
- Значение – целое число значение, с которым будет выполняться команда
Синтаксис должен чётко соблюдаться, о части ошибок программа сообщит, но ещё одну часть обработчик пропустит, в принципе все они не фатальны. Так же скрипт можно проверять пошагово при помощи кнопок «Шаг», которая выполняет одну команду и «В начало», которая переместит курсор в начало текста.
В скриптоязыке были реализованы следующие команды управления:
Команда | Параметры | Описание |
C | L – левый двигатель R – правый двигатель G – газ S – поворот руля |
Команда управления, задаёт скорость вращения двигателей и управляет газом и рулём, в качестве параметра задаётся управляемый объект, а в качестве значения скорость движения от -255 до 255. |
D | Задержка в мили секундах | |
G | Команда перехода на заданную строчку | |
S | > — больше < — меньше = — равно ! – не равно |
Условие, при его выполнение выполняется следующая за командой строчка, иначе следующая строчка игнорируется |
W | > — больше < — меньше = — равно ! – не равно |
Ожидание, приостанавливает выполнение скрипта пока выполняется условие |
E | Окончание выполнения скрипта |
Входные сверяемые значения в командах S и W – это показания сенсора.
Пример команды: C G 255 – команда управления, переводит ручку газа в максимальное положение.
Пример скрипта:
C S 0 C G 200 W > 14 C G 0 C S -200 W < 15 C S 0 G 0 |
Держим робота ровно Газ на 200, движется вперед Ожидать пока значения датчика больше 14 Остановить робота, газ на 0 Поворачивать робота вправо Ожидать пока значение датчика меньше 15 Выравниваем руль Перейти на 0 строку (в начало) и начать выполнение скрипта сначала |
Выше приведённый скрипт движет роботом вперед до обнаружения препятствия впереди себя на расстояние не более 15 см, после чего робот начинает разворачиваться вправо, пока спереди робота не будет свободными хотя бы 14 см для манёвра, программа выполняется непрерывно.
Коррекция хода
В связи с разными применяемыми двигателями и возможной их не равномерной работой в программе предусмотрена установка перекоса, которая позволит частично скомпенсировать не идеальность движущейся части. Так же есть возможность задания максимальных и минимальных оборотов, это будет полезно, если установить двигатели с превышающим максимальным разращенным током (300мА на канал) и не мучить двигатели на минимуме, когда подаваемого сигнала недостаточно для нормального вращения моторов.
Скачать программу v1.001.008 Nunchuck
Специальная версия программы для управления роботом с использованием джойстика Nunchuck от приставки Wii.
Alex_EXE | 31.03.2012 | Программы |
Epox пишет 03.04.2012 в 13:43 #
прикольная прога!!!
А прошивочку выложи плиз для микроконтроллера робота!!
Идеи класные! Разкручивай сайт!!!!!
Alex_EXE пишет 03.04.2012 в 16:33 #
Статья с прошивкой пока ещё не готова, всем желающим могу на почту скинуть то, что сейчас есть.
Стараюсь 🙂
Epox пишет 03.04.2012 в 17:45 #
Ладно подождём…… 🙂
atom пишет 20.07.2012 в 19:38 #
а для телефона программа java есть как на http://bezkz.su/publ/shemy/-oboty30/300199-30-1-0-199.html
Alex_EXE пишет 21.07.2012 в 00:46 #
Нет, под мобильные устройства не пишу. Но был бы рад, если бы кто-нить помог.