Это мой первый проект четырёхногого робота. Разработка первой версии длилась около года, последняя модификация уже четвёртая. Есть два варианта исполнения — под сервоприводы sg90 и mg90. Если интересна история развития проекта, можете посмотреть её в блоге.
Ещё два проекта, связанных с пауком – это симулятор на vPython и дистанционное управление с использованием Bluetooth. Они будут рассмотрены во второй и третьей части.
Делать такого паука весело, однако для его реализации Вам потребуется время и терпение.
Скачать все необходимые файлы можно по этой ссылке.
Робот Квадропод
Данный робот не имеет в базовой комплектации никаких датчиков и сенсоров. Но Вы всегда их можете добавить самостоятельно. Главное — научится программировать Квадропода совершать красивые движения и даже танцевать!
Для сборки робота Вам как всегда потребуются детали корпуса, которые можно напечатать самостоятельно, скачав их бесплатно с нашего сайта. Затем необходимо купить электронику, список которой будет показан далее. Вкратце, это контроллер Arduino, 8 сервоприводов, да и по сути все.
RobotONRobots
Итак, разложим все запчасти перед собой. Сначала нам нужно сделать сустав. Для этого берём крестообразную деталь и сгибаем ее так, как показано на рисунке. Делать это нужно плавно, используя специальную форму, об которую будем проводить обжимку, и ключ. Стоит отметить, что при печати лучше использовать гибкие материалы, например, SBS пластик.
RobotONRobots
Затем устанавливаем в когти сервомоторы. Сначала нужно добавить им ещё один неподвижный вал. Необходимо раскрутить заднюю крышку и надеть пластиковую деталь, как показано на картинке. Лучше сразу проделать данную операцию со всеми моторами. После чего вставьте их в когти.
RobotONRobots
Теперь пора установить электронику. Можно использовать плату, показанную на картинке. На неё установить батарейки. Но можно использовать обычную Arduino Nano со специальным шилдом приспособленным под сервы. В этом случае вам понадобится отдельно подключить батарейный отсек или аккумулятор. Устанавливаем все это на корпус.
RobotONRobots
Теперь ставим сервоприводы на тело робота. Головки валов должны соответствовать рисунку.
RobotONRobots
Устанавливаем сделанные нами суставы на сервоприводы под углом 45 градусов. Закрепляем их в этом положении пропеллерами, идущими в комплекте с двигателями. Напоминаем, что предварительно необходимо настроить все сервоприводы на угол 90 градусов.
RobotONRobots
Аналогичным образом подсоединяем когти и закрепляем их.
RobotONRobots
Распиновка данной платы показана ниже. Если Вы используете Arduino с шилдом для серв, то трудностей с подключением быть не должно. В нашем случае плата сама предусматривает коннекторы для данных моторов — выделено синим.
RobotONRobots
Особенности:
Как и в других моделях роботов пауков, самым важным этапом является предварительная настройка сервомоторов. Для того, чтобы ноги паука могли свободно двигаться в любую сторону, необходимо заранее выставить положение вала серв в среднее положение, а именно на 90 градусов. Можно использовать моторы с металлическим редуктором (версия MG) или с пластиковым (SG). Разница лишь в долговечности, особенно если у Вас есть ребёнок, который любит все покрутить. Что же нам потребуется из электроники?
- 8 cервомоторов SG90 или MG90
- Arduino Nano/Uno или TinyPlan V4 Controller Board
- 6 батареек или аккумулятор на 12 В
Характеристики:
- Простое программирование ввиду наличия одного типа
- Возможность использования различных датчиков и сенсоров
- Отличная игрушка для развлечений и демонстраций
- Интересная инженерная работа
- Необходимость использования 3D принтера
Видео:
Необходимые детали и узлы
Прежде чем приступить к сборке квадрокоптера своими руками, необходимо обзавестись всеми необходимыми деталями. Мозгом нашей самоделки станет полетный контроллер Arduino Uno. Его возможностей более чем достаточно для того, чтобы управлять беспилотником.
Помимо микроконтроллера, нам понадобятся:
- Аккумулятор (лучше несколько) на 3.7В
- Плата MPU-6050 (на ней установлены гироскоп и акселерометр)
- Транзистор ULN2003A
- Коллекторные двигатели с полым ротором 0820
- Провода
Необходимо сделать несколько замечаний. Так как мы собираем дешевый самодельный дрон, то наш выбор пал на коллекторные движки с полым ротором (так называемые coreless motors). Они далеко не так надежны, как бесколлекторные двигатели, но зато гораздо дешевле стоят. Кроме того, можно обойтись без дополнительных контроллеров скорости.
Зато невозможно обойтись без гироскопа и акселерометра. Гироскоп необходим для того, чтобы квадрокоптер мог удерживать заданное направление движения, тогда как акселерометр используется для измерения ускорения. Без этих устройств управлять коптером было бы гораздо сложнее (если вообще возможно), так как именно они предоставляют данные для сигнала, регулирующего скорость вращения винтов.
Мы не указали в списке необходимых деталей раму. Ее можно приобрести, а можно распечатать на 3D принтере каркас, лучи и крепления для двигателей. Второй вариант нам кажется более предпочтительным, тем более, что в интернете можно без труда найти проекты квадрокоптера.
Распечатанная на принтере рама окажется не только легкой, но и прочной. Но если доступа к 3D принтеру нет, раму можно заказать.
Как все начиналось
Наконец-то я получил долгожданный набор механических деталей для робота-паука. А к ним в придачу я еще заказал литий-полимерный аккумулятор, конвертер на 30А и микроконтроллер.
В прошлом цикле статей я поэтапно показал, как делал подобного робота из ДСП. Точность изготовления была не очень, большие люфты, автономного питания не было. Да и весила вся конструкция килограмм пять, не меньше. Исправим все эти недостатки в новой конструкции. Итак, начнем создавать нового монстра, он будет называться «Робот-паук 2019».
Видео, демонстрирующее работу робота
Нашел на youtube еще один ролик (один из самых популярных в этой тематике), в котором рассматривается создание робота, объезжающего препятствия. Он более совершенен чем рассмотренный в данной статье благодаря вращающемуся с помощью сервомотора ультразвуковому датчику. К нему есть также исходный код программы (доступен по ссылке из описания ролика), но без объяснения. Но, надеюсь, объяснение программы рассмотренного в данной статье робота поможет вам понять код программы этого более «продвинутого» робота.
В силу разных обстоятельств выход третьей части затянулся и да, речь пойдет о прошивке ESP8266 в среде ARDUINO (АРДУИНО). Скажу сразу – я не ардуинщик, это четвертый раз, когда я столкнулся с этой средой (три проекта с одного ресурса).
Начнём с установки среды и библиотек. Среду можно скачать по этой ссылке. Это портабельная версия 1.8.5 в zip-архиве. Распаковываем архив в c:\Program Files\ — все, среду установили. Переходим к установки библиотек. Для этого переходим по ссылке и делаем все, что пишет автор (лучше, как там расписано я не скажу, а переписывать не вижу смысла). Версию библиотеки выбирайте 2.4.2. В итоге мы установим библиотеки для ESP8266 и драйвера для CH340G. Теперь снова выбираем пункт меню Инструменты → Плата: “Arduino/Genuino Uno”
и выбираем плату “Generic ESP8266 Module”:
Выставляем настройки как на картинке выше. Все готово, можно прошивать.
Открываем исходник, который скачали ранее и видим, что все на английском и китайском, соответственно и кнопки управления будут на английском. Это видно на видео из статьи. Лично мне это не подходит. А вам? Тогда открываем гугл-переводчик и вперед.
Подключаем плату к ПК и перед подачей питания на плату, замыкаем GPIO0 на землю, как на фото:
Светодиод на модуле мигнет три раза и потухнет, можно разомкнуть вывода. Жмём кнопку Загрузка:
Если всё прошло хорошо, то будет так:
Если не хотите заморачиваться с ардуино, то можно прошить с помощью ESP8266 Flasher. Для этого качаем архив в конце статьи и делаем все по инструкции.
Для удобства подключения серв, я их подписал, согласно схеме (вид сверху):
Плату прошили, сервы подключили, осталось подключить повышающий модуль и модуль заряда АКБ (ссылки на которые давал во второй части) вмести с ним. У себя в закромах нашел еще более мелкий повышающий модуль:
Кстати, про разъёмы, куда подключать модуля:
Припаиваем разъем, потом в термоусадку, чтобы ни чего не замкнуло и ставим на место:
В ходе «полевых» испытаний выяснилось, что робот от АКБ не работает. Причиной стала не правильно разведенная дорожка питания. Было так:
Нужно так:
Берем ножик, паяльник и исправляем:
Где черное – разрезаем, где красное – соединяем. У меня так получилось:
Теперь переходим к модулю заряда. Припаиваем разъемы для подключения к плате и АКБ, провода для индикации заряда, окончания заряда и разряда АКБ, приклеиваем двухсторонний скотч:
Заодно и АКБ дорабатываем:
Подключаем плату заряда, приклеиваем ее и припаиваем оставшиеся провода:
Все, теперь можно прикрутить нижнюю крышку на место:
В первой части я говорил, что игрушки будет две. Так вот. Берем глаза робота из версии 2.0, раскрашиваем и приклеиваем к верхнее крышке:
Подключаем АКБ к разъему, ложем в крышку (или приклеиваем на двухсторонний скотч к ней, если АКБ меньшего размера, чем применил я) и прикручиваем ее:
Все, теперь можно попробовать «оживить» нашего паука. Забегая вперед, скажу, что лучше это начать делать от зарядки от телефона/планшета или внешнего АКБ (Power Bank) с током выхода 2А. Подключаем «шнурок» к плате, подаем питание от USB, заходим в настройки Wi-Fi на телефоне/планшете и видим нашу сеть:
Для подключения к сети «ГОША 1.0 — 5F57», где 5F57 – это MAC-адрес конкретного модуля, нужно ввести пароль 12345678. Если хотите его сменить, в исходнике ищите в начале кода строку const char WiFiAPPSK[] и меняете его.
Открываем браузер на телефоне/планшете и в поле адреса вводим 192.168.4.1 и жмём ввод. Загрузится страница:
Вообще, если к адресу добавить одну из строк /setting, /zero, /editor, то загрузятся такие страницы:
Для чего нужны остальные страницы? Для настройки положений сервоприводов. Итак.
/setting – это настройка нулевого состояния сервоприводов,
/zero – это проверка нулевого состояния сервоприводов,
/editor – это редактор движения.
Как говорится: «Лучше один раз увидеть…» Видео по настройке нулевого положения сервоприводов от автора робота:
Ну и на последок видео, что в итоге получилось:
На этом все! Всем удачи в сборке! Будут вопросы – пишите.
P.S. В связи с выявленными недочетами плата была немного переделана:
P.P.S. Принято решение контроллер заряда перенести на плату:
За основу контроллера заряда была взята эта схема:
Индикатор разряда собран по такой схеме:
Все версии плат можно скачать в конце.
P.P.P.S. В процессе эксплуатации были найдены кое-какие моменты работы контроллера заряда (точнее узла защиты от разряда/перезаряда), а именно уход в защиту при резком скачке нагрузки (все сервы потребляют в пике 1,6А). Чтобы этого избежать, перед подачей питания, лапы паука вручную перевожу в нулевое состояние (на видео видно), а управление начинаю с кнопки «Ожидание» или «2 танец».
P.P.P.P.S. Заказал в Китае платы для Power Bank с выходом 5В / 2А. После прихода и проверке будет дополнение к статье.
Первая часть.
Вторая часть.
Первый опыт сборки шагающего робота. Quadruped Robot
Планы для данного проекта давно крутились в голове и были следующие:
1. Найти готовый проект шагающего робота, работающего на плате Arduino.
2. Управление роботом должно осуществляться с телефона.
3. Посмотреть на узлы соединения деталей и изучить механику робота.
4. Поработать с электронными компонентами и изучить их.
Думаю, что не имея опыта работы с такими вещами, план был выполнен на все 100%.
Начиная с поиска готового проекта робота пришлось сразу изучать и электронную составляющую, так как почти все проекты реализованы иностранными пользователями и они используют возможности своего местоположения не прибегая к покупке комплектующих у наших «китайских друзей».
После того как робот был найден, заказаны комплектующие пришло время печати деталей. Вот тут ждала самая большая неожиданность, детали данного робота оказались ужасно спроектированы и требовали большого количества поддержек при печати, и располагать их на столе приходилось тоже довольно своеобразным образом. Располагаешь с минимальным количеством поддержек — съезжает геометрия из-за того, что деталь находится под углом, располагаешь деталь нормальным образом — появляется большое количество поддержек и в дальнейшем возможность сломать деталь в процессе снятия поддержек, что и произошло 3 раза, поэтому был выбран вариант печати с минимальным количеством поддержек.
Процесс сборки каркаса с сервоприводами принес тоже довольно много полезных знаний в особенности о том как не стоит проектировать изделия. Посадочные места под сервоприводы были замоделены прямо мм в мм. Для начала на помощь пришел надфиль, а затем были приняты более жесткие меры — в ход пошли бокорезы и некоторые детали теперь «слегка» отличаются от оригинала.
Пришло время электронной составляющей и прошивки плат. С электроникой как ни странно проблем вообще никаких не возникло, а вот с прошивкой Arduino и Wi-Fi модулем пришлось повозиться пару дней и изучить довольно много информации.
Ииииии вот кульминационный момент запуска робота, зашевелились сервоприводы, засверкали лампочки, все подключилось к телефону, но ходить робот отказывался от слова совсем, была обнаружена на мой взгляд самая тупая ошибка в проектировании. Лапы оказались с небольшим пятном контакта с полом и нахождение лап под небольшим углом к плоскости привело к тому что лапы при ходьбе просто расползаются в разные стороны. Это проблема так и не была решена полностью. Для начала попробовал использовать изоленту (хотел попробовать термоусадку, но нужного размера не оказалось под рукой), стретч-пленку, термоклей, но в финальном варианте осталась наждачная бумага.
Помимо всего этого вроде как еще есть проблема в коде. Последнее движение, которое делает задняя лапа перед подъемом вверх, это гребет под себя тем самым стаскивая всего робота назад, вместо того чтобы отталкивать вперед. Переподключал лапы к другим пинам на плате, но это не помогло.
В итоге от поиска проекта и до его полного завершения прошло 4 недели и получен хороший опыт.
Печать заняла 30 часов, было использовано 227 грамм PetG.
Из электроники понадобились следующие компоненты:
Сервопривод SG90 — 12 шт.
Arduino Nano — 1 шт.
Wi-Fi модуль WeMos D1 mini на чипе ESP-12F ESP8266 — 1 шт.
PCA9685 — 16-канальный PWM/Servo модуль с I2C интерфейсом -1 шт.
Импульсный понижающий регулятор 5V/6V 3A UBEC для 2-6S LiPo — 1 шт.
Mini 360 DC-DC понижающий регулируемый преобразователь питания — 1 шт.
Перемычки Dupont мама-мама 100 мм — 8 шт.
JST разъем 2 pin мама с проводами — 1 шт.
Кнопочный переключатель самоблокирующийся DS-228 — 1 шт.
Аккумулятор 11.1V 550mAh LiPo 3S — 1 шт.
По необходимости:
Универсальное зарядное устройство Skyrc IMAX B6 mini 60 Вт
Хоть с проектом было довольно много трудностей и он не работает так как хотелось бы, считаю его очень ценным с точки зрения опыта. Теперь есть огромное желание самостоятельно смоделировать своего четвероногого робота.
Ссылка на оригинальный проект:
Quadruped Robot
Ссылка на мой Instagram:
Hexagon Sector 3D
А вот собственно и фото в собранном состоянии
Детали
Для сборки робота я приобрел на Ali Express следующие детали:
- комплект механических деталей для ног и корпуса;
- микроконтроллер STM32F407VET6;
- сервоприводы MG995 (20шт);
- Bluetooth-модуль НС-05;
- конвертер на 30А, 5В;
- аккумуляторная батарея 11.8В.
Механическая часть собирается без особых вопросов. Но вот как разместить все остальное? Здесь есть где разгуляться творческой мысли. Отверстия на корпусе практически совпали с отверстиями на плате микроконтроллера. Поэтому место его установки сразу однозначно было определено. Аккумулятор тоже спрячем внутри корпуса. В итоге места внутри практически не остается.
Выходное напряжение аккумулятора я выбрал 11.1В. Сначала хотел 7.4В, так как в контроллере есть стабилизатор, а сервоприводы выдерживают напряжение до 7В, плюс падение на подводящих проводах. Но потом решил не рисковать, ведь стоимость сервоприводов составляет половину цены всех деталей целиком. Поэтому решил сделать все правильно, подобрал конвертер 12В в 5В с максимальным током 30А. Этого с запасом хватит, чтобы запитать 18 сервоприводов даже при работе на упор. Вот и аккумуляторная батарея получилась на 11.8В.
Источник питания разместим сверху. Для подключения сервоприводов я сделал две переходные платы, которые органично вписались в существующую конструкцию. Я считаю, что получилось компактно и красиво.
В комплекте механических деталей прилагались подшипники (6шт) для установки плечевых суставов на корпус. Без них будет повышенное трение и излишняя нагрузка на вал сервопривода.