В ряде проектов с использованием роботов очень удобно пользоваться дистанционными пультами управления. В недавнем материале мы рассмотрели, как с этой цель. использовать второго робота, или другое устройство на основе контроллера CyberPi. Сегодня же посмотрим на готовое устройство от компании MakeBlock - Bluetooth Controller V1. Сразу скажем, что данный пульт - отличное решение для ряда соревнований, в которых предусмотрено дистанционное управление.
И вид на переднюю панель пульта.
Описание пульта Bluetooth Controller V1.
Данный пульт управления "Bluetooth Controller V1" поддерживает все Bluetooth-продукты Makeblock: mBot2, mBot, mBot Ranger, Ultimate 2.0, Airblock, Codey Rocky и т. д.
База:
• интуитивно понятный и простой в использовании интерфейс;
• запуск и быстрое соединение с устройствами от MakeBlock нажатием одной кнопки;
• программируемые и настраиваемые кнопки;
• крепкая и надежная конструкция.
Характеристики:
• Рабочий ток - ≤ 25 мА
• Версия Bluetooth - от 4.0+
• Дальность передачи - 20м
• Мощность передачи - 4 дБм
• Аккумулятор - 2 батареи типа AA
• Поддерживаемые платформы - MacOS/Window
Соединение mBot2 и пульта.
Процесс максимально упрощен. Включаем питание mBot2 и пульта, расположить пульт рядом с роботом, зажать на пульте кнопку Bluetooth (см. рис. выше). На пульте сигнальный огонек начнет быстро мигать синим цветом, потом просто ровно загорится синим, на самом роботе на короткий миг загорятся синим LED-огни. Все, соединение установлено.
Но... пробуем понажимать кнопки и джойстики - ничего не происходит. Надо создать и загрузить в робота программу, которая и разъяснит ему, что надо делать при нажатии кнопок или движении джойстиком с пульта.
Пульт удобно использовать для точного управления движением робота и управления переферийными устройствами, вроде манипулятора.
Движения пока только коснемся. Отметим, что "фишкой" этого пульта является наличие 8-гранного бортика под каждым джойстиком. Именно эти октаэдры позволяют оператору точно выставлять определенные углы движения "на ощупь". Подробнее о программировании движения с помощью пульта рассказывается в материалах нашей книги "Секреты спортивной робототехники с mBot2 и mBlock5".
Мы же рассмотрим программирование простого движения и действий периферии, основываясь на все том же проекте "Манипулятор", в котором изначально управляли сервомоторами с помощью джойстика прямо с того же робота, на котором и был реализован манипулятор.
Программируем работу с пультом
Для начала надо доставить расширение Bluetooth controller.
Теперь соберем скрипт, реализующий простое движение робота, с управлением крестообразным кнопочным джойстиком на пульте (слева сверху на пульте).
Такое управление можно попробовать и на роботе без манипулятора, просто поуправлять им на расстоянии. Понятно, что с помощью основных джойстиков (наклоняемых) это управление можно настроить максимально точно, прописав зависимость скорости и углов от наклонов джойстика, но это мы рассмотрим когда-нибудь позже, алгоритмы значительно сложнее.
Теперь запрограммируем движение сервомоторов манипулятора, если у вас есть в наличии сборка, рассмотренная в предыдущих материалах блога.
Заодно потренируемся в создании своего блока-подпрограммы, управляющей позицией двух сервомоторов нашего манипулятора. Например, такого:
В таком варианте программа-демонстрация, с управлением манипулятором с кнопочного блока справа на пульте, может выглядеть так:
Таким образом, мы запрограммировали определенные действия манипулятора на каждую кнопку.
Программа в полном виде, как обычно, выложена в электронном архиве проекта. Папка Bluetooth Controller V1, файл Pult_servo.mblock.
Видео, иллюстрирующее результаты работы программы.
Понятно, что можно реализовать полностью и вариант, который использовали ранее, просто переделав управляющие блоки на работу с пультом. Попробуйте преобразовать программу из статьи про управление с джойстика самого робота, в программу управления с пульта.
На пульте еще множество кнопок, которые можно запрограммировать на действия робота. Экспериментируйте, находите новые решения.
До следующей встречи!