Как сделать руку манипулятор в домашних условиях. «Ручное» управление OWI-манипулятором

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

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

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

В проекте использовано 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: свою игрушку собираешь сам, за тебя не трудятся филиппинские дети
Что нужно ещё:
  • Ещё крепёжных элементов, прозапас
  • Детали и запчасти к нему, чтобы можно было заменить при необходимости
  • Ещё роботов, разных и сложных
  • Идеи, что можно улучшить\приделать\убрать - словом, на сборке игра не заканчивается! Очень хочется, чтобы она продолжалась!
Вердикт:

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

Данный проект представляет собой многоуровневую модульную задачу. Первый этап проекта – сборка модуля роботизованной руки-манипулятора, поставляемой в виде набора деталей. Вторым этапом задачи будет сборка интерфейса IBM PC также из набора деталей. Наконец, третий этап задачи представляет собой создание модуля голосового управления.

Манипулятором робота можно управлять вручную с помощью ручного пульта управления, входящего в комплект набора. Рукой робота можно также управлять либо через собранный из набора интерфейс IBM PC, либо используя модуль голосового управления. Набор интерфейса IBM PC позволяет управлять и программировать действия робота через рабочий компьютер IBM PC. Устройство голосового управления позволит вам управлять рукой робота с помощью голосовых команд.

Все эти модули вместе образуют функциональное устройство, которое позволит вам проводить эксперименты и программировать автоматизированные последовательности действий или даже «оживлять» управляемую полностью «по проводам» руку-манипулятор.

Интерфейс PC позволит вам с помощью персонального компьютера запрограммировать руку-манипулятор на цепь автоматизированных действий или «оживить» ее. Существует также опция, в которой вы можете управлять рукой в интерактивном режиме, используя либо ручной контроллер, либо программу под Windows 95/98. «Оживление» руки представляет собой «развлекательную» часть цепочки запрограммированных автоматизированных действий. Например, если вы наденете на руку-манипцулятор детскую перчаточную куклу и запрограммируете устройство на показ небольшого шоу, то вы запрограммируете «оживление» электронной куклы. Программирование автоматизированных действий находит широкое применение в промышленности и индустрии развлечений.

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

Итак, как мы видим, рука-манипулятор робота выполняет много полезных функций и может служить идеальным инструментом для изучения различных процессов. Однако создание роботизованной руки-манипулятора с «нуля» представляет собой сложную задачу. Гораздо проще собрать руку из деталей готового набора. Компания OWI продает достаточно хорошие наборы руки-манипулятора, которые можно приобрести у многих дистрибьюторов электронных устройств (см. список деталей в конце этой главы). С помощью интерфейса можно подключить собранную руку-манипулятор к порту принтера рабочего компьютера. В качестве рабочего компьютера можно использовать машину серии IBM PC или совместимую, которая поддерживает DOS или Windows 95/98.

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

Программирование цепочки автоматизированных действий также не составляет особого труда. Сперва щелкните по клавише Program, чтобы перейти в программную моду. В этой моде рука функционирует точно так же, как это было описано выше, но при этом в дополнение каждая функция и время ее действия фиксируются в script-файле. Script-файл может содержать до 99 различных функций, включая паузы. Сам script-файл может быть повторно воспроизведен 99 раз. Запись различных script-файлов позволяет производить эксперименты с управляемой компьютером последовательностью автоматизированных действий и «оживлению» руки. Работа с программой под Windows 95/98 более детально описана ниже. Программа под Windows включена в набор интерфейса роботизованной руки-манипулятора или может быть бесплатно загружена из Интернета http://www.imagesco.com .

В дополнение к программе Windows рукой можно управлять, используя BASIC или QBASIC. Программа уровня DOS содержится на дискетах, включенных в комплект набора интерфейса. Однако DOS программа позволяет осуществлять управление только в интерактивном режиме с использованием клавиатуры (см. распечатку BASIC программы на одной из дискет). Программа уровня DOS не позволяет создавать script-файлы. Однако если есть опыт программирования на BASIC, то последовательность движений руки-манипулятора может быть запрограммирована аналогично работе script-файла, используемого в программе под Windows. Последовательность движений может повторяться, как это сделано во многих «одушевленных» роботах.

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

Рука-манипулятор (см. рис. 15.1) имеет три степени свободы движения. Локтевое сочленение может перемещаться вертикально вверх-вниз по дуге примерно 135°. Плечевой «сустав» перемещает захват вперед и назад по дуге примерно 120°. Рука может поворачиваться на основании по часовой стрелке или против часовой стрелки на угол примерно 350°. Захват руки робота может брать и удерживать объекты до 5 см в диаметре и поворачиваться вокруг в кистевом сочленении примерно на 340°.

Рис. 15.1. Кинематическая схема движений и поворотов руки-робота


Для приведения руки в движение компания OWI Robotic Arm Trainer использовала пять миниатюрных двигателей постоянного тока. Двигатели обеспечивают управление рукой при помощи проводов. Такое «проводное» управление означает, что каждая функция движения робота (т. е. работа соответствующего двигателя) управляется отдельными проводами (подачей напряжения). Каждый из пяти двигателей постоянного тока управляет своим движением руки-манипулятора. Управление по проводам позволяет сделать блок контроллера руки, непосредственно реагирующий на электрические сигналы. Это упрощает схему интерфейса руки робота, который подключается к порту принтера.

Рука изготовлена из легкого пластика. Большинство деталей, несущих основную нагрузку, также выполнены из пластика. Двигатели постоянного тока, использованные в конструкции руки, представляют собой миниатюрные высокооборотные двигатели с низким крутящим моментом. Для увеличения крутящего момента каждый мотор соединен с редуктором. Двигатели вместе с редукторами установлены внутри конструкции руки-манипулятора. Хотя редуктор увеличивает крутящий момент, рука робота не может поднять или нести достаточно тяжелые предметы. Рекомендуемый максимально допустимый вес при поднятии составляет 130 г.

Набор для изготовления руки робота и его компоненты представлены на рисунках 15.2 и 15.3.


Рис. 15.2. Набор для изготовления руки-робота



Рис. 15.3. Редуктор перед сборкой

Принцип управления двигателями

Для того чтобы понять принцип работы управления по проводам, посмотрим, как цифровой сигнал управляет работой отдельного двигателя постоянного тока. Для управления двигателем требуются два комплементарных транзистора. Один транзистор имеет проводимость PNP типа, другой – соответственно проводимость NPN типа. Каждый транзистор работает как электронный ключ, управляя движением тока, протекающего через двигатель постоянного тока. Направления движения тока, управляемые каждым из транзисторов, противоположны. Направление тока определяет направление вращения двигателя соответственно по часовой стрелке или против часовой стрелки. На рис. 15.4 приведена тестовая схема, которую вы можете собрать перед изготовлением интерфейса. Обратите внимание, что когда оба транзистора заперты, то двигатель выключен. В каждый момент времени должен быть включен только один транзистор. Если в какой-то момент оба транзистора случайно окажутся открытыми, то это приведет к короткому замыканию. Каждый двигатель управляется двумя транзисторами интерфейса, работающими аналогичным образом.


Рис. 15.4. Схема устройства проверки

Конструкция интерфейса для PC

Схема PC интерфейса приведена на рис. 15.5. В набор деталей PC интерфейса входит печатная плата, расположение деталей на которой показано на рис. 15.6.


Рис. 15.5. Принципиальная схема интерфейса РС



Рис. 15.6. Схема расположения деталей РС интерфейса


Прежде всего нужно определить сторону монтажа печатной платы. На стороне монтажа прочерчены белые линии, обозначающие резисторы, транзисторы, диоды, ИС и разъем DB25. Все детали вставляются в плату с монтажной стороны.

Общее указание: после пайки детали к проводникам печатной платы необходимо удалить излишне длинные выводы со стороны печати. Очень удобно следовать определенной последовательности при монтаже деталей. Сперва смонтируйте резисторы 100 кОм (цветная маркировка колец: коричневое, черное, желтое, золотое или серебряное), которые обозначены R1-R10. Затем смонтируйте 5 диодов D1-D5, убедившись, что черная полоска на диодах находится напротив разъема DB25, как это показано белыми линиями, нанесенными на монтажную сторону печатной платы. Затем смонтируйте резисторы 15 кОм (цветная маркировка, коричневый, зеленый, оранжевый, золотой или серебряный), обозначенные R11 и R13. В позиции R12 припаяйте к плате красный светодиод. Анод светодиода соответствует отверстию под R12, обозначенному знаком +. Затем смонтируйте 14– и 20-контактные панельки под ИС U1 и U2. Смонтируйте и впаяйте разъем DB25 уголкового типа. Не пытайтесь вставлять ножки разъема в плату с излишним усилием, здесь требуется исключительно точность. При необходимости осторожно покачайте разъем, стараясь не погнуть ножки выводов. Закрепите движковый переключатель и регулятор напряжения типа 7805. Отрежьте четыре куска провода необходимой длины и припаяйте к верхней части переключателя. Придерживайтесь расположения проводов, как показано на рисунке. Вставьте и впаяйте транзисторы TIP 120 и TIP 125. Наконец, впаяйте восьмиконтактный цокольный разъем и соединительный 75 миллиметровый кабель. Цоколь монтируется так, что наиболее длинные выводы смотрят вверх. Вставьте две ИС – 74LS373 и 74LS164 – в соответствующие панельки. Убедитесь, что положение ключа ИС на ее крышке совпадает с ключом, помеченным белыми линиями на печатной плате. Вы могли заметить, что на плате остались места под дополнительные детали. Это место предназначено для сетевого адаптера. На рис. 15.7 показана фотография готового интерфейса со стороны монтажа.


Рис. 15.7. РС интерфейс в сборе. Вид сверху

Принцип работы интерфейса

Рука-манипулятор имеет пять двигателей постоянного тока. Соответственно нам потребуются 10 шин входа/выхода для управления каждым двигателем, включая направление вращения. Параллельный (принтерный) порт IBM PC и совместимых машин содержит только восемь шин ввода/вывода. Для увеличения числа шин управления в интерфейсе руки робота используется ИС 74LS164, которая является преобразователем последовательного кода в параллельный (SIPO). При использовании всего двух шин параллельного порта D0 и D1, по которым посылается последовательный код в ИС, мы можем получить восемь дополнительных шин ввода/вывода. Как уже говорилось, можно создать восемь шин ввода/вывода, но в данном интерфейсе используются пять из них.

Когда последовательный код поступает на вход ИС 74LS164, на выходе ИС появляется соответствующий параллельный код. Если бы выходы ИС 74LS164 были непосредственно подключены к входам управляющих транзисторов, то отдельные функции руки-манипулятора включались и выключались бы в такт посылке последовательного кода. Очевидно, что такая ситуация является недопустимой. Чтобы избежать этого, в схему интерфейса введена вторая ИС 74LS373 – управляемый восьмиканальный электронный ключ.

ИС 74LS373 восьмиканальный ключ имеет восемь входных и восемь выходных шин. Двоичная информация, присутствующая на входных шинах передается на соответствующие выходы ИС только в том случае, если на ИС подан разрешающий сигнал. После выключения разрешающего сигнала текущее состояние выходных шин сохраняется (запоминается). В этом состоянии сигналы на входе ИС не оказывают никакого действия на состояние выходных шин.

После передачи последовательного пакета информации в ИС 74LS164 с вывода D2 параллельного порта подается разрешающий сигнал на ИС 74LS373. Это позволяет передать информацию уже в параллельном коде с входа ИС 74LS174 на ее выходные шины. Состоянием выходных шин управляются соответственно транзисторы TIP 120, которые, в свою очередь, управляют функциями руки-манипулятора. Процесс повторяется при подаче каждой новой команды на руку-манипулятор. Шины параллельного порта D3-D7 управляют непосредственно транзисторами TIP 125.

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

Питание роботизованной руки-манипулятора осуществляется от источника питания 6 В, состоящего из четырех D-элементов, расположенных в основании конструкции. Интерфейс PC питается также от этого источника 6 В. Источник питания является биполярным и выдает напряжения ±3 В. Питание на интерфейс подается через восьмиконтактный разъем Molex, присоединенный к основанию манипулятора.

Присоедините интерфейс к руке-манипулятору при помощи восьмижильного кабеля Molex длиной 75 мм. Кабель Molex присоединяется к разъему, расположенному в основании манипулятора (см. рис. 15.8). Проверьте правильность и надежность вставки разъема. Для соединения платы интерфейса с компьютером используется кабель типа DB25 длиной 180 см, имеющийся в наборе. Один конец кабеля присоединяется к порту принтера. Другой конец соединяется с разъемом DB25 на плате интерфейса.


Рис. 15.8. Соединение РС интерфейса с рукой-роботом


В большинстве случаев к порту принтера штатно подключен принтер. Чтобы не заниматься присоединением и отключением разъемов каждый раз, когда вы хотите использовать манипулятор, полезно приобрести двухпозиционный блок переключателя шин принтеров A/B (DB25). Присоедините разъем интерфейса манипулятора к входу А, а принтер – к входу В. Теперь вы можете использовать переключатель для соединения компьютера либо с принтером, либо с интерфейсом.

Установка программы под Windows 95

Вставьте дискету 3,5" с меткой «Disc 1» в дисковод для флоппи-дисков и запустите программу установки (setup.exe). Программа установки создаст директорию с именем «Images» на жестком диске и скопирует необходимые файлы в эту директорию. В Start меню появится иконка Images. Для запуска программы щелкните по иконке Images в стартовом меню.

Работа с программой под Windows 95

Соедините интерфейс с портом принтера компьютера при помощи кабеля DB 25 длиной 180 см. Соедините интерфейс с основанием руки-манипулятора. До определенного времени держите интерфейс в выключенном состоянии. Если в это время включить интерфейс, то сохранившаяся в порту принтера информация может вызвать движения руки-манипулятора.

Щелкнув два раза по иконке Images в стартовом меню, запустите программу. Окно программы показано на рис. 15.9. При работе программы красный светодиод на плате интерфейса должен мигать. Примечание: чтобы светодиод начал мигать, включение питания интерфейса не требуется. Скорость мигания светодиода определяется скоростью работы процессора вашего компьютера. Мерцание светодиода может оказаться очень тусклым; для того чтобы это заметить, вам, возможно, придется уменьшить освещенность в комнате и сложить ладони «колечком» для наблюдения за светодиодом. Если светодиод не мигает, то, возможно, программа обращается по ошибочному адресу порта (порт LPT). Для переключения интерфейса на другой адрес порта (LPT порт), зайдите в окно меню установки адреса порта принтера (Printer Port Options box), расположенного в правом верхнем углу экрана. Выберите другую опцию. Правильная установка адреса порта вызовет мигание светодиода.


Рис. 15.9. Скриншот программы РС интерфейса под Windows


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

Создание script-файла

Для программирования движений и автоматизированных последовательностей действий руки-манипулятора используются script-файлы. Script-файл содержит список временных команд, управляющих движениями руки-манипулятора. Создать script-файл очень просто. Для создания файла кликните по функциональной клавише program. Эта операция позволит войти в моду «программирования» script-файла. Нажимая на функциональные клавиши, мы будем управлять движениями руки, как мы уже делали, но при этом информация команд будет записываться в желтую script-таблицу, расположенную в нижнем левом углу экрана. Номер шага, начиная с единицы, будет указан в левой колонке, а для каждой новой команды он будет увеличиваться на единицу. Тип движения (функции) указан в средней колонке. После повторного щелчка функциональной клавиши выполнение движения прекращается, а в третьей колонке появляется значение времени выполнения движения от его начала до окончания. Время выполнения движения указывается с точностью до четверти секунды. Продолжая таким же образом, пользователь может запрограммировать в script-файл до 99 движений, включая паузы во времени. Затем script-файл можно сохранить, а в дальнейшем загрузить из любой директории. Выполнение команд script-файла можно циклически повторить до 99 раз, для чего необходимо ввести количество повторов в окно Repeat и нажать Start. Для окончания записи в script-файл нажмите клавишу Interactive. Эта команда переведет компьютер обратно в интерактивный режим.

«Оживление» предметов

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

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

Если вы хотите достичь профессионального уровня выполнения автоматизированных действий или «оживления» предметов, то, так сказать, для поддержания марки, точность позиционирования при выполнении движений в каждый момент времени должна приближаться к 100 %.

Однако вы можете заметить, что по мере повторения последовательности действий, записанных в script-файле, положение руки-манипулятора (паттерн-движения) будет отличаться от первоначального. Это происходит по нескольким причинам. По мере разряда батарей источника питания руки-манипулятора уменьшение мощности, подводимой к двигателям постоянного тока, приводит к снижению крутящего момента и скорости вращения двигателей. Таким образом, длина перемещения манипулятора и высота поднятого груза за один и тот же промежуток времени будет различаться для севших и «свежих» батарей. Но причина не только в этом. Даже при стабилизированном источнике питания частота вращения вала двигателя будет меняться, поскольку отсутствует регулятор частоты вращения двигателя. Для каждого фиксированного отрезка времени количество оборотов каждый раз будет немного отличаться. Это приведет к тому, что каждый раз будет различаться и положение руки-манипулятора. В довершение ко всему, в шестернях редуктора имеется определенный люфт, который также не принимается во внимание. Под влиянием всех этих факторов, которые мы здесь подробно рассмотрели, при выполнении цикла повторяющихся команд script-файла положение руки-манипулятора будет каждый раз немного различаться.

Поиск исходного положения

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

Для этого существует много возможностей. В одном из основных методов позиционный контроль в каждой точке не предусмотрен. Вместо этого используется набор концевых выключателей, которые соответствуют исходной «стартовой» позиции. Концевые выключатели определяют точно только одну позицию – когда манипулятор доходит до положения «старт». Чтобы это сделать, необходимо установить последовательность концевых выключателей (кнопок) таким образом, чтобы они замыкались, когда манипулятор достигает крайнего положения в том или ином направлении. Например, один конечный выключатель можно установить на основании манипулятора. Выключатель должен срабатывать только тогда, когда рука-манипулятор достигнет крайнего положения при вращении по часовой стрелке. Другие конечные выключатели нужно установить на плечевом и локтевом сочленении. Они должны срабатывать при полном разгибании соответствующего сочленения. Еще один выключатель устанавливается на кисти и срабатывает, когда кисть поворачивается до упора по часовой стрелке. Последний концевой выключатель устанавливается на захвате и замыкается при его полном открывании. Чтобы поставить манипулятор в исходное положение, каждое возможное движение манипулятора осуществляется в сторону, необходимую для замыкания соответствующего концевого выключателя до тех пор, пока этот выключатель не замкнется. После того как достигнуто начальное положение для каждого движения, компьютер будет точно «знать» истинное положение руки-манипулятора.

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

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

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

Система ручного управления интерфейсом

После того как вы убедитесь, что интерфейс работает правильным образом, вы можете с помощью 8-контактного плоского разъема подключить к нему блок ручного управления. Проверьте положение подключения 8-контактного разъема Molex к головке разъема на плате интерфейса, как показано на рис. 15.10. Аккуратно вставьте разъем до его надежного соединения. После этого рукой-манипулятором можно управлять с ручного пульта в любой момент времени. Не имеет значения, соединен ли интерфейс с компьютером или нет.


Рис. 15.10. Подключение ручного управления

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

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

B голосовом управлении рукой-манипулятором используется набор распознавания речи (УРР), который был описан в гл. 7. В этой главе мы изготовим интерфейс, связывающий УРР с рукой-манипулятором. Этот интерфейс также предлагается в виде набора компанией Images SI, Inc.

Схема интерфейса для УРР показана на рис. 15.11. В интерфейсе использован микроконтроллер 16F84. Программа для микроконтроллера выглядит следующим образом:


‘Программа интерфейса УРР

Symbol PortA = 5

Symbol TRISA = 133

Symbol PortB = 6

Symbol TRISB = 134

If bit4 = 0 then trigger ‘Если запись в триггер разрешена, читать схе

Goto start ‘Повторение

pause 500 ‘Ожидание 0,5 с

Peek PortB, B0 ‘Чтение кода BCD

If bit5 = 1 then send ‘Выходной код

goto start ‘Повторение

peek PortA, b0 ‘Чтение порта А

if bit4 = 1 then eleven ‘Число есть 11?

poke PortB, b0 ‘Выходной код

goto start ‘Повторение

if bit0 = 0 then ten

goto start ‘Повторение

goto start ‘Повторение



Рис. 15.11. Схема контроллера УРР для руки-робота


Обновление программы под 16F84 можно бесплатно загрузить из http://www.imagesco.com

Программирование интерфейса УРР

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

Таблица 15.1

Список деталей для интерфейса PC

(5) Транзистор NPN TIP120

(5) Транзистор PNP TIP 125

(1) ИС 74164 преобразователь кода

(1) ИС 74LS373 восемь ключей

(1) Светодиод красный

(5) Диод 1N914

(1) Гнездо разъема Molex на 8 контактов

(1) Кабель Molex 8-жильный длиной 75 мм

(1) Двухпозиционный переключатель

(1) Разъем уголковый типа DB25

(1) Кабель DB 25 1,8 м с двумя разъемами М – типа.

(1) Печатная плата

(3) Резистор 15 кОм, 0,25 Вт


Все перечисленные детали входят в комплект набора.

Список деталей для интерфейса распознавания речи

(5) Транзистор NPN TIP 120

(5) Транзистор PNP TIP 125

(1) ИС 4011 логический элемент ИЛИ-НЕ

(1) ИС 4049 – 6 буферов

(1) ИС 741 операционный усилитель

(1) Резистор 5,6 кОм, 0,25 Вт

(1) Резистор 15 кОм, 0,25 Вт

(1) Головная часть разъема Molex 8 контактов

(1) Кабель Molex 8 жил, длина 75 мм

(10) Резистор 100 кОм, 0,25 Вт

(1) Резистор 4,7 кОм, 0,25 Вт

(1) ИС регулятор напряжения 7805

(1) ИС PIC 16F84 микроконтроллер

(1) Кварцевый резонатор 4,0 МГц

Набор интерфейса руки-манипулятора

Набор для изготовления руки манипулятора компании OWI

Интерфейс распознавания речи для руки-манипулятора

Набор устройства распознавания речи


Детали можно заказать в:

Images, SI, Inc.

Всем привет!
Пару лет назад на kickstarter появился очень занятный проект от uFactory - настольная робо-рука uArm . Они обещали со временем сделать проект открытым, но я не мог ждать и занялся реверс-инжинирингом по фотографиям.
За эти годы я сделал четыре версии своего виденья этого манипулятора и в итоге разработал вот такую конструкцию:
Это робо-рука с интегрированным контроллером, приводимая в движение пятью сервпоприводами. Основное ее достоинство в том, что все детали либо можно купить, либо дешево и быстро вырязать из оргстекла лазером.
Так как в качестве источника вдохновения я брал open sorce - проект, то всеми своими результатми делюсь полностью. Вы сможете скачать все исходники по ссылкам в конце статьи и, при желании, собрать такую же (все ссылки в конце статьи).

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

Итак, перейдем к описанию.
Технические характеристики

  1. Высота: 300мм.
  2. Рабочая зона (при полностью вытянутом манипуляторе): от 140мм до 300мм вокруг основания
  3. Максимальная грузоподъемность на вытянутой руке, не менее: 200г
  4. Потребляемый ток, не более: 6А
Также мне хочется отметить некоторые особенности конструкции:
  1. Подшипники во всех подвижных частях манипулятора. Всего их одинадцать: 10 штук на вал 3мм и один на вал 30мм.
  2. Простота сборки. Я очень много внимания уделил тому, чтобы была такая последовательность сборки манипулятора при которой все детали прикручивать предельно удобно. Особенно сложно было сделать это для узлов мощных сервоприводов в основании.
  3. Все мощные сервоприводы расположены в основании. То есть "нижние" сервоприводы не таскают "верхние".
  4. За счет параллельных шарниров инструмент всегда остается параллелен или перпендикулярен земле.
  5. Положение манипулятора можно менять на 90 градусов.
  6. Готовое Arduino-совместимое программное обеспечение. Правильно собранная рука может управляться мышкой, а по примерам кода можно составить свои алгоритмы движения
Описание конструкции
Все детали манипулятора режутся из оргстекла толщиной 3 и 5мм:

Обратите внимание, как собирается поворотное основание:
Самый сложный, это узел в нижней части манипулятора. В первых версиях у меня уходило очень много сил, чтобы собрать его. В нем соединяются три сервопривода и передаются усилия на захват. Детали вращаются вокруг штифта диаметром 6мм. Захват удерживается парралельно (или перпендикулярно) рабочей поверхности за счет дополнительных тяг:

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

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

Управляется все Arduino-совместимой платой и шилдом для нее:

Сборка
Чтобы собрать манипулятор потребуется около двух часов и куча крепежа. Сам процесс сборки я офмил в виде инструкции в фотографиях (осторожно, траффик!) с подробными комментариями по каждой операции. Также я сделал подробную 3D-модель в простой и бесплатной программе SketchUp. Так что всегда можно повертеть ее перед глазами и посмотреть непонятные места:


Электроника и программирование
Я сделал целый шилд, на котором установил, помимо разъемов сервоприводов и питания, переменные резисторы. Для удобства отладки. На самом деле достаточно при помощи макетки подвести сигналы к двигателям. Но у меня в итоге получился вот такой шилд, который (так уж сложилось) я заказал на заводе:

Вообще я сделал три разные программы под Arduino. Одна для управления с компьютера, одна для работы в демо-режиме и одна для управления кнопками и переменными резисторами. Самая интересная из них, конечно, первая. Я не буду приводить здесь код целиком - он доступен в онлайн .
Для управления необходимо скачать программу для компьютера. После ее запуска мышь переходит в режим управления рукой. Движение отвечает за перемещение по XY, колесико изменяет высоту, ЛКМ/ПКМ - захват, ПКМ+колесико - поворот манипулятора. И это на самом деле удобно. Это было на видео в начале статьи.
Исходники проекта

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

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

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

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

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

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

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

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



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

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

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

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

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

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

Видео: Как сделать манипулятор

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


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

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

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

Видео: манипулятор своими руками.mpg

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

Заключение

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



Внимание, только СЕГОДНЯ!

© 2024 ongun.ru
Энциклопедия по отоплению, газоснабжению, канализации