Вконтакте Facebook Twitter Лента RSS

Любой справится манипулятор своими руками. Настольная робо-рука манипулятор из оргстекла на сервоприводах своими руками. Что можно воспитать благодаря данному набору

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

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

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

В проекте использовано 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 секунды

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

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

Сейчас уже мало кто помнит, к сожалению, что в 2005 году были Chemical Brothers и у них был замечательный клип - Believe, где роботизированная рука гонялась по городу за героем видео.

Тогда у меня появилась мечта. Несбыточная на тот момент, т. к. ни малейшего понятия об электронике у меня не было. Но мне хотелось верить - believe. Прошло 10 лет, и буквально вчера мне удалось впервые собрать своего собственного робота-манипулятора, запустить его в работу, затем сломать, починить, и снова запустить в работу, а попутно найти друзей и обрести уверенность в собственных силах.

Внимание, под катом спойлеры!

Всё началось с (привет, Мастер Кит, и спасибо, что разрешили написать в вашем блоге!), который был почти сразу найден и выбран после статьи на Хабре. На сайте говорится, что собрать робота - под силу даже 8-летнему ребёнку - чем я хуже? Я точно так же только пробую свои силы.

Сначала была паранойя

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

Поэтому из того, что осталось в памяти об игрушках, было:

  • Пластмасса будет ломаться и крошиться в руках?
  • Детали будут неплотно подходить друг к другу?
  • В наборе будут не все детали?
  • Собранная конструкция будет непрочной и недолговечной?
И, наконец, урок, который был вынесен из советских конструкторов:
  • Часть деталей придётся допиливать напильником
  • А части деталей просто не будет в наборе
  • И ещё часть будет изначально не работать, её придётся менять
Что я могу сказать сейчас: не зря в моем любимом клипе Believe главный герой видит страхи там, где их нет. Ни одно из опасений не оправдалось : деталей было ровно столько, сколько нужно, все они подходили друг к другу, на мой взгляд - идеально, что очень сильно поднимало настроение по ходу работы.

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

Технические характеристики:

Длина: 228 мм
Высота: 380 мм
Ширина: 160 мм
Вес в сборке: 658 гр.

Питание: 4 батарейки типа D
Вес поднимаемых предметов: до 100 гр
Подсветка: 1 светодиод
Тип управления: проводной дистанционный пульт
Примерное время сборки: 6 часов
Движение: 5 коллекторных моторов
Защита конструкции при движении: храповик

Подвижность:
Механизм захвата: 0-1,77""
Движение запястья: в пределах 120 градусов
Движение локтя: в пределах 300 градусов
Движение плеча: в пределах 180 градусов
Вращение на платформе: в пределах 270 градусов

Вам понадобятся:

  • удлинённые плоскогубцы (не получится обойтись без них)
  • боковые кусачки (можно заменить на нож для бумаги, ножницы)
  • крестовая отвёртка
  • 4 батарейки типа D

Важно! О мелких деталях

Кстати о «винтиках». Если вы сталкивались с подобной проблемой, и знаете, как сделать сборку ещё удобнее - добро пожаловать в комментарии. Пока что поделюсь своим опытом.

Одинаковые по функции, но разные по длине болты и шурупы достаточно чётко прописаны в инструкции, например, на средней фото внизу мы видим болты P11 и P13. А может P14 - ну, то есть, вот опять, я снова их путаю. =)

Различить их можно: в инструкции прописано, какой из них сколько миллиметров. Но, во-первых, не будешь же сидеть со штангенциркулем (особенно если тебе 8 лет и\или у тебя его попросту нет), а, во-вторых, различить их в итоге можно только, если положить рядом, что может не сразу прийти на ум (мне не пришло, хе-хе).

Поэтому заранее предупрежу, если надумаете собирать этого или похожего робота сами, вот вам подсказка:

  • либо заранее присмотритесь к крепёжным элементам;
  • либо купите себе побольше мелких винтов, саморезов и болтов, чтобы не париться.

Также, ни в коем случае не выбрасывайте ничего, пока не закончите сборку. На нижней фотографии в середине, между двумя деталями от корпуса «головы» робота - небольшое кольцо, которое чуть не полетело в мусор вместе с прочими «обрезками». А это, между прочим, держатель для светодиодного фонарика в «голове» механизма захвата.

Процесс сборки

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

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

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

Моторчики мы обнаружили аккуратно упакованными и «прилипшими» друг к другу - готовьтесь ответить на вопрос ребёнка, почему коллекторные моторчики магнитятся (можно сразу в комментариях! :)

Важно: в 3 из 5 корпусов моторчиков нужно утопить гайки по бокам - на них в дальнейшем мы посадим корпуса при сборке руки. Боковые гайки не нужны только в моторчике, который пойдёт в основу платформы, но чтобы потом не вспоминать, какой корпус куда, лучше утопите гайки в каждом из четырёх жёлтых корпусов сразу. Только для этой операции будут нужны плоскогубцы, в дальнейшем они не понадобятся.

Примерно через 30-40 минут каждый из 4х моторов оказался снабжён своим шестереночным механизмом и корпусом. Собирается всё не сложнее, чем в детстве собирался «Киндер-сюрприз», только гораздо интереснее. Вопрос на внимательность по фото выше: три из четырёх выходных шестерёнок черные, а где белая? Из её корпуса должны выходить синий и чёрный провод. В инструкции это всё есть, но, думаю, обратить на это внимание ещё раз стоит.

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

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

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

Как стать душой компании при помощи робота

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

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

Мы поняли, что жутко проголодались и пошли поесть. Идти было недалеко, поэтому робота мы донесли в руках. И тут нас ждал ещё один приятный сюрприз: робототехника не только увлекательна. Она ещё и сближает. Как только мы сели за столик, нас окружили люди, которые хотели познакомиться с роботом и собрать себе такого же. Больше всего ребятам понравилось здороваться с роботом «за щупальца», потому что ведёт он себя действительно как живой, да и в первую очередь это же рука! Словом, основные принципы аниматроники были освоены пользователями интуитивно . Вот как это выглядело:

Troubleshooting

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

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

Но потом меня осенило: если ты сам её только что собрал, за чем же дело стало? =) Я же прекрасно знаю набор шестерёнок внутри корпуса, а чтобы понять, сломался ли сам мотор, или просто недостаточно хорошо был закреплён корпус, можно не вынимая моторчика из платы дать ему нагрузку и посмотреть, продолжатся ли щелчки.

Вот тут-то мне и удалось почувствовать себя настоящим робо-мастером!

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

Очень удобно, что робота не пришлось разбирать целиком. И классно на самом деле, что поломка произошла из-за не совсем аккуратной сборки в этом месте, а не из-за каких-то заводских трудностей: их в моём наборе вообще обнаружено не было.

Совет: первое время после сборки держите отвёртку и плоскогубцы под рукой - могут пригодиться.

Что можно воспитать благодаря данному набору?

Уверенность в себе!

Мало того, что у меня нашлись общие темы для общения с совершенно незнакомыми людьми, но мне также удалось самостоятельно не только собрать, но и починить игрушку! А значит, я могу не сомневаться: с моим роботом всегда всё будет ок. И это очень приятное чувство, когда речь идёт о любимых вещах.

Мы живём в мире, где мы страшно зависим от продавцов, поставщиков, сотрудников сервиса и наличия свободного времени и денег. Если ты почти ничего не умеешь делать, тебе за всё придётся платить, и скорее всего - переплачивать. Возможность починить игрушку самому, потому что ты знаешь, как у неё устроен каждый узел - это бесценно. Пусть у ребёнка такая уверенность в себе будет.

Итоги

Что понравилось:
  • Собранный по инструкции робот не потребовал отладки, запустился сразу
  • Детали почти невозможно перепутать
  • Строгая каталогизация и наличие деталей
  • Инструкция, которую не надо читать (только изображения)
  • Отсутствие значимых люфтов и зазоров в конструкциях
  • Лёгкость сборки
  • Лёгкость профилактики и починки
  • Last but not least: свою игрушку собираешь сам, за тебя не трудятся филиппинские дети
Что нужно ещё:
  • Ещё крепёжных элементов, прозапас
  • Детали и запчасти к нему, чтобы можно было заменить при необходимости
  • Ещё роботов, разных и сложных
  • Идеи, что можно улучшить\приделать\убрать - словом, на сборке игра не заканчивается! Очень хочется, чтобы она продолжалась!
Вердикт:

Собирать робота из этого конструктора - не сложнее, чем паззл или «Киндер-сюрприз», только результат гораздо масштабнее и вызываЛ бурю эмоций у нас и окружающих. Отличный набор, спасибо,

  • DIY или Сделай сам ,
  • Электроника для начинающих
  • Привет, гиктаймс!

    Проект 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-совместимую плату и специализированный шилд.

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

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

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

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

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

    Видео работы

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

    Ссылки

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

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

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

    Манипулятор от сайт

    Вот видео ее работы:

    Описание конструкции

    За основу мы взяли, манипулятор представленный на сайте Kickstarter, который назывался uArm . Авторы этого проекта обещали, что после завершения компании выложат все исходники, но этого не произошло. Их проект представляет собой отличное сочетание качественно сделанного как аппаратного, так и программного обеспечения. Вдохновившись их опытом мы решили сделать подобный манипулятор самостоятельно.
    Большинство существующих манипуляторов предполагают расположение двигателей непосредственно в суставах. Это проще конструктивно, но выходит, что двигатели должны поднимать не только полезную нагрузку, но и другие двигатели. В проекте с Kickstarter’а этого недостатка нет, так как усилия передаются через тяги и все двигатели расположены у основания.
    Второе преимущество конструкции в том, что площадка для размещения инструмента (захвата, присоски и т.д.) всегда расположена параллельно рабочей поверхности.

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

    Сервоприводы

    Для нашего манипулятора мы использовали сервоприводы Hitec HS-485 . Это достаточно дорогие цифровые сервомашинки, но за свои деньги они обеспечивают честное усилие 4,8кг/см, точную отработку позиции и приемлемую скорость.
    Их можно заменить на другие с такими же размерами

    Разработка манипулятора

    Для начала мы составили модель в SketchUp. Проверили конструкцию на собираемость и подвижность.

    Нам пришлось немного упростить конструкцию. В оригинальном проекте использовались подшипники, которые сложно купить. Еще мы решили на начальном этапе не делать захват. Для начала мы планируем сделать из манипулятора управляемый светильник.
    Изготавливать манипулятор мы решили из оргстекла. Оно достаточно дешево, хорошо выглядит и легко режется лазером. Для резки достаточно нарисовать требуемые детали в любом векторном редакторе. Мы сделали это в NanoCad:

    Резка оргстекла

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

    Эту пленку необходимо удалить с обоих сторон.

    Еще мы заказали гравировку на поверхности некоторых деталей. Для гравировки достаточно просто нарисовать изображение на отдельном слое и указать это при заказе. Места гравировки необходимо зачистить зубной щеткой и затереть пылью. Получилось очень неплохо:

    В итоге после удаления пленки и затирки у нас получилось вот это:

    Сборка манипулятора

    Для начала необходимо собрать пять частей:






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


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

    Сначала необходимо установить шпильку длиной 40мм (показана желтой линией на фото), а затем прикрутить качалки.
    Для шарниров мы использовали обычные винты М3 и гайки с нейлоновой вставкой для предотвращения самораскручивания. Эти гайки хорошо видно на конце манипулятора:

    Пока это просто плоская площадка на которую мы для начала планируем приделать лампочку.

    Собранный манипулятор

    Итоги

    Сейчас мы работаем над электроникой и программным обеспечением и скоро расскажем вам о продолжении проекта, так что пока у нас нет возможности продемонстрировать его работу.
    В перспективе мы планируем оснастить манипулятор захватом и добавить подшипники.
    Если у Вас возникло желание сделать свой манипулятор — вы можете скачать файл для резки .
    Список крепежа, который потребуется:

    1. М4х10 винт с головкой под внутренний шестигранник, 12шт
    2. М3х60 винт, 1шт
    3. М3х40 шпилька, 1шт (возможно придется немного укоротить напильником)
    4. М3х16 винт с гол. под в/ш, 4шт
    5. М3х16 винт с головкой в потай, 8шт
    6. М3х12 винт с гол. под в/ш, 6шт
    7. М3х10 винт с гол. под в/ш, 22шт
    8. М3х10 винт с головкой в потай, 8шт
    9. М2х6 винт с гол. под в/ш, 12шт
    10. М3х40 стойка латунная мама-мама, 8шт
    11. М3х27 стойка латунная мама-мама, 5шт
    12. М4 гайка, 12шт
    13. М3 гайка, 33шт
    14. М3 гайка с нейлоновым фиксатором, 11шт
    15. М2 гайка, 12шт
    16. Шайбы

    UPD1

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

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

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

    © 2024 Про уют в доме. Счетчики газа. Система отопления. Водоснабжение. Система вентиляции