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

Для Windows 09.03.2019
Для Windows

Представляем простой мини проект на Ардуино для начинающих — Робот паук с управлением от ИК пульта. Для изготовления данного робота своими руками потребуется минимум деталей и инструментов. В статье вы сможете узнать список необходимых материалов и инструментов для его изготовления, также мы разместили подробную инструкцию со схемами сборки, чертежи деталей и готовый скетч.

Видео. Робот паук на пульте управления

Основание робота состоит из двух фанерок, склеенных термопистолетом, лапы паука выполнены из стальной проволоки диаметром 2мм. Для приема сигнала от пульта ДУ используется IR приемник, для движения используются три сервомотора. Питание осуществляется от батарейки «Крона» 9V. В данном примере используется микроконтроллер Robotdyn UNO , но можно использовать любую плату Arduino.

Робот паук на Ардуино своими руками

Для этого проекта нам потребуется:

  • плата Arduino UNO;
  • ИК приемник;
  • любой пульт ДУ;
  • фанера толщиной 3 — 4 мм;
  • проволока диаметром 1,5 — 2 мм;
  • три сервопривода;
  • батарейка на 9 В;
  • провода и изолента.

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

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


Фото. Устройство робота паука с управлением от IR пульта

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

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

Сборка робота паука на ИК управлении

Скачать бесплатно проект

1. выпиливаем две дощечки необходимого размера

2. склеиваем дощечки между собой термопистолетом

3. срезаем с сервоприводов провода с разъемами

4. склеиваем между собой три сервопривода

5. спаиваем между собой провода от сервоприводов

6. припаиваем к одному разъему провода с контактами

5. приклеиваем сервоприводы к корпусу робота

6. приклеиваем к корпусу разъем для IR приемника

7. отрезаем стальную проволоку необходимой длины

8. загибаем проволоку для лап согласно чертежу

9. приклеиваем к лапам рычаги от сервомашинок

10. подбираем для своего пульта IR приемник

11. указываем команды от пульта в файле ir_command_codes.h

12. собираем робота паука с Arduino UNO

13. тестируем робота паука + ИК управление


Любые вопросы по изготовлению и настройке данного проекта вы можете задать в комментариях к этой записи или на нашем канале YouTube в комментариях под видеороликом к мини проекту «Arduino робот паук + ИК управление».

Также часто читают:

Всем привет. Эта статья небольшой рассказ о том, как сделать робота своими руками . Почему именно рассказ, спросите вы? Всё из-за того, что для изготовления подобной поделки необходимо использовать значительный багаж знаний, который очень трудно изложить в одной статье. Мы пройдёмся по процессу сборки, заглянем одним глазом в программный код и в конечном счете оживим детище «силиконовой долины». Советую посмотреть видео, чтобы иметь представление о том, что в итоге должно получится.

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

Шаг 1: Как это работает?

Робот имеет 4 ноги, с 3 сервоприводами на каждой из них, что позволяют ему перемещать конечности в 3-х степенях свободы. Он передвигается «ползучей походкой». Пусть она медленная, зато одна из самых плавных.

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

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

Скелет изготавливается из оргстекла толщиной 2 мм.

Электронная часть самоделки будет состоять из:

  • 12 сервоприводов;
  • arduino nano (можно заменить любой другой платой arduino);

  • Шилда для управления сервоприводами;
  • блока питания (в проекте использовался БП 5В 4А);

  • ультразвукового датчика;
  • hc 05 bluetooth модуля;

Для того, чтобы изготовить шилд понадобится:

  • монтажная плата (предпочтительно с общими линиями (шинами) питания и земли);
  • межплатные штыревые соединители — 30 шт;
  • гнезда на плату – 36 шт;

  • провода.

Инструменты :

  • Лазерный резак (или умелые руки);
  • Суперклей;
  • Термоклей.

Шаг 3: Скелет

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

После этого в любой доступный способ вырезаем 30 деталей будущего робота.

Шаг 4: Сборка

После резки снимаем защитное бумажное покрытие с оргстекла.

Далее приступаем к сборке ног. Крепежные элементы встроенные в части скелета. Всё, что остаётся сделать — это соединить детали воедино. Соединение довольно плотное, но для большей надежности можно нанести по капле суперклея на элементы крепежа.

Затем нужно доработать сервоприводы (приклеить по винту напротив валов сервоприводов).

Этой доработкой мы сделаем робота более устойчивым. Доработку нужно выполнить только для 8 сервоприводов, остальные 4 будут крепиться непосредственно на тело.

Прикрепляем ноги к связующему элементу (изогнутая деталь), а его в свою очередь к сервоприводу на теле.

Шаг 5: Изготавливаем шилд

Изготовление платы довольно простое, если следовать представленным в шаге фотографиям.

Шаг 6: Электроника

Закрепим выводы сервоприводов на плате arduino. Выводы следует соединять в правильной последовательности, иначе ничего не будет работать!

Шаг 7: Программирование

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

ВАЖНО: Вам необходимо добавить дополнительную библиотеку в программную среду arduino IDE. Ссылка на библиотеку представлена ниже:

Робот должен сделать 5 шагов вперед, 5 шагов назад, повернутся влево на 90 градусов, повернутся вправо на 90 градусов. Если Франкенштейн делает всё правильно, мы двигаемся в верном направлении.

P . S : установите робота на чашку, как на стенд, чтобы каждый раз не выставлять его на первоначальную точку. Как только тесты показали нормальную работу робота, можем продолжать испытания, поставив его на землю/пол.

Шаг 8: Инверсная кинематика

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

Простыми словами инверсная кинематика или сокращенно ик – «часть» тригонометрических уравнений, что определяют положение острого конца ноги, угла каждого сервоприводи и т.д., что в итоге определяют пару предварительных установочных параметров. Для примера, длина каждого шага робота или высота на которой будет располагаться тело во время движения/покоя. Используя эти предопределенные параметры, система будет извлекать величину, на которую следует сдвинуть каждый сервопривод, для того чтобы управлять роботом при помощи задаваемых команд.

Четырехногий робот-паук создан для демонстрации работы сервомашинок под управлением контроллера Arduino (для кружка робототехники).

У робота два режима:

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

Использовались сервомашинки Turnigy TGY-9025MG металлическим редуктором.

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

Корпус был сделан из упаковочного материала для компов. Для сервомашинок требуется отдельное питание. В качестве источника питания используется Li-po батарея Turnigy 2S 1600 mAh.

Вот вид сверху и снизу робота в процессе сборки.

Для управления сервоприводом в Arduino имеется стандартная библиотека Servo. На платах, отличных от Mega, использование библиотеки отключает возможность использования analogWrite() (PWM) на пинах 9 и 10 (вне зависимости подключены к этим пинам сервы или нет). На платах Mega, до 12 серв могут использоваться без влияния на функциональность PWM, но использование от 12 до 23 сервомашинок отключит PWM на пинах 11 и 12. Cервопривод подключается 3-мя проводами: питание, земля и сигнальный. Питание – красный провод. Черный(или коричневый) провод – земля подключается к GND выводу Arduino, сигнальный(оранжевый/желтый/белый) провод подключается к цифровому выводу контроллера Arduino. Будем использовать выводы 5,6,7,8 Arduino.

Напряжение выдаваемое батареей 7.4 – 8.4 В. Т.к. для питания сервоприводов необходимо напряжение 4.8 – 6.0 В будем использовать стабилизатор напряжения 5В, собранный на микросхеме L7805. Одна микросхема постоянно перегревалась, проблема решилась установкой параллельно двух микросхем L7805.

Для обнаружения препятствий будем использовать ультразвуковой датчик HC-SR04, который позволяет определять расстояние до объекта в диапазоне от 2 до 500 см с точностью 0.3 см. Если расстояние до препятствия меньше 10 см, робот делает поворот и движется дальше вперед.

В качестве пульта используется пульт lg, приемник ИК-сигналов - TSOP31238(1-GND, 2 - +5V, 3-OUT).

Схема электрическая

И весь робот в сборе (плата Arduino питается от батарейки Крона).

Приступим к написанию скетча

Для управления сервоприводами используется Arduino библиотека Servo. Нам необходимо реализовать совокупность движений сервоприводов для движения робота-паука вперед, назад, поворота по часовой стрелке и поворота против часовой стрелки. Кроме того необходимо реализовать функции остановки робота, а также для экономии электроэнергии предусмотрим режим засыпания (когда сервоприводы находятся в режиме detach) и пробуждения (перевод сервоприводов в режим attach). Поэтому каждое движение робота состоит из нескольких шагов.

Например движение вперед состоит из следующих шагов:

  1. левая передняя нога вперед;
  2. правая передняя нога вперед;
  3. левая задняя нога вперед;
  4. правая задняя нога вперед;
  5. четыре ноги вместе назад (что приведет к перетаскиванию тела робота-паука).

Данные для угла поворота каждой сервы на каждом шаге для каждого движения робота-паука хранятся в трехмерном массиве arr_pos.

Int arr_pos={ { // forward {90,90,90,90},{45,90,90,90},{45,135,90,90}, {45,135,45,90},{45,135,45,135},{135,45,135,45} }, { // back {90,90,90,90},{90,90,90,45},{90,90,135,45}, {90,45,135,45},{135,45,135,45},{45,135,45,135} }, { // circle_left {90,90,90,90},{0,90,90,90},{0,0,90,90}, {0,0,0,90},{0,0,0,0},{180,180,180,180} }, { // circle_right {90,90,90,90},{180,90,90,90},{180,180,90,90}, {180,180,180,90},{180,180,180,180},{0,0,0,0} } }; int pos_stop={{90,90,90,90}};

Процедура course(int variant)реализует перемещения сервоприводов для каждого шага следующих движений робота-паука: вперед, назад, поворота по часовой стрелке и поворота против часовой стрелки.

Void course(int variant) { int i=0; for(i=1;i<6;i++) { if(arr_pos[i]!=arr_pos) {myservo11.write(arr_pos[i]);} if(arr_pos[i]!=arr_pos) {myservo12.write(arr_pos[i]);} if(arr_pos[i]!=arr_pos) {myservo13.write(arr_pos[i]);} if(arr_pos[i]!=arr_pos) {myservo14.write(arr_pos[i]);} delay(200); } }

Для остановки, засыпания и пробуждения робота-паука существует процедура go_hor_all()

Void go_hor_all() { myservo11.write(pos_stop); myservo12.write(pos_stop); myservo13.write(pos_stop); myservo14.write(pos_stop); delay(500); }

Реализуем простое ИК-управление с пульта. Выбираем 7 клавиш, данные о кодах заносим в скетч в виде констант. И в цикле loop() реализуем логику выбора движений робота-паука при нажатии клавиш ИК-пульта. Программа получения кода get_ir_kod() вызывается по прерыванию CHANGE на входе 2. Используется Arduino библиотека IRremote.

К режиму управления робота с ИК-пульта добавим автономный режим. В автономном режиме робот будет двигаться вперед, при достижении препятствия робот будет делать поворот и опять двигаться вперед. Ультразвуковой датчик HC-SR04 позволяет определять расстояние до объекта в диапазоне от 2 до 500 см с точностью 0.3 см. Сенсор излучает короткий ультразвуковой импульс (в момент времени 0), который отражается от объекта и принимается сенсором. Расстояние рассчитывается исходя из времени до получения эха и скорости звука в воздухе. Если расстояние до препятствия меньше 10 см, робот делает поворот и движется дальше вперед. Переход из режима ИК-управления в автономный режим производим нажатием клавиш "желтая" и "синяя".

Для работы с датчиком HC-SR04 будем использовать Arduino библиотеку Ultrasonic. Конструктор Ultrasonic принимает два параметра - номера пинов к которым подключены выводы Trig и Echo:

#include "Ultrasonic.h" // trig -12, echo - 13 Ultrasonic ultrasonic(12, 13);

Получается такой код

// коды клавиш ИК пульта // lg 6710v00090d #define FORWARD 32 // pr + #define BACK 33 // pr - #define CIRCLE_LEFT 17 // vol- #define CIRCLE_RIGHT 16 // vol+ #define STOP 54 // зеленая #define SLEEP 55 // красная #define AWAKE 37 // ок #define EXT 50 // желтая #define AUTO 52 // синяя... .... ..... void loop() { delay(1000); if(ext==0) { float dist_cm = ultrasonic.Ranging(CM); Serial.print("dist_cm=");Serial.println(dist_cm); if(dist_cm<10.0) ir_kod=CIRCLE_LEFT; else ir_kod=FORWARD; } if(ir_kod!=0) { Serial.print("ir_kod=");Serial.println(ir_kod); switch(ir_kod) { case FORWARD: // вперед course(1); Serial.print("forward\n"); break; case BACK: // назад course(2); Serial.print("back\n"); break; case CIRCLE_LEFT: // вращение влево course(3); Serial.print("circle_left\n"); break; case CIRCLE_RIGHT: // вращение вправо Serial.print("circle_right\n"); course(4); break; case STOP: // остановка ir_kod=0; go_hor_all(); Serial.print("pause\n"); break; case SLEEP: // засыпание ir_kod=0; go_hor_all(); myservo11.detach();myservo12.detach(); myservo13.detach();myservo14.detach(); digitalWrite(13,LOW); Serial.print("sleep\n"); break; case AWAKE: // пробуждение ir_kod=0; myservo11.attach(5);myservo12.attach(6); myservo13.attach(7);myservo14.attach(8); digitalWrite(13,HIGH); go_hor_all(); Serial.print("awake\n"); break; case AUTO: // режим автономный //ir_kod=FORWARD; ext=0; myservo11.attach(5);myservo12.attach(6); myservo13.attach(7);myservo14.attach(8); Serial.print("auto\n"); break; default: break; } } } // получить код переданный с ИК пульта void get_ir_kod() { detachInterrupt(0); // отключить прерывание 0 if (irrecv.decode(&results)) { //Serial.println(results.value); if (results.value > 0 && results.value < 0xFFFFFFFF) { ir_dt = results.value; if(ir_dt==EXT && ext==0) {ir_kod = SLEEP;ext=1;} else if(ext==1) { if(ir_dt==FORWARD || ir_dt==BACK || ir_dt==CIRCLE_LEFT || ir_dt==CIRCLE_RIGHT || ir_dt==STOP || ir_dt==SLEEP || ir_dt==AWAKE || ir_dt==AUTO) ir_kod = ir_dt; } else ; } irrecv.resume(); } attachInterrupt(0, get_ir_kod, CHANGE); }

Архив со скетчем и библиотеками Ultrasonic и IRremote можно скачать ниже

Всем Привет!

Год назад заинтересовался микроконтроллерами "arduino" и постройкой четырехногово робота-паука на Arduino Uno R3. Интерес возник после чтения различных статей, просмотра видео на портале youtube. Больше всего впечатлили роботы "PhantomX hexapod" и муравей "A-pod", которые переработал парень под ником Zenta (Коре Халворсен) . Первый его робот создан на сервомашинках "dynamixel AX-18" от компании "Robotis", а второй на сервомашинках "Hitec". Эти сервомашинки одни из дорогих. Создавать пробную модель, которую запланировал на базе этих машинок, мне будет не по силам. В качестве сервомашинок выбор пал на "Tunigy TGY-S9010" (13 кг.), заказал шилд dfrobot i/o expansio v 5.0, в дальнейшем будет установлен модуль bluetooth xbee, батарея 7,4v 5100mah, и SBEC на 20A сила тока при ходьбе будет скорее всего превышать 12А, поэтому заказал с запасом. После просмотра множества картинок и фото, я решил создать робота по своему дизайну. Сделал эскизы. Эти рисунки перенес в чертежи, делал в компасе, что то в солидворксе.

Чертежи -

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

Все запчасти на робота заказывал на паркфлаере. Первая часть деталей пришла в течении 1,5 месяца, а последующие 2 посылки в общем пришли в течение 7-8 месяцев. Задержка в доставке была из-за сбоя в работе hobbyking и российской таможни. В углу слева на фото предварительная сборка робота.

Перечень деталей робота:

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

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

Вот так выглядит в собранном виде -

Полностью лапка паука. Болтики имбусы крепления м2

Корпус, соединения бедра и лапки укреплены. Все трубки из телевизионной антенны. Контроллер установлен на нейлоновых стойках и прикручен нейлоновыми винтами. Под контроллером будет установлен аккумулятор ниже sbec 20A. Получилось все компактно и доступно. Высота от пола до нижней части 4 см.

Планировал вес до 1,5 кг, но получилось с аккумулятором 1,6 кг. На фото ниже вес без акб.

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

Еще фото -

Вид сверху -

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

Список ссылок на статьи и инструкции необходимые для сборки и настройки шестиногого робота паука Hexapod RKP-RCS-2013B-KIT

На этом изображении (см. Рис. 1) показан пример собранного шестиногого робота паука с установленным на верхней плате дополнительным оборудованием в виде модуля Bluetooth для беспроводного внешнего управления.

Набор для сборки шасси шестиногого робота паука RKP-RCS-2013B-KIT это мобильная платформа шестиногого робота повышенной проходимости и маневренности. Шасси разработано и предназначено для робототехнических проектов, обучения конструированию различных систем мехатроники и программированию, а также для разнообразных конструкторских хобби. Мобильная платформа шестиногого робота паука (RKP-RCS-2013B-KIT) имеет в составе поставки платформу предназначенную для установки различных датчиков и сенсоров, а также плат управления роботом и систем питания.
Hexapod RKP-RCS-2013B-KIT - это набор в виде конструктора для самостоятельной сборки паукообразного шестиногого робота. Все детали несущей рамы корпуса и шести конечностей робота паука изготовлены из прочного и легкого алюминия. Детали конструкции шасси шестиногого робота паука (Hexapod) уже имеют все просверленные и фрезерованные элементы конструкции.

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

Гексапод - шестиногий робот паук может управляется при помощи беспроводного джойстика от PS2 или PS3 через модуль Bluetooth (в комплект поставки не входит, а приобретается отдельно) или с помощью программируемого контроллера Ардуино с разъемом USB. Через специальное компьютерное приложение для программирования сервоконтроллера можно настраивать ползунками команды установленных в ноги робота сервоприводов и изменять скорость срабатывания каждого из них.

Плата сервоконтроллера Servo Controller Board 32 Channel USB (RKP-SCB-32C) приобретается отдельно.

Сервоконтроллер для робота паука Arduino RKP-SCB-32C имеет возможность подключения дополнительных компонентов для Arduino. ()

Для передвижения всех шести ног робот паук использует 18 микро сервомоторов, которые также приобретаются отдельно. Например, рулевая машинка класса суб-микро 9 Gram TowerPro SG90 Micro Servo (TPSG90S) или аналогичная по параметрам и размерам.

В комплект конструктора для самостоятельной сборки робота паука RKP-RCS-2013B-KIT входит:
- Комплект алюминиевых запчастей черного цвета для сборки корпуса робота паука.
- Комплект механических захватов ("жвала" робота паука). Устанавливается опционально. Для работы захватов необходимо установить 2 дополнительные рулевые машинки.
- Комплект болтов, шурупов, гаек, шайб, переходников, латунных втулок и стоек.
- Электронные компоненты для сборки: провода для подачи питания к включателю, диодный мост для питания сервоконтроллера и плат управления, выключатель для подачи питания на управляющий блок.

Для окончательной сборки и настройки робота паука необходимы следующие комплектующие (приобретаются отдельно):
- 18 сервоприводов класса суб-микро
- USB servocontroller на 32 сервопривода RKP-SCB-32C
- Беспроводной приемник управления команд получаемых от оператора (при необходимости)
- Беспроводной джойстик PS2 Wireless Gamepad V2.0 for Arduino (при необходимости)
- Аккумулятор Li-Po (2S) 7,4V
-



Рекомендуем почитать

Наверх