МозгоНавигатор: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51

Четвероногий робот на базе Arduino

17.04.2017 в ¡ - Это Интересно!, Электронные самоделки

Перевёл alexlevchenko для 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 готов!

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

(A-z Source)


  • RSS
  • Facebook
  • LiveJournal
  • Добавить ВКонтакте заметку об этой странице
  • Мой Мир
  • В закладки Google
  • Blogger
  • Twitter

9 ответов на Четвероногий робот на базе Arduino

  1. вопрос по ардуине есть ли возможность анализировать на ней изображение что бы в результате был «да» или «нет «

    • Можно. В качестве примера приведу «датчик линий». Он, если можно так выразится, анализирует поверхность. В результате на выходе получаем одно из двух состояний: единица — если чёрный и ноль — если НЕ чёрный цвет.

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

        • боюсь що разбері і буде. потужність чимала потрібна. на 3д принтер народ вже мегу ставить, а там немає графіки.

        • Реализовать такое будет очень не просто. Нужно или писать базу данных по цветам или делать самообучаемую систему по определению всё тех же цветов. Соглашусь с SFM, мощность для всей этой системы будет нужно очень приличная.

          • ну это понятно но цель оправдает средство… ну вот raspberri справится с этим?

            • теоретически должна справится

              • а к кому можно обратится за помощью в этом вопросе….Есть одна задумка и ее реализация именно на таких бюджетных вариантах несет хорошую перспективу….

  2. від мексиканців чекав більшого. що механіка не дуже продумана, що програмне забезпечення. операється на штирь на брюхі. загалом можна було механізм маніпуляторів в гексапода скомуніздить https://youtu.be/NMyVw9ob_9g хоча движків тут реально багато, або таке https://youtu.be/x3QmCL5FOT8 а реально продуманий хард-софт https://youtu.be/Mmp9KT9hZw0

Прокомментировать

Ваш e-mail не будет опубликован. Обязательные поля помечены *