Как сделать робота на 2 колесах

Обновлено: 02.07.2024

Maksim Tsyganok

Привет, разработал свой вариант балансирующего робота на ардуино, MPU6050 и шаговых двигателях.
Создавал для кайфа и своего ютуб канала Max Gear
Робот при хорошей настройке ПИД коэффициентов балансирует очень хорошо.

Алгоритм работы : Берём данные с MPU6050 с помощью библиотеки I2Cdevlib, вычисляем угол наклона к вертикальной оси, засовываем в два ПИД регулятора последовательно и получаем скорость вращения колёс. Затем по таймеру 32000 раз в секунду хитрым кодом идейно подсмотренным в прошивке GRBL для чпу станков делаем шаги. В итоге получаем плавно балансирующего двухколёсного робота, на воздействия извне реагирует очень бодро

Настройка : Заключается в подборе ПИД коэффициентов, Алекс писал на эту тему ролики, сложность в том что регулятора два, в самой прошивке я написал подробные комментарии ко ВСЕМУ коду. Я подобрал неплохие коэффициенты гадая на кофейной гуще и гороскопам, а затем подогнав все более точно.

Настройка ПИДов осуществляется изменением define значений в главном файле прошивки MaxGear_BalancingRobot.ino:

Реализация : Прикрепляю полную схему устройства и внешний вид, корпус напечатан PETG пластиком и представляет из себя простую раму для крепления всех компонентов винтиками да горячими соплями.

Что можно улучшить: Не реализовано дистанционное управление, изначально хотел взять esp8266 и сделать управление роботом через браузер любого устройства, столкнулся с проблемой - нельзя из javascript создать UDP соединение, если есть знатоки подскажите может я ошибаюсь и возможно сделать кроссплатформерное управление с минимальной задержкой.

Также питание от 3 банок лития получается 12.6 вольт максимум, что для шаговиков маловато На подсевших батареях поведение робота постепенно ухудшается, легче вызвать пропуск шагов. Как вариант взять 4 банки и стабилизировать их чем-то импульсным, стабильное напряжение обеспечит одинаковое поведение робота вне зависимости от просадки банок.

Все файлы необходимые для реализации робота можно найти по ссылке ссылке
Примерная стоимость комплектующих 2800 рублей

Робот в действии, разъяснения как он устроен и процесс сборки и частично настройки:

CARduino – самодельный робот на Arduino

Как понятно из названия, это робот на контроллере Arduino UNO. К нему разработаны собственные библиотеки для простого и удобного использования. В обычной комплектации робот содержит два двигателя, два колеса и дальномер, установленный на передней панели. Также сверху на нём есть макетная плата для добавления разнообразных устройств на ваше усмотрение. Он работает и управляется автономно, однако к нему можно добавить радиоуправление. В этой статье описана работа с ним и библиотеками и есть несколько примеров.

CARduino – самодельный робот на Arduino

Что такое библиотека?
Библиотека облегчает управление CARduino. Этот проект рассчитан на людей с небольшим опытом в программировании, которые хотят делать простых роботов. Вам даже не нужно знать, как управлять мотором. Библиотека сводит программу до простых команд "Повернуть направо и проехать 1 секунду" или "Ехать вперед 3 секунды, а затем ускориться". Библиотека также содержит примеры программ, которые помогут вам. Более подробная информация о библиотеке содержится в конце статьи.

Если у меня нет таких же материалов, я могу использовать другие?
Конечно, вы можете собирать робота как вам угодно. Библиотека будет работать практически независимо от сборки. Например, вы можете использовать другой материал для шасси. Я использовал дерево, потому что смог найти только его.

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

Какая стоимость робота?
Если собирать его с нуля, то около 100$. У меня были почти все части, поэтому он обошелся мне примерно в 30$. Все компоненты достаточно распространены и должны у вас быть.

Детали

Детали для робота

1х Arduino Uno.
1х Макетная плата.
1х Разъёмы для Arduino и макетной платы.

1х Дальномер Sharp.
2х Микро мотора.
Пара колес 49x19мм.
Пара кронштейнов для двигателя.
Пара шариковых колёс .
Драйвер моторов для Arduino.
1х Кусок дерева 15x10.75 см.
12х Шурупов.
1х 9В батарея

Подготовка шасси робота

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

Установка шариковых колёс

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

Установка шариковых колёс

Установка моторчиков

Это довольно просто. Все, что вам нужно сделать - это вставить двигатели в кронштейн и прикрепить их на углах доски. Вы можете припаять провода к ним. Не перепутайте положительные и отрицательные контакты.

Крепление моторчиков

Установка Arduino и макетной платы

Вы должны начать с центрирования Arduino и макетной платы на шасси. Отметьте отверстия держателя и просверлите их. Потом прикрепите основу с макетной платой и Arduino шурупами.

Установка датчика

Установка датчика

Расположите датчик спереди и посередине, отметьте крепёжные отверстия и просверлите их. Вы должны использовать отверстия на обоих сторонах датчика. Используйте шурупы для крепежа. Убедитесь, что при установке JST выводы находится вверху. Вставьте JST провода в датчик.
Красный провод присоедините к + макетной платы, черный к GND, а желтый в любую другую точку. После этого подключите драйвер моторов к Arduino.

Подключение моторчика

Подключение двигателей колес к драйверу

Подключите положительный контакт правого двигателя к отрицательному контакту А драйвера.
Подключите отрицательный контакт правого двигателя к отрицательному контакту А драйвера.

Подключите положительный контакт левого двигателя к отрицательному контакту В драйвера.
Подключите отрицательный контакт левого двигателя к отрицательному контакту В драйвера.

Подключение моторчика

Подключение питания и датчика

Подключение питания и датчика

Подключите 5В к + макетной платы, а GND к GND макетной платы. Желтый провод датчика подключите ко второму контакту АЦП.

Установка батареи

Просто приклейте её супер клеем на задней панели CARduino. Затем присоедините + и GND к + и GND Carduino.

Установка батареи

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

Библиотека

Для установки библиотеки скачайте Carduino.zip ниже. Найдите / arduino-1.0/libraries. Извлеките содержимое архива в эту папку.. Чтобы использовать её, откройте Arduino IDE и последуйте по пути -> import library -> Carduino.

Значение функций:
void mycarduino.begin ()
Инициализация CARduino. Напишите эту команду в начале программы.

void mycarduino.goforward (время в секундах, скорость)
Эта функция перемещает CARduino вперед в течении указанного времени с указанной скоростью. Скорость может быть любым числом от 1 до 1023, 1023 – максимальная скорость.

void mycarduino.goback (время в секундах, скорость)
То же самое, только назад.

void mycarduino.turnright (время)
Поворот направо в течении указанного в времени(в миллисекундах).

void mycarduino.turnleft (время)
Тоже самое налево.

Int mycarduino.proximity ()
Возвращает значение с датчика в сантиметрах

Примеры:
Перейдите по адресу File -> Examples -> Carduino -> [имя на ваш вкус]

Blink - CARduino секунду двигается вперед, на секунду останавливается, секунду движется вперёд, и т.д.

Object Avoid - CARduino постоянно движется вперед, пока объект находится на расстоянии более 25 сантиметров. Затем он случайным образом выбирает сторону и поворачивает в неё на 800 или 2300 миллисекунд.

Cautious Driving – работает как предыдущая программа, но замечая объект на расстоянии 40 см замедляет скорость.

Вы полностью закончили проект!

Ниже видео робота в действии (из-за проблем с дальномером он отключен, но робот работал)



Ждал не долго – около 20 дней, но вот пришло не все…




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


Отдельный вопрос – размещение третьего колеса. Не смотря на простоту конструкции и очевидность решения, не все так просто! Собрав Вариант 1 и начав испытания, я не мог заставить робота ехать прямо!





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

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

Как сделать робота самостоятельно

Робот, реагирующий на источник света

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

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

Необходимые инструменты и детали

При сборке конструкции простого робота своими руками потребуются:

  • основа – монтажная плата или плотный материал (картон);
  • движущая сила – миниатюрные моторчики мощностью 3 или 5 В (из старой игрушки);
  • колеса – крышки от пластиковых бутылок;
  • датчики – фототранзисторы на 3 В;
  • источник питания — 3 спаянные батарейки АА (пальчиковые);
  • управляющие элементы – транзисторы 816Г (производство – Россия);
  • монтажные приспособления – провода из витой пары.

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

Робот краб НЕХА

Процесс сборки

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

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

К 3 соединенным батарейкам подпаивают провода и определяют на плате 2 точки их схождения (плюс и минус). Удобно продеть в края платы витую пару, запаять концы к транзисторам и датчикам, вывести петлю и к ней подпаять батарейки.

Двигатели устанавливают в конце шасси с противоположной стороны платы. Управляющий моторчик крепят напротив управляемой системы. Это необходимо, чтобы робот поворачивался на свет.

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

Робот, следующий за источником света

Второй фотоэлемент припаивают небольшим куском провода к транзисторной базе. Остальные ножки присоединяют к моторчикам. Для проверки правильности сборки используют тестер полярности напряжения.

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

Когда все сделано правильно, двигатели на плате вращаются, меняя скорость в зависимости от степени освещения.

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

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

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

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

Робот, различающий препятствия

Перед сборкой интеллектуального устройства обдумывают его внешний вид и принцип передвижения. Оптимальный вариант – использование гусеничной цепи (как в танке).

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

Инструменты и запчасти

Перед созданием робота следует подготовить:

  • микроконтроллер (ATmega 16 в корпусе Dip-40);
  • керамические конденсаторы 0,1 мкФ, 1 мкФ, 22 пФ;
  • резисторы на 25 Вт номиналом 10 кОм (1 единицу) и 220 Ом (4 штуки);
  • диод 1N4004;
  • L7805 в корпусе ТО-220;
  • паяльник;
  • инфракрасные диоды (2 шт.);
  • фототранзисторы, способные реагировать на длину ик-лучей;
  • резонатор кварцевый на 16 МГц;
  • мультиметр;
  • радиодетали;
  • гусеницы и мотор от игрушечного экскаватора, танка.

Работа с платой

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

Далее осматривают корпус контроллера MK-Dip и выделяют в нем узлы:

Робот, различающий препятствия

Управление двигателями

В приспособлении используется микросхема L293D со встроенными диодами, которые защищают систему от перегрузки. Она имеет 2 канала, что позволяет подключить сразу 2 двигателя. Моторчики на плате запрещено присоединять напрямую к МК. Контакт обеспечивается с помощью ключевых транзисторов.

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

Установка датчиков препятствий

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

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

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

Прошивка робота

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

Прописывая команды, следует учесть, что по инструкции у робота 2 датчика. Если на 1 из фототранзисторов поступает свет от инфракрасного диода, механизм начинает движение назад, отъезжая от препятствия. Он разворачивается и снова едет вперед.

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

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

Робот, различающий препятствия

Наилучший вариант знакомства детей с миром робототехники — конструирование и программирование Lego-роботов (EV3 и Boost).

Роботы для детей

Робототехника позволяет школьникам развивать творческие навыки и знакомить с техническими терминами. Освоив принципы конструирования lego-роботов (как правило, в школах робототехники используют для обучения lego-платформы), дети учатся разбираться в новых технологиях и осваивают азы востребованной профессии.

Ребятам будет интересно самостоятельно построить или поучаствовать в сборке:

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

Полезные роботизированные устройства для начинающих

Первые шаги в робототехнике можно начать:

Необходимые навыки

Для изготовления роботов новичкам потребуются следующие навыки:

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

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





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

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

Шаг 1: Необходимые материалы



Также вам понадобится одна большая металлическая скрепка и бусина (для заднего опорного колеса).

Для изготовления каркаса робота использован кусок плексигласа (оргстекла) 12х9,5 см. Можно сделать каркас из дерева или металла, или даже из компакт-дисков.

  • Дрель
  • Суперклей
  • Отвертка
  • Клеевой пистолет (опционально)

Для питания робота используется батарейка 9В (крона), она достаточно компактная и дешевая, но разрядится уже примерно через час. Возможно, вы захотите сделать питание от аккумулятора на 6 В (минимум) или 7 В (максимум). Аккумулятор мощнее батарейки, но и дороже и больше по габаритам.

Шаг 2: Делаем каркас робота



Положите всю электронику на плексиглас и маркером отметьте места, где нужно будет просверлить монтажные отверстия (фото 1).

На нижней стороне пластины плексигласа приклейте на суперклей электромоторы. Они должны быть параллельны друг другу, с помощью линейки-угольника проверьте их положение прежде чем клеить (фото 2). Затем приклейте на суперклей отсек для батарейки.

Можно также просверлить отверстия под провода электромоторов и питания.

Шаг 3: Монтируем электронику




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

Теперь делаем заднее опорное колесо из скрепки и бусины (фото 2). Концы проволоки закрепите на нижней стороне каркаса суперклеем или термоклеем.



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

Шаг 5: Схема подключений



Теперь приступаем к подключению электронных компонентов. Подключение компонентов происходит согласно схеме на рисунке 1.

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

Шаг 6: Код


Код, который приведен ниже, сделан с помощью Codebender.

Вставьте батарейку в отсек и нажмите на функциональную кнопку один раз, и робот начнет движение вперед. Для остановки движения нажмите на кнопку еще раз.

Если робот не двигается, может изменить контакты электромоторов (motorA1 и motorA2 или motorB1 и motorB2).

Шаг 7: Завершенный робот


Ваш самодельный робот, обходящий препятствия, на базе микроконтроллера Arduino готов.

Рассказываю как сделать какую-либо вещь с пошаговыми фото и видео инструкциями.

Читайте также: