Notice: Undefined index: host in /www/mozgochiny.ru/wp-content/plugins/cas/cas.php on line 131
Специально для mozgochiny.ru
Всем привет. Эта статья небольшой рассказ о том, как сделать робота своими руками. Почему именно рассказ, спросите вы? Всё из-за того, что для изготовления подобной поделки необходимо использовать значительный багаж знаний, который очень трудно изложить в одной статье. Мы пройдёмся по процессу сборки, заглянем одним глазом в программный код и в конечном счете оживим детище «силиконовой долины». Советую посмотреть видео, чтобы иметь представление о том, что в итоге должно получится.
Перед тем, как двигаться дальше прошу отметить следующее, что при изготовлении поделки использовался лазерный резак. От лазерного резака можно отказаться, обладая достаточным опытом работы руками. Точность выступает тем ключом, что поможет завершить проект успешно!
Шаг 1: Как это работает?
Робот имеет 4 ноги, с 3 сервоприводами на каждой из них, что позволяют ему перемещать конечности в 3-х степенях свободы. Он передвигается «ползучей походкой». Пусть она медленная, зато одна из самых плавных.
Для начала нужно научить робота двигаться вперед, назад, влево и вправо, затем добавить ультразвуковой датчик, что поможет обнаруживать препятствия/преграды, а после этого Bluetooth модуль, благодаря которому управление роботом выйдет на новый уровень.
Шаг 2: Необходимые детали
Скелет изготавливается из оргстекла толщиной 2 мм.
Электронная часть самоделки будет состоять из:
- 12 сервоприводов;
- arduino nano (можно заменить любой другой платой arduino);
- Шилда для управления сервоприводами;
- блока питания (в проекте использовался БП 5В 4А);
- ультразвукового датчика;
- hc 05 bluetooth модуля;
Для того, чтобы изготовить шилд понадобится:
- монтажная плата (предпочтительно с общими линиями (шинами) питания и земли);
- межплатные штыревые соединители - 30 шт;
- гнезда на плату – 36 шт;
- провода.
Инструменты:
- Лазерный резак (или умелые руки);
- Суперклей;
- Термоклей.
Шаг 3: Скелет
Воспользуемся графической программой, чтобы начертить составные части скелета.
После этого в любой доступный способ вырезаем 30 деталей будущего робота.
hexy_legs_all
Шаг 4: Сборка
После резки снимаем защитное бумажное покрытие с оргстекла.
Далее приступаем к сборке ног. Крепежные элементы встроенные в части скелета. Всё, что остаётся сделать - это соединить детали воедино. Соединение довольно плотное, но для большей надежности можно нанести по капле суперклея на элементы крепежа.
Затем нужно доработать сервоприводы (приклеить по винту напротив валов сервоприводов).
Этой доработкой мы сделаем робота более устойчивым. Доработку нужно выполнить только для 8 сервоприводов, остальные 4 будут крепиться непосредственно на тело.
Прикрепляем ноги к связующему элементу (изогнутая деталь), а его в свою очередь к сервоприводу на теле.
Шаг 5: Изготавливаем шилд
Изготовление платы довольно простое, если следовать представленным в шаге фотографиям.
Шаг 6: Электроника
Закрепим выводы сервоприводов на плате arduino. Выводы следует соединять в правильной последовательности, иначе ничего не будет работать!
Шаг 7: Программирование
Пришло время оживить Франкенштейна. Сначала загрузим программу legs_init и убедимся в том, что робот находится в таком положении, как на картинке. Далее загрузим quattro_test, чтобы проверить реагирует ли робот на базовые движения, такие как движение вперед, назад, влево и вправо.
ВАЖНО: Вам необходимо добавить дополнительную библиотеку в программную среду arduino IDE. Ссылка на библиотеку представлена ниже:
flexitimer2-master
Робот должен сделать 5 шагов вперед, 5 шагов назад, повернутся влево на 90 градусов, повернутся вправо на 90 градусов. Если Франкенштейн делает всё правильно, мы двигаемся в верном направлении.
P.S: установите робота на чашку, как на стенд, чтобы каждый раз не выставлять его на первоначальную точку. Как только тесты показали нормальную работу робота, можем продолжать испытания, поставив его на землю/пол.
init_and_test
Шаг 8: Инверсная кинематика
Инверсная (обратная) кинематика – именно она в действительности и управляет роботом (если вам не интересна математическая сторона этого проекта и вы торопитесь закончить проект можете пропустить данный шаг, но знание того, что движет роботом всегда будут полезны).
Простыми словами инверсная кинематика или сокращенно ик – «часть» тригонометрических уравнений, что определяют положение острого конца ноги, угла каждого сервоприводи и т.д., что в итоге определяют пару предварительных установочных параметров. Для примера, длина каждого шага робота или высота на которой будет располагаться тело во время движения/покоя. Используя эти предопределенные параметры, система будет извлекать величину, на которую следует сдвинуть каждый сервопривод, для того чтобы управлять роботом при помощи задаваемых команд.
На фотографии показаны тригонометрические уравнения, которые в последствии трансформировались в математическую часть программы.
Код прикрепленный ниже – всего лишь недоработанные формулы, с которыми вы можете «повозится», подтвердить и попробовать найти лучшее методы/алгоритмы исполнения.
quattro_ik_alg
Шаг 9:
Как только вы увидите, что робот выполняет все базовые движения, можете приступать к доработке конструкции. Ультразвуковой датчик позволит роботу избегать препятствий на своём пути. Также можете установить модуль Bluetooth или модуль голосового управления.
Для выполнения движений, вам нужно вызывать следующие функции.
- для движения вперед - step_forward();
- для движения назад - step_back();
- для поворота налево - turn_left();
- для поворота направо - turn_right();
- стоять - stand();
- сидеть - sit();
В скобках (входные параметры функции) необходимо указывать целые значение для задания числа шагов, которые робот будет выполнять.
spider_robot_turn_random
Шаг 10: QUATTRO готов!
Попробовав повторить данный проект, вы получите бесценный опыт, который можно будет применить в дальнейшем. Надеюсь, вам понравилась статья. Спасибо за внимание!
( Специально для МозгоЧинов #QUATTRO-the-Arduino-Quadruped-Robot" target="_blank">)