Дистанционно управляемые роботы. Удаленное управление роботом Lego Mindstorms по JMX и IP Video. Структурная схема системы

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

  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 сделана из однородного материала, чувствительного к прикосновениям), ну и вкус роботы также могут чувствовать...

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

Remoute Control, ver. 0.1.1

(управление роботом удаленно по сети Wi-Fi с планшета в ручном режиме)

многоцелевая программа для мода OpenComputers

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

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

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

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

Реактор на ИТ в настройках рушит блоки в радиусе 2-4 блоков. Есть шанс, что вы проберетесь в домик жертвы, при этом вы в укрытии и вас не видно никак.

Код программы (latest):

ПЛАНШЕТ: (pastebin get b8nz3PrH tabletRC.lua)

РОБОТ: (pastebin get 7V2fvm7L robotRC.lua)

Старые версии (old):

Требования к комплектации робота и планшета (за основу взял связанную карту , она обязательна, в роботе также обязателен контроллер инвентаря, остальное опционально. Можно выкинуть таблички и запихать контроллер ведра, немного добавить строчку и тырить жидкости и прочее. ЧЛ пока в программе не используется. Для грифа крайне желательна красная плата, магнит, большой инвентарь):

Планшет (хард возьмите сразу с установленной OS):

Робот (можно отказаться пока от ЧЛ и впихать контроллер-расширитель плат. Роботу сможете на лету тогда запихивать при необходимости WF карту или INET карту):

В этом уроке мы дополним робота 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», и он будет ожидать подключение мастера.
  • Для выполнения повторного сопряжения (если оно потребуется) нужно выполнить те же действия как для пульта, так и для робота.
  • Как только связь будет установлена, суставы робота «оживут» и он будет выполнять команды пульта. Если Вы отключите питание пульта, то суставы робота ослабнут и вновь оживут при подаче питания пульта.

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

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