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


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

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

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

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

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

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

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

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

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

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

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

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

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

Длина первой части около 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 секунды

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

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

Всем привет!
Пару лет назад на 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, колесико изменяет высоту, ЛКМ/ПКМ - захват, ПКМ+колесико - поворот манипулятора. И это на самом деле удобно. Это было на видео в начале статьи.
Исходники проекта

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

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

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

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

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

За основу мы взяли, манипулятор представленный на сайте 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

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

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


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

Перчатка снабжена сенсорами для управления светодиодом и 5-ю моторами
передатчик на Arduino принимает сигналы сенсоров, а затем в виде команд управления по беспроводной связи отправляет их на приемник контроллера робо-руки
приемник контроллера на основе Arduino Uno получает команды и соответственно управляет робо-рукой

Особенности:

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

Шаг 1: Компоненты


Для перчатки:

Шаг 2: Предварительная сборка


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

Сам проект содержит два сложных момента: первый — это настроить два приемника-передатчика nRF24 друг на друга для слаженного взаимодействия. Получается, что ни Nano, ни Uno не обеспечивают стабильные 3.3В для четкой работы модулей. Это решается добавлением конденсаторов 47мФ на выводы питания обоих модулей nRF24. В принципе желательно перед использованием модулей nRF24 ознакомится с их функционированием в IRQ и не-IRQ режимах, да и другими нюансами. И помогут в этом следующие ресурсы. nRF24. и nRF24 lib

И второй — довольно быстро заполняются контакты Uno, но это не удивительно ведь нужно контролировать 5-ь двигателей, подсветку, две кнопки и модуль связи. Поэтому пришлось задействовать сдвиговый регистр. Основываясь на том, что модули nRF24 используют SPI интерфейс, я решил для программирования сдвигового регистра также использовать SPI вместо функции shiftout(). И на удивление набросок кода заработал с первого раза. Вы можете проверить это по назначению контактов и рисункам.

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

Шаг 3: Перчатки


OWI Робо-рука имеет 6 пунктов для управления:

Светодиод подсветки расположенный Захвате
Захват
Запястье
Локоть — это часть манипулятора соединенная с Запястьем
Плечо – часть манипулятора, прикрепленная к Основе
Основа

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

Захват контролируется кнопками на среднем пальце и мизинце, то есть при сведении вместе указательного пальца и среднего захват закрывается, а при сведении мизинца и безымянного открывается.
Запястье управляется гибким сенсором на указательном пальце — сгибание пальца на половину заставляет запястье опускаться, а полное сгибание пальца подниматься.
Локоть управляется акселерометром – наклон ладони вверх или вниз заставляет локоть подниматься или опускаться соответственно.
Плечо так же контролируется акселерометром – поворот ладони вправо или влево заставляет плечо перемещаться вверх или вниз соответственно.
Основа тоже управляется акселерометром – наклон всей ладони (лицевой стороной вверх) вправо или влево заставляет поворачиваться основу в правую или левую стороны соответственно.
Подсветка включается/отключается одновременным нажатием обеих кнопок управляющих захватом.
При этом кнопки срабатывают при удержании в 1/4 секунды, чтобы избежать отклика при случайном касании.

Во время размещения компонентов самоделки на перчатке придется поработать ниткой с иголкой, а именно пришить 2 кнопки, гибкий резистор, модуль с гироскопом и акселерометром, ну и провода, идущие от всего перечисленного к штекерному мозгоразъему .

На плате со штекерным разъемом смонтированы два светодиода: зеленый – индикатор питания, а желтый – индикатор передачи данных на контроллер манипулятора.

Шаг 4: Блок передатчика


Блок передатчика состоит из Arduino Nano, модуля беспроводной связи nRF24, штекерного разъема для ленточного кабеля и трех резисторов: два согласующих резистора по 10кОм для кнопок управления захватом на перчатке и делитель напряжения 20кОм для гибкого сенсора, отвечающего за управление запястьем.

Вся электронные компоненты спаяны на монтажной плате, при этом обратите внимание как модуль nRF24 «висит» над Nano. Я думал, что такое мозгоположение будет вызывать помехи, но нет, все нормально работает.

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

Внимание!! Перед пайкой ознакомьтесь с распиновкой контактов!

Шаг 5: Контроллер манипулятора


Основа контроллера робо-руки — Arduino Uno, получающий посредством модулей беспроводной связи nRF24 сигналы от перчатки, и на их основе затем с помощью микросхем 3 L293D управляющий OWI манипулятором.

Так как почти все контакты Uno были задействованы, то мозгопровода, идущие к ним, едва умещаются в корпусе контроллера!

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

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

Робо-рука и контроллер соединяются ленточным кабелем с 14 дорожками, см. рисунок.

Светодиоды припаиваются к заземлению (-) и контакту а0 Arduino через резистор 220 Ом.
Все провода от двигателей подсоединяются к микросхеме L293D к выводам 3/6 или 11/14 (+/- соответственно). Каждая L293D поддерживает два двигателя, следовательно, две пары контактов.
Провода питания OWI расположены по краям 7-контактного штекера (левая крайний +6В и правый крайний GND) на задней желтой крышке, см. фото. Эта пара подсоединена к контакту 8 (+) и контактам 4,5,12,13 (GND) на всех трех микросхемах L293D.

Внимание!! Обязательно ознакомьтесь с распиновкой контактов в следующем шаге!

Шаг 6: Назначение контактов (распиновка)


5В — 5В для платы акселерометра, кнопок и гибкого сенсора
а0 – вход гибкого сенсора
а1 – желтый светодиод
а4 – SDA к акселерометру
а5 – SCL к акселерометру
d02 – прерывающий контакт модуля nRF24L01 (контакт 8)
d03 – вход кнопки открытия захвата
d04 – вход кнопки сжатия захвата
d09 — SPI CSN к модулю NRF24L01 (контакт 4)
d10 — SPI CS к модулю NRF24L01 (контакт 3)
d11 — SPI MOSI к модулю NRF24L01 (контакт 6)

d13 — SPI SCK к модулюNRF24L01 (контакт 5)
Vin – «+9В»
GND – масса, заземление

3,3V — 3,3В для модуля NRF24L01 (контакт 2)
5V — 5В к кнопкам
Vin – «+9В»
GND – масса, заземление
а0 – «+» светодиода на запястье
а1 — SPI SS контакт для выбора сдвига регистра – к контакту 12 на сдвиговом регистре
а2 – вход красной кнопки
а3 – вход зеленой кнопки
а4 – движение основы вправо — контакт 15 на L293D
а5 – светодиод
d02 — IRQ вход модуля nRF24L01 (контакт 8)
d03 – включение двигателя основы — контакт 1 или 9 на L293D
d04 – движение основы влево — контакт 10 на соответствующей L293D
d05 – включение двигателя плеча — контакт 1 или 9 на L293D
d06 — включение двигателя локтя — контакт 1 или 9 на L293D
D07 — SPI CSN к модулю NRF24L01 (контакт 4)
d08 — SPI CS к модулю NRF24L01 (вывод 3)
d09 – включение двигателя запястья — контакт 1 или 9 на L293D
d10 – включение двигателя захвата — контакт 1 или 9 на L293D
d11 — SPI MOSI к модулю NRF24L01 (контакт 6) и контакт 14 на сдвиговом регистре
d12 — SPI MISO к модулю NRF24L01 (контакт 7)
d13 — SPI SCK к модулю NRF24L01 (контакт 5) и контакт 11 на сдвиговом регистре

Шаг 7: Связь


Перчатка самоделки посылает 2 байта данных в контроллер манипулятора 10 раз в секунду, или когда получен сигнал от одного из сенсоров. Этих 2 байтов достаточно для 6 пунктов контроля, потому что нужно всего лишь послать:

Включить/выключить подсветку (1 бит) — я на самом деле использую 2 бита совместно с двигателями, но достаточно одного.
выключить/ вправо / влево для всех 5 двигателей – по 2 бита на каждый, то есть всего 10 бит

Получается что 11 или 12 бит достаточно.

Кодировка направлений:
Выкл: 00
Вправо: 01
Влево: 10

По битам управляющий сигнал выглядит так:

Байт 1 может быть удобно направлен непосредственно в регистр сдвига, так как это контроль вправо/влево двигателей с 1 по 4.

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

Шаг 8: Код

Код для перчаток содержит участки из следующих библиотек:

Добавлены еще два байта в структуре связи для отправки запрошенной скорости двигателей Запястья, Локтя, Плеча и Основы, которая определяется 5-битным значением (0..31) пропорционально угловому положению перчатки. Контроллер манипулятора распределяет полученное значение (0..31) на ШИМ значения соответственно для каждого мозгодвигателя . Это обеспечивает согласованное управление скорости оператора, и более точное манипулирование робо-рукой.

Новый набор жестов поделки :

  • Подсветка: Кнопка на среднем пальце – Включение, на мизинце — Выключение.
  • Гибкий сенсор управляет Захватом – полусогнутый палец – Открыть, полностью согнутый – Закрыть.
  • Запястье контролируется отклонением ладони относительно горизонтали Вверх и Вниз соответственно движению, и чем больше отклонение, тем больше скорость.
  • Локоть управляется отклонением ладони относительно горизонтали Вправо и Влево соответственно. Чем больше отклонение, тем больше скорость.
  • Плечо контролируется вращением ладони Вправо и Влево относительно вытянутой ладони лицевой стороной вверх. Вращение ладони относительно оси локтя, вызывает помахивание робо-рукой.
  • Основа контролируется также как и Плечо, но с положением ладони лицевой стороной вниз.

Шаг 9: Что же еще можно доработать?

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

Градиентное увеличение скорости: каждое движение двигателя начинается на минимальной скорости, которая затем постепенно увеличивается с каждой секундой, пока не достигнет необходимого максимума. Это позволит более точно управлять каждым двигателем, особенно двигателями Захвата и Запястья.
Более быстрое торможение: при получении команды остановки от контроллера двигатель еще меняет свое положение в течение примерно 50мс, поэтому «ломка» движения обеспечит более четкое управление.
А что еще?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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