Робот на гусеницах. Обзор готовых каркасов для создания роботов на Arduino

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

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


Платформа базируется на гусеничном шасси какого-то автомобиля. Этот набор правда имел только один двигатель, который делает невозможным делать повороты. Пришлось установить на него двухмоторную коробку переключения передач с передаточным числом 200:1.

Питание и преобразователь


В принципе даже напряжения 3 В от 2-х батареек хватает чтобы двигаться довольно быстро. Однако, поскольку дополнительная электроника используется, чтобы изменить направление вращения двигателя, который потребляет изрядное количество тока от батареи, двигатель еле вращается. Поэтому в итоге 4xAA использовались для питания. Если всё-же нужно питать от 3 В или литиевой батарейки 3,7 В - для нормальной работы придётся использовать DC-DC преобразователь. Есть много вариантов, например MAX619 по схеме выше.

Драйвер двигателей схема

Драйвер электромотора на SN754410 , хотя его и недостаточно для низковольтного применения. Так как он включает в себя биполярные транзисторы, они имеют падение напряжение не менее 0,7 В на каждом. Это значит, что моторы на самом деле получат на 1,4 вольта меньше от батареи, которое составляет около 50% потерь при 3 В питании. Другой недостаток этого решения заключается в том, что она нуждается в обширной охлаждения. Каждый из моторов потребляет около 200 мА, и микросхема рассеивает 2·1,4 В х 200 мА = 0,56 Вт тепла - нужен теплоотвод, что так же не способствует экономии батареи.


Еще одним способом создания драйвера двигателя является использование МОП-транзисторов. Эти устройства свободны от указанных выше ограничений на биполярных транзисторах. Тут использованы N-канальные МОП-транзисторы типа IRF510, чье сопротивление во включенном состоянии составляет 0,5 Ом. Поэтому они имеют только 0,5 Ом х 0,25 А = 0.125 В падение напряжения, которое является незначительным. В этом режиме транзистор рассеивает только (0.5 Ом)2 х 0,25 А = 0.06 Вт и может работать без теплоотвода. Лучшим выбором будет использование IRF520 чей канал имеет сопротивление 0.2 Ома.


Транзисторы снабжены ограничивающими напряжение диодами. Для решения проблемы низкого питания добавлен DC-DC преобразователь на TC7660, что инвертирует 3 В в 5 В.

Регулировка чувствительности ИК-датчиков




ИК датчики имеют слишком высокую чувствительность для данного проекта. Они обнаруживают препятствия на расстоянии около 30 см. Таким образом ИК-приемники часто получают случайные отражения от других объектов, вызывающих сбой направления робота. Для изменения чувствительности был использован тот факт, что ИК модули имеют высокую чувствительность на 38 кГц. Опустившись на частоты вниз до приблизительно 33 кГц получится уменьшить чувствительность датчика примерно в 2 раза. Все файлы прошивки и видеоролик работы робота - (3 Мб).

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

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

Tamiya 70168 сдвоенный редуктор (можно поменять на 70097)
- Tamiya 70100 набор катков и гусениц
- Tamiya 70157 площадка для крепления редуктора (можно заменить на кусочек фанеры 4 мм)
- Небольшие куски листовой оцинковки
- Фанера 10 мм (небольшой кусочек)
- Arduino Nano
- DRV 8833
- LM 317 (стабилизатор напряжения)
- 2 светодиода (красный и зеленый)
- Резисторы 240 Ом,2х 150 Ом, 1.1 кОм
- Конденсатор 10v 1000uF
- 2 однорядных гребенки PLS-40
- 2 разъема PBS-20
- Катушка индуктивности 68мкГн
- 6 NI-Mn аккумулятора 1.2v 1000mA
- Коннектор папа-мама двух контактный на провод
- Провода разных цветов
- Припой
- Канифоль
- Паяльник
- Болтики 3х40, 3х20, гайки и шайбы к ним
- Болтики 5х20, гайки и усиленные гайки к ним
- Дрель
- Сверла по металлу 3 мм и 6 мм

Шаг 1 режем металл.
Для начала нам нужно вырезать из листового металла (лучше оцинковки) вырезать четыре детали. По две детали на гусеницу. По данной развертке вырезаем две детали:

Точками указаны места, где необходимо просверлить отверстия, рядом указан диаметр отверстия. Отверстия 3 мм нужны для навешивания катком, 6 мм – для продевания сквозь них проводов. После резки и сверления нужно напильником пройти все края, не оставляя острых углов. По пунктирным линиям согнуть на 90 градусов. Будьте внимательны! Гнем первую деталь в любую сторону, а вторую гнем в обратную сторону. Они должны быть симметрично согнутыми. Есть еще один нюанс: необходимо просверлить отверстия под саморезы, крепящие наши пластины к основе. Делать это надо, когда будет готова основа. Прикладыаем заготоку на основу и отмечаем места сверления так, чтобы саморезы попадали в центр ДСП. Делаем еще две детали по второй развертке:







Шаг 2 готовим основу.
Собираем редуктор по прилагающийся инструкции. Прикручиваем его на площадку. Если нет площадки вырезаем из фанеры 4 мм прямоугольник 53х80 мм и крепим на нее редуктор. Берем фанеру 10 мм. Вырезаем два прямоугольника 90х53 мм и 40х53 мм. Внутри маленького прямоугольника вырезаем еще один прямоугольник, так чтобы у нас получилась рамка с толщиной стенок 8 мм.

Скручиваем все как показано на фото:







В углах площадки сверли отверстия 6 мм и вставляем в них наши болтики 5х20 сверху накручиваем усиленные гайки. Они нужны для последующего крепления разных механизмов или плат. Для удобства сразу клеим светодиоды:



Шаг 3 электрика.
Для управления будем использовать Arduino Nano. Драйвер двигателей DVR 883. На монтажной плате собираем все по схеме.

L1 – катушка индуктивности и C1 нужны для стабилизации напряжения Arduino. Резисторы R1 и R2 перед моторами – токоограничивающие, их номинал надо подбирать под конкретные моторчики. У меня нормально работают при 3 Ом. LM317 нужна для заряда аккумуляторов. На вход можно подавать напряжение от 9.5 В до 25 В. R3 – 1.1 кОм R4 – 240 Ом. «Штырьки» слева используются для последующего подключения разного рода устройств (Bluetooth, модуля связи 433 МГц, IR, Servo и др.). Для питания будем использовать 6 аккумуляторов Ni-Mn 1.2v 1000mA спаянных последовательно и смотанных изолентой.

Шаг 4 собираем основу.
Берем нашу основу, на двусторонний скотч клеим на нее плату. Металлические детали по первой развертке нужно прикрутить на меленькие саморезики к основе по бокам, согнутыми частями наружу. Будьте внимательны прикручивать нужно так, чтобы крайнее 6 мм отверстие надевалось на выходную ось редуктора, низ детали должен быть параллелен основе и симметричен по отношения ко второй такой-же детали. В итоге должно получится:







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



Эта крышка прикрывает редуктор, чтобы в него не попадала грязь, да и шумит он так меньше. Далее тоже из белого пластика вырезаем прямоугольник 52х41 мм. Делаем отверстия для подключения Arduino и кнопки выключения как на фото:

Клеим все это на двусторонний скотч:

Наклейка для красоты.

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

Шаг 5 гусеницы.
Здесь нам понадобятся наши заготовки по второй развертке. В 3 мм отверстия вставляем болтики с полуцилиндрической головкой 3х20. Надеваем шайбы и накручиваем гайки:

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

Накидываем на катки резиновые гусеницы. Надеваем пластину вместе с катками на основу, смотря чтобы болтики попадали в отверстия. И затягиваем гайки. Мы получаем почти готовое гусеничное шасси:

Шаг 6 прошивка.

На мой взгляд удобнее всего писать прошивку в Arduino IDE. Собранное нами шасси является универсальным и прошивка требуется в зависимости от конкретной цели. Можно подключить Bluetooth модуль и использовать телефон или компьютер для управления. Также есть возможность подключить IR датчик и использовать ИК пульт для управления. Еще один вариант управления использование 433 МГц модуля для связи с пультом. На основе шасси возможно сделать робота следующего по линии или любой другой автономный. Я выкладываю прошивки для Bluetooth, 433 МГц и IR.

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

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

  1. Батарейки в корпус никак не влазили, поэтому приходилось их приматывать к корпусу изолентой:)
  2. Настройка параметров была вынесена на четыре потенциометра, которые оказались очень чувствительными к температуре. В помещении настраиваешь одни значения, выходишь на улицу - а они уже другие, уплыли.
  3. У Arduino Nano, которую я использовал в пульте, есть всего 8 аналоговых входов. Четыре были заняты настроечными потенциометрами. Один потенциометр служил газом. Два входа были подключены к джойстику. Оставался свободен только один выход, а параметров для настройки гораздо больше.
  4. Единственный джойстик был вовсе не пилотным. Управление газом с помощью потенциометра тоже весьма угнетало.
  5. А еще пульт не издавал никаких звуков, что иногда бывает крайне полезно.

Чтобы устранить все эти недостатки, я решил кардинально переделать пульт. И железную часть, и софт. Вот что мне захотелось сделать:

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

Новый корпус

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

Элементы управления и меню

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

Чтобы перемешаться по меню, и менять параметры обычно используют кнопки. Влево, вправо, вверх, вниз. Но мне захотелось использовать вместо кнопок энкодер. Эту идею я подсмотрел у контроллера 3D-принтера.


Разумеется, за счет добавления меню, код пульта распух в несколько раз. Для начала я добавил всего три пункта меню: "Telemetry", "Parameters" и "Store params". В первом окне отображается до восьми разных показателей. Пока я использую только три: заряд батареи, компас и высота.

Во втором окне доступны шесть параметров: коэффициенты PID регулятора для осей X/Y,Z и корректировочные углы акселерометра.

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

Джойстики

Над выбором пилотных джойстиков я долго не размышлял. Так получилось, что первый джойстик Turnigy 9XR я добыл у коллеги по квадрокоптерному делу - Александра Васильева, хозяина небезызвестного сайта alex-exe.ru . Второй такой же заказал напрямую на Hobbyking.


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

Питание

В старом пульте я использовал простой регулятор напряжения LM7805, который кормил связкой из 8 батареек AA. Жутко неэффективный вариант, при котором 7 вольт уходили на нагрев регулятора. 8 батареек - потому что под рукой был только такой отсек, а LM7805 - потому что в то время этот вариант мне представлялся самым простым, и главное быстрым.

Теперь же я решил поступить мудрее, и поставил достаточной эффективный регулятор на LM2596S. А вместо 8-ми AA батареек, установил отсек на два LiIon аккумулятора 18650.


Результат

Собрав все воедино, получился вот такой аппарат. Вид изнутри.


А вот с закрытой крышкой.


Не хватает колпачка на одном потенциометре и колпачков на джойстиках.

Наконец, видеоролик о том, как происходит настройка параметров через меню.


Итог

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

По ходу настройки пульта, были выявлены недостатки. Во-первых, нижние углы пульта упираются в руки:(Наверное я немного перепроектирую пластины, сглажу углы. Во-вторых, даже дисплея 16х4 не хватает для красивого вывода телеметрии - приходится названия параметров сокращать до двух букв. В следующей версии девайса установлю точечный дисплей, либо сразу TFT матрицу.

Робот – самостоятельный (в определенных пределах) механизм, который передвигается по определенным алгоритмам. Здесь ключевое слово “передвигается”. Хотя есть и стационарные роботы, например, на каком-нибудь производстве, но в домашних условиях намного интереснее автономные движущиеся устройства.

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

Недорогой гусеничный тракторking force 300, кандидат на встраивание мозгов робота

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

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

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

Самый простой вариант и быстрый результат – покупное шасси. Чуть посложнее, но более универсальный вариант – изготовление шасси своими руками. Какие простые шасси можно выбрать?
Шагающие – интересно, но довольно сложно. Для соревнований точно не подойдет.
Возьмем для сравнения колесный и гусеничный варианты. Начнем с колес.
Колесные шасси можно разделить по количеству колес, по типам колес и типам управления.

Количество колес:
1 колесо – экзотика. Требуется сложная система балансировки. Для домашнего изготовления конструкция сложновата. Да и представленная на рисунке фактически использует три колеса, хотя и опирается на одно круглое типа мяч, зато балансирует с кирпичом на макушке

Робот на шаре, балансирует и даже может таскать кирпичи

Убегающий будильник. Два колеса и этого достаточно.

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

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

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

Принцип разворота на месте. Одно ведущее колесо катится вперед, другое назад, тележка разворачивается.

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

Колеса вращаются независимо, поэтому для разворота на месте достаточно одно колесо запустить вперед, а второе – назад. И тележка будет разворачиваться на месте вокруг центра между колесами.

Реечная схема управления. Управляющее колесо поворачивается при помощи реек управления

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

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

Движение прямо на трех всенаправленных колесах.

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

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

Всенаправленное колесо. Не сопротивляется движению в бок счет дополнительных роликов.

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

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

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

Небольшая табличка в которой сводятся достоинства и недостатки этих вариантов шасси.

Номер п.п Описание Достоинства Недостатки
1 Дифференциальная схема с тремя колесами Высокая маневренность вплоть до разворота на месте.
Простота конструкции, дешевизна, простота управления, компактность.
Увод в сторону при прямолинейном движении, Требует подруливания, низкая проходимость.
2 Реечная схема с тремя колесами Дешевизна конструкции. Простота управления. Не требует подруливания при прямолинейного движения. Низкая маневренность, большой радиус поворота. Трудность расчета необходимого угла поворота
3 Высокая маневренность, возможность перемещения в любую сторону Дороговизна, трудность управления, трудность расчета пройденного пути, низкая проходимость.
4 Гусеницы Высокая маневренность, высокая проходимость Большие энергозатраты на движение, необходимы более мощные моторы. Более сложная конструкция шасси.

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