Рука манипулятор своими руками чертежи. Интересный робот-манипулятор на Arduino. Сборка механической части

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

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

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



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

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

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



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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Файлы

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

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

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

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

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

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

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

Робот работает на плате Arduino . В качестве источника питания используется компьютерный блок.

Материалы и инструменты:
- 6 серводвигателей;
- акрил толщиной 2 мм (и еще небольшой кусок толщиной 4 мм);
- штатив (для создания основания);
- ультразвуковой датчик расстояния типа hc-sr04;
- контроллер Arduino Uno;
- контроллер питания (изготавливается самостоятельно);
- блок питания от компьютера;
- компьютер (нужен для программирования Arduino);
- провода, инструменты и прочее.



Процесс изготовления:

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

Длина первой части составляет порядка 19 см, а второй примерно 17.5 см. Переднее звено имеет длину 5.5 см. Что касается остальных элементов, то их размеры выбираются на личное усмотрение.





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

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

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

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








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


Шаг третий. Подключение электронной части
Основным контроллером для робота является плата Arduino. В качестве источника питания используется компьютерный блок, на его выходах нужно найти напряжение 5 Вольт. Оно должно быть, если замерить мультиметром напряжение на красном и черном проводе. Это напряжение нужно для питания серводвигателей и датчика расстояния. Желтый и черный провод блока выдает уже 12 Вольт, они нужны для работы Arduino.

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

Еще на плате имеется светодиодный индикатор питания. Для его подключения используется резистор 100 Ом между +5В и землей.










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

Теперь можно приступать к программированию. Перед тем как подключаться через USB, нужно убедиться, что питание полностью отключено. При тестировании программы питание робота тоже нужно отключать. Если это не сделать, контроллер получить 5В от USB и 12В от блока питания.

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

На схеме есть резистор R1, его можно заменить потенциометром на 100 кОм. Это позволит регулировать яркость вручную. Что касается резисторов R2, то их номинал 118 Ом.

Вот перечень основных узлов, которые применялись:
- 7 светодиодов;
- R2 - резистор на 118 Ом;
- R1 - резистор на 100 кОм;
- переключатель;
- фоторезистор;
- транзистор bc547.

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

Первые испытания робота показали, что установленные серводвигатели типа futuba s3003 оказались слабыми для робота. Их можно применять лишь для поворота руки или для схвата. Вместо них автор установил двигатели mg995. Идеальным вариантом будут двигатели типа mg946.

Вид на внутреннюю часть ладони человекоподобного робота RKP-RH101-3D. Ладонь кисти человекоподобного робота зажата на 50%. (смотри Рис. 2).

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

Таково в общих чертах устройство манипулятора RKP-RH101-3D. Что касается сложности задач, которые может разрешать тот или иной робот, оборудованный различными манипуляторами, заменяющими ему руки, то они во многом зависят от сложности и совершенства управляющего устройства.
Принято говорить о трех поколениях роботов: промышленных, адаптивных и роботах с искусственным интеллектом. Но какой бы робот не проектировался ему не обойтись без рук манипуляторов для выполнения различных задач. Звенья манипулятора подвижны друг относительно друга и могут совершать вращательные и поступательные движения. Иногда вместо простого захвата предмета у промышленных роботов последним звеном манипулятора (его кистью) служит какой-нибудь рабочий инструмент, например, дрель, гаечный ключ, краскораспылитель или сварочная горелка. У человекоподобных роботов на кончиках пальцев их манипуляторов в виде кисти могут быть также расположены различные дополнительные миниатюрные приспособления, например, для сверления, гравировки или рисования.

Общий вид человекоподобного боевого робота на сервоприводах с кистями рук RKP-RH101-3D (смотри Рис. 3).

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