Промышленный робот-манипулятор: все могу и все умею. DIY: Рука-манипулятор для сборки деталей с конвейера. Пошаговая инструкция по созданию Промышленный робот манипулятор своими руками

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

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

Шаг 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 на плате Ардуино.

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

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

Создаем робот-манипулятор с использованием дальномера, реализуем подсветку.

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

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

В проекте использовано 6 серводвигателей. Для механической части использован акрил толщиной 2 миллиметра. В качестве штатива пригодилось основание от диско-шара (один из двигателей вмонтирован внутрь). Также использован ультразвуковой датчик расстояния и светодиод диаметром 10 мм.

Для управления роботом используется Arduino плата питания. Сам источник питания - блок питания компьютера.

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

Основные узлы для проекта манипулятора

Давайте начнем разработку. Вам понадобятся:

  • 6 серводвигателей (я использовал 2 модели mg946, 2 mg995 , 2 futuba s3003 (mg995/mg946 по характеристикам лучше, чем futuba s3003, но последние намного дешевле);
  • акрил толщиной 2 миллиметра (и небольшой кусок толщиной 4 мм);
  • ультразвуковой датчик расстояния hc-sr04 ;
  • светодиды 10 мм (цвет - на ваше усмотрение);
  • штатив (используется в качестве основания);
  • схват аллюминиевый (стоит около 10-15 долларов).

Для управления:

  • Плата Arduino Uno (в проекте использована самодельная плата, которая полностью аналогична Arduino);
  • плата питания (вам придется ее сделать самим, к этому вопросу мы вернемся позже, он требует отдельного внимания);
  • блок питания (в данном случае используется блок питания компьютера);
  • компьютер для программирования вашего манипулятора (если вы используете для программирования Arduino, значит, среда Arduino IDE)

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

Сборка механической части

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

Длина первой части около 19 см; второй - около 17.5; длина переднего звена около 5.5 см. Остальные габариты подбирайте в соответсвии с размерами вашего проекта. В принципе, размеры остальных узлов не так важны.

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

Для установки ультразвукового датчика, используется акрил толщиной 2 мм. Тут же снизу можно установить светодиод.

Детально объяснить как именно сконструировать подобный манипулятор сложно. Многое зависит от тех узлов и частей, которые есть у вас в наличии или вы приобретаете. Например, если габариты ваших сервоприводов отличаются, звенья арма из акрила тоже изменятся. Если изменятся габариты, калибровка манипулятора тоже будет отличаться.

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

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

Схват манипулятора

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

Итак, что именно необходимо сделать.

Берете качалку от сервы и укорачиваете, пока она не подойдет к вашему схвату. После этого закручиваете два маленьких винта.

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

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

Можно подключить сервопривод к плате Arduino и проверить работоспособность схвата.

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

Добавление подсветки на манипулятор

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

Места для установки светодиодов зависят от вашего креатива и фантазии.

Электросхема

Можно использовать вместо резистора R1 потенциометр на 100 кОм для регулировки яркости вручную. В качестве сопротивлени R2 использовались резисторы на 118 Ом.

Перечень основных узлов, которые использовались:

  • R1 - резистор на 100 кОм
  • R2 - резистор на 118 Ом
  • Транзистор bc547
  • Фоторезистор
  • 7 светодиодов
  • Переключатель
  • Подключение к плате Arduino

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

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

Кроме того, на плате питания был установлен светодиод-индикатор питания. Реализуется это несложно. Дополнительно использовался резистор на 100 Ом между 5 В и землей.

10 миллиметровый светодиод на роботе тоже подключен к Arduino. Резистор на 100 Ом идет от 13 пина к к позитивной ноге светодиода. Негативный - к земле. В программе его можно отключить.

Для 6 серводвигателей использовано 6 коннекторов, так как 2 серводвигателя снизу используют одинаковый сигнал управления. Соответствующие проводники соединяются и подключаются к одному пину.

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

Обратите внимание, что коннекторы от серв подключаются к ШИМ-выходам Arduino. Возле каждого такого пина на плате есть условное обозначение ~. Ультразвуковой датчик расттояния можно подключить к пинам 6, 7. Светодиод - к 13 пину и земле. Это все пины, которые нам понадобятся.

Теперь мы можем перейти к программированию Arduino.

Перед тем как подключить плату через usb к компьютеру, убедитесь, что вы отключили питание. Когда будете тестировать программу, также отключайте питание вашей робо-руки. Если питание не выключить, Arduino получит 5 вольт от usb и 12 вольт от блока питания. Соответственно, мощность от usb перекинется к источнику питания и он немного "просядет".

На схеме подключения видно, что были добавлены потенциометры для управления сервами. Потенциометры не являются обязательным звеном, но приведенный код не будет работать без них. Потенциометры можно подключить к пинам 0,1,2,3 и 4.

Программирование и первый запуск

Для управления использовано 5 потенциометров (вполне можно заменить это на 1 потенциометр и два джойстика). Схема подключения с потенциометрами приведена в предыдущей части. Скетч для Arduino находится здесь.

Снизу представлены несколько видео робота-манипулятора в работе. Надеюсь, вам понравится.

На видео сверху представлены последние модификации арма. Пришлось немного изменить конструкцию и заменить несколько деталей. Оказалось, что сервы futuba s3003 слабоваты. Их получилось использовать только для схвата или поворота руки. Так что виесто них были установлены mg995. Ну а mg946 вообще будут отличным вариантом.

Программа управления и пояснения к ней

// управляются привода с помощью переменных резисторов - потенциометров.

int potpin = 0; // аналоговый пин для подключения потенциометра

int val; // переменная для считывания данных с аналогового пина

myservo1.attach(3);

myservo2.attach(5);

myservo3.attach(9);

myservo4.attach(10);

myservo5.attach(11);

pinMode(led, OUTPUT);

{ //servo 1 analog pin 0

val = analogRead(potpin); // считывает значение потенциометра (значение между 0 и 1023)

// масштабирует полученное значение для использования с сервами (получаем значение в диапазоне от 0 до 180)

myservo1.write(val); // выводит серву в позицию в соответствии с рассчитанным значением

delay(15); // ждет, пока серводвигатель выйдет в заданное положение

val = analogRead(potpin1); // серва 2 на аналоговом пине 1

val = map(val, 0, 1023, 0, 179);

myservo2.write(val);

val = analogRead(potpin2); // серва 3 на аналоговом пине 2

val = map(val, 0, 1023, 0, 179);

myservo3.write(val);

val = analogRead(potpin3); // серва 4 на аналоговом пине 3

val = map(val, 0, 1023, 0, 179);

myservo4.write(val);

val = analogRead(potpin4); //серва 5 на аналоговом пине 4

val = map(val, 0, 1023, 0, 179);

myservo5.write(val);

Скетч с использованием ультразвукового датчика расстояния

Это, наверное, одна из самых эффектных частей проекта. На манипулятор устанавливается датчик расстояния, который реагирует на препятствия вокруг.

Основные пояснения к коду представлены ниже

#define trigPin 7

Следующий кусок кода:

Мы присвоили всем 5-ти сигналам (для 6 приводов) названия (могут быть любыми)

Следующее:

Serial.begin (9600);

pinMode(trigPin, OUTPUT);

pinMode(echoPin, INPUT);

pinMode(led, OUTPUT);

myservo1.attach(3);

myservo2.attach(5);

myservo3.attach(9);

myservo4.attach(10);

myservo5.attach(11);

Мы сообщаем плате Arduino к каким пинам подключены светодиоды, серводвигатели и датчик расстояния. Изменять здесь ничего не стоит.

void position1(){

digitalWrite(led, HIGH);

myservo2.writeMicroseconds(1300);

myservo4.writeMicroseconds(800);

myservo5.writeMicroseconds(1000);

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

После этого:

void position2(){

digitalWrite(led,LOW);

myservo2.writeMicroseconds(1200);

myservo3.writeMicroseconds(1300);

myservo4.writeMicroseconds(1400);

myservo5.writeMicroseconds(2200);

Аналогично предыдущему куску, только в данном случае это position2. По такому же принципу вы можете добавлять новые положения для перемещения.

long duration, distance;

digitalWrite(trigPin, LOW);

delayMicroseconds(2);

digitalWrite(trigPin, HIGH);

delayMicroseconds(10);

digitalWrite(trigPin, LOW);

duration = pulseIn(echoPin, HIGH);

distance = (duration/2) / 29.1;

Теперь начинает отрабатывать основной код программы. Не стоит его изменять. Основная задача приведенных выше строк - настройка датчика расстояния.

После этого:

if (distance <= 30) {

if (distance < 10) {

myservo5.writeMicroseconds(2200); //открыть схват

myservo5.writeMicroseconds(1000); //закрыть схват

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

if(distance <=30){ // данная строка обеспечивает переход в position1, если расстояние меньше 30 см.

position1(); //по сути арм отработает все, что вы зададите между скобками { }

else{ // если расстояние больше 30 см, переход в position2

position()2 // аналогично предыдущей строке

Можно в коде поменять расстояние ну и творить все, что вы пожелаете.

Последние строки кода

if (distance > 30 || distance <= 0){

Serial.println("Out of range"); //вывод в серийном монитеоре сообщения, что мы вышли за заданный диапазон

Serial.print(distance);

Serial.println(" cm"); //расстояние в сантиметрах

delay(500); //задержка в 0.5 секунды

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

Вот, собственно и все. Наслаждайтесь, модернизируйте свои собственные манипуляторы, делитесь идеями и резутатами!

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

В целом и общем

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

Технические характеристики результата

Будет рассматриваться образец с параметрами длины/высоты/ширины соответственно 228/380/160 миллиметров. Вес сделанной, будет составлять примерно 1 килограмм. Для управления используется проводной дистанционный пульт. Ориентировочное время сборки при наличии опыта - около 6-8 часов. Если его нет, то могут уйти дни, недели, а при попустительстве и месяцы, чтобы была собрана рука-манипулятор. Своими руками и одному в таких случаях стоит делать разве что для своего собственного интереса. Для движения составляющих используются коллекторные моторы. Приложив достаточно усилий, можно сделать прибор, который будет поворачиваться на 360 градусов. Также для удобства работы, кроме стандартного инструментария вроде паяльника и припоя, необходимо запастись:

  1. Удлинёнными плоскогубцами.
  2. Боковыми кусачками.
  3. Крестовой отверткой.
  4. 4-мя батарейками типа D.

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

Мелкие детали

Для регуляции количества оборотов можно использовать переходные колесики. Они позволят сделать движение руки-манипулятора плавными.

Также необходимо позаботится о том, чтобы провода не усложняли её движения. Оптимальным будет проложить их внутри конструкции. Можно сделать всё и извне, такой подход сэкономит время, но потенциально может привести к сложностям в перемещении отдельных узлов или всего устройства. А теперь: как сделать манипулятор?

Сборка в общих чертах

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

  1. Установка двух двигателей. Каждый из них будет отвечать за поворот в конкретную сторону. Когда один работает, второй пребывает в состоянии покоя.
  2. Установка одного двигателя со схемой, которая сможет заставить его крутится в обе стороны.

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

  1. Используется только два пальца, которые одновременно сжимают и разжимают объект захвата. Является самой простой реализацией, которая, правда, обычно не может похвастаться значительной грузоподъёмностью.
  2. Создаётся прототип человеческой руки. Тут для всех пальцев может использоваться один двигатель, с помощью которого будет осуществляться сгиб/разгиб. Но можно сделать и конструкцию сложней. Так, можно к каждому пальцу подсоединить по двигателю и управлять ими отдельно.

Далее остаётся сделать пульт, с помощью которого будет оказываться влияние на отдельные двигатели и темпы их работы. И можно приступать к экспериментам, используя робот-манипулятор, своими руками сделанный.

Возможные схематические изображения результата

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

Любая представленная схема манипулятора может быть усовершенствована.

Заключение

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

Робот-манипулятор 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.

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

Доброго времени суток! Перед вами, дорогие , арт-робот, который может разрисовывать различные сферические или яйцевидные предметы размером от 4 до 9 см.

Для его изготовления понадобится 3D-принтер, набор стандартных инструментов + Arduino.

Примечание: Не стоит ставить крест на проектах, в которых используются 3D-принтер. При желании всегда можно найти место или способ, где можно заказать печать необходимых для проекта деталей.

Шаг 1: Немного о роботе

Арт-робот — двухосевая самоделка , которая может наносить рисунок на большинстве сферических поверхностей. Робот настраивается под определённый тип предмета (шары для пинг-понга, рождественские украшения, лампочки и яйца (утиные, гусиные, куриные …).

Для вращения сферического предмета и перемещения манипулятора используются высокоточные шаговые двигатели с высоким крутящим моментом, а для подъёма механизма ручки — тихий и надежный сервопривод SG90.

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

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

  • 2x подшипника 623;
  • Шпилька диаметром 3 мм и длиной 80-90 мм;
  • 1x пружина (длиной 10 мм и диаметром 4,5 мм);
  • 2x шаговых двигателя NEMA 17 (крутящий момент 4,4 кг / см);
  • Кабели для двигателей (длиной 14 + 70 см);
  • USB-кабель;
  • 1x сервопривод SG90;
  • Arduino Leonardo;
  • shield JJRobots;

  • 2xA4988 драйвера для шаговых двигателей;
  • Блок питания 12В / 2A;
  • 11x винтов M3 6 мм;
  • 4x винта M3 16 мм;
  • 4x гайки M3;
  • 2x 20-мм присоски;
  • 1x гайка-барашек M3;
  • 1x маркер;

Шаг 3: Общая схема

В качестве «шпаргалки» можете воспользоваться данной схемой.

Шаг 4: Давайте начинать!

Робот двигает манипулятором, с закрепленным на нём маркером, что приводится в действие шаговым двигателем. Другой шаговый двигатель отвечает за поворот объекта, на который наносится рисунок (яйцо, шарик …). Для удерживания предмета на месте используются две присоски: одна, прикрепленная к шаговому двигателю, а другая на противоположной стороне предмета. Маленькая пружина будет давить на присоску, помогая ей удерживать предмет. Для поднятия/опускания маркера используется сервопривод SG90.

Шаг 5: Манипулятор

Установим гайку в отверстие, подготовленное для неё и закрутим 16 мм винт. Сделаем то же самое для держателя предметов (справа на изображении выше). При создании шарнира для манипулятора использовались 2 16 мм винта. Этот шарнир должен свободно вращаться после закручивания винтов.

Шаг 6: Присоски

Установим одну из присосок внутрь отверстия в держателе предметов.

Шаг 7: Крепление шаговых двигателей

Закрепим оба шаговых двигателя к основной раме с помощью 8-ми винтов.

Шаг 8: Ось вращения

Разместим все элементы, как показано на изображении выше.

  • Присоска;
  • Гайка;
  • Верхняя часть;
  • Пружина;
  • Подшипник 623 (должен быть встроен в левую чашку);
  • Левая чашка;
  • Свободное пространство для основной рамы;
  • Правая чашка;
  • Подшипник 623;
  • Разделительное кольцо;
  • Гайка-барашек (M3).

Шаг 9: Размещаем все по своим местам

Вставим собранный манипулятор на ось шагового двигателя.

Установим левую опору на ось шагового двигателя.

Маркер и яйцо установлены в качестве примера (сейчас размещать их не нужно).

ПРИМЕЧАНИЕ: Сервопривод потребует корректировок. Нужно будет повторно установить его угол во время процесса калибровки.

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

Закрепим электронику на тыльной стороне основной рамы с помощью винтов (2-х будет достаточно).

Подключим кабеля.

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

Шаг 11: Программирование Arduino Leonardo

Запрограммируем Arduino Leonardo с помощью программной среды Arduino IDE (v 1.8.1).

  • Загрузим Arduino IDE (v 1.8.1) и установим программу;
  • Запустим программное обеспечение. Выберем плату Arduino Leonardo и соответствующий COM-ПОРТ в меню «tools-> board»;
  • Откроем и загрузим код Sphere-O-Bot. Распакуем все файлы внутрь одной папки и назовём её «Ejjduino_ARDUINO».

Шаг 12: Арт-робот готов к созданию произведений искусства

Шаг 13: Управление роботом

Программное обеспечение Inkscape. Загрузим и установим программное обеспечение Inkscape (рекомендую стабильную версию 0.91).

Загрузим и установим расширение EggBot Control (версия 2.4.0 была полностью протестирована).

Расширение EggBot Control для Inkscape — это инструмент, который необходимо использовать при тестировании и калибровке EggBot, а также перенесении рисунки на яйцо. Сначала нужно запустить Inkscape. После запуска Inkscape появится меню «Расширения», а в нём уже нужно выбрать подменю «Eggbot». Если не видите подменю Eggbot, то вы неправильно установили расширения. Выполните резервное копирование и внимательно следуйте инструкциям по установке расширений.

На этом всё, спасибо за внимание!)



2024 stdpro.ru. Сайт о правильном строительстве.