Настольная робо-рука манипулятор из оргстекла на сервоприводах своими руками. Робот-манипулятор механическая рука Как устроен робот манипулятор

Здравствуйте!

Рассказываем о линейке коллаборативных роботов-манипуляторов Universal Robots .

Компания Юниверсал-роботс родом из Дании, занимается выпуском коллаборативных роботов-манипуляторов для автоматизации циклических производственных процессов. В этой статье приведем их основные технические характеристики и рассмотрим области применения.

Что это?

Продукция компании представлена линейкой из трех облегченных промышленных манипуляционных устройств с разомкнутой кинематической цепью:
UR3 , UR5 , UR10 .
Все модели имеют 6 степеней подвижности: 3 переносные и 3 ориентирующие. Устройства от Юниверсал-роботс производят только угловые перемещения.
Роботы-манипуляторы разделены на классы, в зависимости от предельно допустимой полезной нагрузки. Другими отличиями являются - радиус рабочей зоны, вес и диаметр основания.
Все манипуляторы UR оснащены датчиками абсолютного положения высокой точности, которые упрощают интеграцию с внешними устройствами и оборудованием. Благодаря компактному исполнению, манипуляторы UR не занимают много места и могут устанавливаться в рабочих секциях или на производственных линиях, где не помещаются обычные роботы.Характеристики:
Чем интересны Простота программирования

Специально разработанная и запатентованная технология программирования позволяет операторам, не владеющим специальными навыками, быстро выполнить настройку роботов-манипуляторов UR и управлять ими с помощью интуитивной технологии 3D-визуализации. Программирование происходит путем серии простых передвижений рабочего органа манипулятора в необходимые положения, либо нажатием стрелок в специальной программе на планшете.UR3: UR5: UR10: Быстрая настройка

Оператору, выполняющему первичный запуск оборудования, потребуется менее часа для распаковки, монтажа и программирования первой простой операции. UR3: UR5: UR10: Коллаборативность и безопасность

Манипуляторы UR способны заменить операторов, выполняющих рутинные задачи в опасных и загрязненных условиях. В системе управления ведется учет внешних возмущающих воздействий, оказываемых на робот-манипулятор в процессе работы. Благодаря этому, манипуляционные системы UR можно эксплуатировать без защитных ограждений, рядом с рабочими местами персонала. Системы безопасности роботов одобрены и сертифицированы TÜV – Союзом работников технического надзора Германии.
UR3: UR5: UR10: Многообразие рабочих органов

На конце промышленных манипуляторов UR предусмотрено стандартизированное крепление для установки специальных рабочих органов. Между рабочим органом и конечным звеном манипулятора можно установить дополнительные модули силомоментных сенсоров или камер.Возможности применения

С промышленными роботами-манипуляторами UR открываются возможности автоматизации практически всех циклических рутинных процессов. Устройства компании Юниверсал-роботс отлично зарекомендовали себя в различных областях применения.

Перекладка

Установка манипуляторов UR на участках перекладки и упаковки позволяет увеличить точность и уменьшить усадку. Большинство операций по перекладке может осуществляться без надзора.Полировка, буферовка, шлифовка

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

Литье под давлением

Высокая точность повторяющихся движений позволяет применять роботы UR для задач переработки полимеров и инжекционного литья.
Обслуживание станков с ЧПУ

Класс защиты оболочки обеспечивает возможность установки манипуляционных систем для совместной работы со станками ЧПУ.Упаковка и штабелирование

Традиционные технологии автоматизации отличаются громоздкостью и дороговизной. Легко настраиваемые роботы UR способны работать без защитных экранов рядом с сотрудниками или без них 24 часа в сутки, обеспечиваю высокую точность и производительность.Контроль качества

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

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

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

Высокая точность позиционирования рабочего органа позволяет сократить количество отходов при выполнении операций склейки или нанесения веществ.
Промышленные роботы-манипуляторы UR могут выполнять различные типы сварки: дуговую, точечную, ультразвуковую и плазменную.Итого:

Промышленные манипуляторы от Юниверсал-роботс компактны, легки, просты в освоении и обращении. Роботы UR – гибкое решение для широкого круга задач. Манипуляторы можно запрограммировать на любые действия присущие движениям человеческой руки, а вращательные движения им удаются намного лучше. Манипуляторам не свойственны усталость и боязнь получить травму, не нужны перерывы и выходные.
Решения от Юниверсал-роботс позволяют автоматизировать любой рутинный процесс, что увеличивает скорость и качество производства.

Обсудите автоматизацию ваших производственных процессов с помощью манипуляторов Юниверсал-роботс с официальным дилером -

Робот-манипулятор MeArm — карманная версия промышленного манипулятора. MeArm - простой в сборке и управлении робот, механическая рука. Манипулятор имеет четыре степени свободы, что позволяет легко захватывать и перемещать различные небольшие предметы.

Данный товар представлен в виде набора для сборки. Включает в себя следующие части:

  • набор деталей из прозрачного акрила для сборки механического манипулятора;
  • 4 сервопривода;
  • плата управления, на которой расположен микроконтроллер Arduino Pro micro и графический дисплей Nokia 5110;
  • плата джойстиков, содержащая два двухкоординатных аналоговых джойстика;
  • USB кабель питания.


Перед сборкой механического манипулятора необходимо произвести калибровку сервоприводов. Для калибровки будем использовать контроллер Arduino. Подсоединяем сервоприводы к плате Arduino (необходим внешний источник питания 5-6В 2А).

Servo middle, left, right, claw ; // создание 4 объектов Servo

Void setup()
{
Serial.begin(9600);
middle.attach(11); // присоединяет серво на контакт 11 на вращение платформы
left.attach(10); // присоединяет серво на контакт 10 на левое плечо
right.attach(9); // присоединяет серво на контакт 11 на правое плечо
claw.attach(6); // присоединяет серво на контакт 6 claw (захват)
}

Void loop()
{
// устанавливает позицию сервопривода по величине(в градусах)
middle.write(90);
left.write(90);
right.write(90);
claw.write(25);
delay(300);
}
Используя маркер, сделайте линию через корпус серводвигателя и шпиндель. Подключите пластмассовую качалку из комплекта к сервоприводу, как показано ниже с помощью небольшого винта из комплекта креплений к сервоприводу. Мы будем использовать их в этом положении при сборке механической части MeArm. Будьте осторожны, чтобы не переместить положение шпинделя.


Теперь можно производить сборку механического манипулятора.
Возьмём основание и прикрепим ножки к её углам. Затем установим четыре 20 мм болта и накрутим на них гайки (половину от общей длины).

Теперь крепим центральный сервопривод двумя 8-мм болтами к маленькой пластине, и получившуюся конструкцию крепим к основанию с помощью 20 мм болтов.

Собираем левую секцию конструкции.

Собираем правую секцию конструкции.

Теперь необходимо соединить левую и правую секции. Сначала леую к переходной пластине

Потом правую, и получаем

Подсоединяем конструкцию к платформе

И собираем "клешню"

Крепим "клешню"

Для сборки можно использовать следующее руководство (на англ. языке) или руководство по сборке подобного манипулятора (на русском).

Схема расположения выводов

Теперь можно приступать к написанию Arduino кода. Для управления манипуляторм, наряду с возможностью управления управления с помощью джойстика, было бы неплохо направлять манипулятор в какую-то определенную точку декартовых координат (x, y, z). Есть соответствующая библиотека, которую можно скачать с github - https://github.com/mimeindustries/MeArm/tree/master/Code/Arduino/BobStonesArduinoCode .
Координаты измеряются в мм от центра вращения. Исходное положение находится в точке (0, 100, 50), то есть 100 мм вперед от основания и 50 мм от земли.
Пример использования библиотеки для установки манипулятора в определенной точке декартовых координат:

#include "meArm.h"
#include

Void setup() {
arm.begin(11, 10, 9, 6);
arm.openGripper();
}

Void loop() {
// вверх и влево
arm.gotoPoint(-80,100,140);
// захватить
arm.closeGripper();
// вниз, вред и вправо
arm.gotoPoint(70,200,10);
// отпустить захват
arm.openGripper();
// вернуться вт начальную точку
arm.gotoPoint(0,100,50);
}

Методы класса meArm:

void begin (int pinBase , int pinShoulder , int pinElbow , int pinGripper ) - запуск meArm, указываются пины подключения для сервоприводов middle, left, right, claw. Необходимо вызвать в setup();
void openGripper () - открыть захват;
void closeGripper () - захватить;
void gotoPoint (float x , float y , float z ) - переместить манипулятор в позицию декартовых координат (x, y, z);
float getX () - текущая координата X;
float getY () - текущая координата Y;
float getZ () - текущая координата Z.

Руководство по сборке (англ.)


Подключение:

Если Вы собрали детали манипулятора в соответствии с инструкцией, то можно приступить к сборке электронной схемы. Мы предлагаем подключить сервоприводы манипулятора к Arduino UNO через Trerma-Power Shield , а управлять сервоприводами используя Trema-потенциометры .

  • Поворот ручки первого Trema-потенциометра приведёт к повороту основания.
  • Поворот ручки второго Trema-потенциометра приведёт к повороту левого плеча.
  • Поворот ручки третьего Trema-потенциометра приведёт к повороту правого плеча.
  • Поворот ручки четвёртого Trema-потенциометра приведёт в движение захват.

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

Код программы:

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

#include // Подключаем библиотеку Servo для работы с сервоприводами Servo servo1; // Объявляем объект servo1 для работы с сервоприводом основания Servo servo2; // Объявляем объект servo2 для работы с сервоприводом левого плеча Servo servo3; // Объявляем объект servo3 для работы с сервоприводом правого плеча Servo servo4; // Объявляем объект servo4 для работы с сервоприводом захвата int valR1, valR2, valR3, valR4; // Объявляем переменные для хранения значений потенциометров // Назначаем выводы: const uint8_t pinR1 = A2; // Определяем константу с № вывода потенциометра управл. основанием const uint8_t pinR2 = A3; // Определяем константу с № вывода потенциометра управл. левым плечом const uint8_t pinR3 = A4; // Определяем константу с № вывода потенциометра управл. правым плечом const uint8_t pinR4 = A5; // Определяем константу с № вывода потенциометра управл. захватом const uint8_t pinS1 = 10; // Определяем константу с № вывода сервопривода основания const uint8_t pinS2 = 9; // Определяем константу с № вывода сервопривода левого плеча const uint8_t pinS3 = 8; // Определяем константу с № вывода сервопривода правого плеча const uint8_t pinS4 = 7; // Определяем константу с № вывода сервопривода захвата void setup(){ // Код функции setup выполняется однократно: Serial.begin(9600); // Инициируем передачу данных в монитор последовательного порта servo1.attach(pinS1); // Назначаем объекту servo1 управление сервоприводом 1 servo2.attach(pinS2); // Назначаем объекту servo2 управление сервоприводом 2 servo3.attach(pinS3); // Назначаем объекту servo3 управление сервоприводом 3 servo4.attach(pinS4); // Назначаем объекту servo4 управление сервоприводом 4 } void loop(){ // Код функции loop выполняется постоянно: valR1=map(analogRead(pinR1), 0, 1024, 10, 170); servo1.write(valR1); // Вращаем основанием Указанные в данной строке углы: 10 и 170 возможно потребуется изменить (откалибровать) valR2=map(analogRead(pinR2), 0, 1024, 80, 170); servo2.write(valR2); // Управляем левым плечом Указанные в данной строке углы: 80 и 170 возможно потребуется изменить (откалибровать) valR3=map(analogRead(pinR3), 0, 1024, 60, 170); servo3.write(valR3); // Управляем правым плечом Указанные в данной строке углы: 60 и 170 возможно потребуется изменить (откалибровать) valR4=map(analogRead(pinR4), 0, 1024, 40, 70); servo4.write(valR4); // Управляем захватом Указанные в данной строке углы: 40 и 70 возможно потребуется изменить (откалибровать) Serial.println((String) "A1 = "+valR1+",\t A2 = "+valR2+", \t A3 = "+valR3+", \t A4 = "+valR4); // Выводим углы в монитор }

Калибровка:

Перед началом работы с манипулятором, его нужно откалибровать!

    Калибровка заключается в указании крайних значений угла поворота для каждого сервопривода, так чтобы детали не мешали их движениям.
  • Отсоедините все сервоприводы от Trema-Power Shield, загрузите скетч и подключите питание.
  • Откройте монитор последовательного порта.
  • В мониторе будут отображаться углы поворота каждого сервопривода (в градусах).
  • Подключите первый сервопривод (управляющий вращением основания) к выводу D10.
  • Поворот ручки первого Trema-потенциометра (вывод A2) приведёт к повороту первого сервопривода (вывод D10), а в мониторе изменится значение текущего угла этого сервопривода (значение: A1 = ...). Крайние положения первого сервопривода будут лежать в диапазоне, от 10 до 170 градусов (как написано в первой строке кода loop). Этот диапазон можно изменить, заменив значения последних двух аргументов функции map() в первой строке кода loop, на новые. Например, заменив 170 на 180, Вы увеличите крайнее положение сервопривода в данном направлении. А заменив 10 на 20, Вы уменьшите другое крайнее положение того же сервопривода.
  • Если Вы заменили значения, то нужно заново загрузить скетч. Теперь сервопривод будет поворачиваться в новых, заданных Вами, пределах.
  • Подключите второй сервопривод (управляющий поворотом левого плеча) к выводу D9.
  • Поворот ручки второго Trema-потенциометра (вывод A3) приведёт к повороту второго сервопривода (вывод D9), а в мониторе изменится значение текущего угла этого сервопривода (значение: A2 = ...). Крайние положения второго сервопривода будут лежать в диапазоне, от 80 до 170 градусов (как написано во второй строке кода loop скетча). Этот диапазон изменяется так же как и для первого сервопривода.
  • Если Вы заменили значения, то нужно заново загрузить скетч.
  • Подключите третий сервопривод (управляющий поворотом правого плеча) к выводу D8. и аналогичным образом осуществите его калибровку.
  • Подключите четвертый сервопривод (управляющий захватом) к выводу D7. и аналогичным образом осуществите его калибровку.

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

Привет, гиктаймс!

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

Сейчас моя робо-рука выглядит так:

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

Пробы и ошибки

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

С такими входными параметрами я нарисовал первую версию. К сожалению, у меня не сохранилось фотографий той версии манипулятора (который был выполнен в желтом цвете). Ошибки в ней были просто эпичнейшие. Во-первых, ее было почти невозможно собрать. Как правило, механика которую я рисовал до манипулятора, была достаточно простая, и мне не приходилось задумываться о процессе сборки. Но все-таки я его собрал и попробовал запустить, И рука почти не двигалась! Все детли крутились вокруг винтов и, сли я затягивал их так, чтобы было меньше люфтов, она не могла двигаться. Если ослаблял так, чтобы она могла двигаться, появлялись невероятные люфты. В итоге концепт не прожил и трех дней. И приступил к работе над второй версией манипулятора.

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

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

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

Меня удручает то, что я не смог привнести ничего принципиально нового в проект uArm. К тому времени, как я начал рисовать финальную версию, они уже выкатили 3D-модели на GrabCad. В итоге я только немного упростил клешню, подготовил файлы в удобном формате и применил очень простые и стандартные комплектующие.

Особенности манипулятора

До появления uArm, настольные манипуляторы подобного класса выглядели достаточно уныло. У них либо не было электроники вообще, либо было какое-нибудь управление с резисторами, либо было свое проприетарное ПО. Во-вторых, они как правило не имели системы параллельных шарниров и сам захват менял свое положение в процессе работы. Если собрать все достоинства моего манипулятора, то получается достаточно длинный список:
  1. Система тяг, позволяющих разместить мощные я тяжелые двигатели в основании манипулятора, а также удерживающие захват параллельно или перпендикулярно основанию
  2. Простой набор комплектующих, которые легко купить или вырезать из оргстекла
  3. Подшипники почти во всех узлах манипулятора
  4. Простота сборки. Это оказалось действительно сложной задачей. Особенно трудно было продумать процесс сборки основания
  5. Положение захвата можно менять на 90 градусов
  6. Открытые исходники и документация. Все подготовлено в доступных форматах. Я дам ссылки для скачивания на 3D-модели, файлы для резки, список материалов, электронику и софт
  7. Arduino-совместимость. Есть много противников Arduino, но я считаю, что это возможность расширения аудитории. Профессионалы вполне могут написать свой софт на C - это же обычный контроллер от Atmel!

Механика

Для сборки необходимо вырезать детали из оргстекла толщиной 5мм:

С меня за резку всех этих деталей взяли около $10.

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

Особенно трудно было продумать основание с точки зрения процесса сборки, но я подглядывал за инженерами из uArm. Качалки сидят на штифте диаметром 6мм. Надо отметить, что тяга локтя у меня держится на П-образном держателе, а у uFactory на Г-образном. Трудно объяснить в чем разница, но я считаю у меня получилось лучше.

Захват собирается отдельно. Он может поворачиваться вокруг своей оси. Сама клешня сидит прямо на валу двигателя:

В конце статьи я дам ссылку на суперподробную инструкцию по сборке в фотографиях. За пару часов можно уверенно все это скрутить, если все необходимое есть под рукой. Также я подготовил 3D-модель в бесплатной программе SketchUp. Её можно скачать, покрутить и посмотреть что и как собрано.

Электроника

Чтобы заставить руку работать достаточно всего навсего подключить пять сервоприводов к Arduino и подать на них питание с хорошего источника. У uArm использованы какие-то двигатели с обратной связью. Я поставил три обычных двигателя MG995 и два маленьких двигателя с металлическим редуктором для управления захватом.

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

Этот шилд на самом деле очень простой. На нем четыре переменных резистора, две кнопки, пять разъемов для сервопривода и разъем питания. Это очень удобно с точки зрения отладки. Можно загрузить тестовый скетч и записать какой-нибудь макрос для управления или что-нибудь вроде того. Ссылку для скачивания файла платы я тоже дам в конце статьи, но она подготовлена для изготовления с металлизацией отверстий, так что мало пригодна для домашнего производства.

Программирование

Самое интересное, это управление манипулятором с компьютера. У uArm есть удобное приложение для управления манипулятором и протокол для работы с ним. Компьютер отправляет в COM-порт 11 байт. Первый из них всегда 0xFF, второй 0xAA и некоторые из оставшихся - сигналы для сервоприводов. Далее эти данные нормализуются и отдаются на отработку двигателям. У меня сервоприводы подключены к цифровым входам/выходам 9-12, но это легко можно поменять.

Терминальная программа от uArm позволяет изменять пять параметров при управлении мышью. При движении мыши по поверхности изменяется положение манипулятора в плоскости XY. Вращение колесика - изменение высоты. ЛКМ/ПКМ - сжать/разжать клешню. ПКМ + колесико - поворот захвата. На самом деле очень удобно. При желании можно написать любой терминальный софт, который будет общаться с манипулятором по такому же протоколу.

Я не буду здесь приводить скетчи - скачать их можно будет в конце статьи.

Видео работы

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

Ссылки

Файлы для резки оргстекла, 3D-модели, список для покупки, чертежи платы и софт можно скачать в конце моей

Эта статья — вводное руководство для новичков по созданию роботизированных рук, которые программируются при помощи Ардуино. Концепция состоит в том, что проект роборуки будет недорогим и простым в сборке. Мы соберём несложный прототип с кодом, который можно и нужно оптимизировать, это станет для вас отличным стартом в робототехнике. Робот-манипулятор на Ардуино управляется хакнутым джойстиком и может быть запрограммирован на повторение последовательности действий, которую вы зададите. Если вы не сильны в программировании, то можете заняться проектом в качестве тренировки по сборке «железа», залить в него мой код и получить на его основе базовые знания. Повторюсь, проект достаточно простой.

На видео — демка с моим роботом.

Шаг 1: Список материалов



Нам понадобится:

  1. Плата Ардуино. Я использовал Уно, но любая из разновидностей одинаково хорошо справится с задачами проекта.
  2. Сервоприводы, 4 самых дешевых, что вы найдёте.
  3. Материалы для корпуса на ваш вкус. Подойдёт дерево, пластик, метал, картон. Мой проект собран из старого блокнота.
  4. Если вы не захотите заморачиваться с печатной платой, то понадобится макетная плата. Подойдёт плата небольшого размера, поищите варианты с джамперами и блоком питания — они бывают достаточно дешевы.
  5. Что-то для основания руки — я использовал банку от кофе, это не самый лучший вариант, но это всё, что я смог найти в квартире.
  6. Тонкая нить для механизма руки и иголка для проделывания отверстий.
  7. Клей и изолента, чтобы скрепить всё воедино. Нет ничего, что нельзя было бы скрепить изолентой и горячим клеем.
  8. Три резистора на 10K. Если у вас не найдётся резисторов, то в коде на такие случаи есть обходной манёвр, однако лучшим вариантом будет купить резисторы .

Шаг 2: Как всё работает



На приложенном рисунке изображен принцип работы руки. Также я объясню всё на словах. Две части руки соединены тонкой нитью. Середина нити соединена с сервоприводом руки. Когда сервопривод тянет нить — рука сжимается. Я оснастил руку пружиной из шариковой ручки, но если у вас есть более гибкий материал, можете использовать его.

Шаг 3: Модифицируем джойстик

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

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

Я подключил потенциометры к макетной плате, у каждого из них есть по три клеммы. Одну из них нужно соединить с GND, вторую с +5V на Ардуино, а среднюю на вход, который мы определим позже. Мы не будем использовать ось Y на левом потенциометре, поэтому нам нужен только потенциометр над джойстиком.

Что касается переключателей, соедините +5V с одним его концом, а провод, который идёт на другой вход Ардуино со вторым концом. Мой джойстик имеет общую для всех переключателей линию на +5V. Я подключил всего 2 кнопки, но затем подключил еще одну, так как в ней появилась необходимость.

Также важно обрезать провода, которые идут к чипу (черный круг на джойстике). Когда вы завершите всё вышеописанное, можно приступить к проводке.

Шаг 4: Электропроводка нашего устройства

На фотографии изображена электропроводка устройства. Потенциометры — это рычажки на джойстике. Локоть (Elbow) — это правая ось Y, Основа (Base) — это правая ось X, Плечо (Shoulder) — это левая ось X. Если вам захочется поменять направление движения сервоприводов, просто смените положение проводов +5V и GND на соответствующем потенциометре.

Шаг 5: Загрузка кода

На этом этапе нам нужно скачать приложенный код на компьютер, а затем загрузить его на Ардуино.

Заметка: если до этого вы уже загружали код на Ардуино, то просто пропустите этот шаг — вы не узнаете ничего нового.

  1. Откройте ИДЕ Ардуино и вставьте в него код
  2. В Tools/Board выберите вашу плату
  3. В Tools/Serial Port выберите порт, к которому подключена ваша плата. Скорее всего, выбор будет состоят из одного пункта.
  4. Нажмите кнопку Upload.

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

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

Файлы

Шаг 6: Запуск проекта

Робот контролируется движениями на джойстике, рука сжимается и разжимается при помощи кнопки для руки. На видео показано, как все работает в реальной жизни.

Вот способ, которым можно запрограммировать руку:

  1. Откройте Serial Monitor в Ардуино ИДЕ, это позволить проще следить за процессом.
  2. Сохраните начальную позицию, кликнув Save.
  3. За один раз двигайте лишь одним сервоприводом, например, Плечо вверх, и жмите save.
  4. Активируйте руку также только на её шаге, а затем сохраняйте нажатием save. Деактивация также производится на отдельном шаге с последующим нажатием save.
  5. Когда закончите последовательность команд, нажмите кнопку play, робот перейдёт в начальное положение и затем начнёт двигаться.
  6. Если вы захотите остановить его — отсоедините кабель или нажмите кнопку reset на плате Ардуино.

Если вы всё сделали правильно, то результат будет похож на этот!

Надеюсь, урок был вам полезен!

 
Статьи по теме:
Основные идеи философии эпикура
15. Эпикур и эпикурейцыВыдающимися представителями эпикуреизма являются Эпикур (341–270 до н. э.) и Лукреций Кар (ок. 99–55 до н. э.). Это философское направление относится к рубежу старой и новой эры. Эпикурейцев интересовали вопросы устроения, комфорта
Распространение тюркских языков Сильная ветвь алтайского дерева
Расселены на огромной территории нашей планеты, начиная от бассейна холодной Колымы до юго-западного побережья Средиземного моря. Тюрки не принадлежат к какому-то определенному расовому типу, даже среди одного народа встречаются как европеоиды, так и монг
Куда ехать за исполнением желаний в Курской области
Отец Вениамин служит в одном из храмов Коренной пустыни. Несколько раз в неделю священник проводит молебны, на которые съезжается множество людей. Летом службы часто проходят на улице, так как все желающие не умещаются в крохотной церквушке. Прихожане уве
Когда включают-отключают фонтаны в петергофе Включили ли фонтаны на поклонной горе
Фонтан Дубая: музыкальный и танцующий фонтан Дубая, часы работы, мелодии, видео. Туры на Новый год в ОАЭ Горящие туры в ОАЭ Предыдущая фотография Следующая фотография Дубайский музыкальный фонтан - поистине феерическая композиция из светы, звука и вод