Робот манипулятор своими руками на 3d принтере

Обновлено: 04.07.2024


В данном уроке, двигаясь по шагам, мы соберём робот "Манипулятор".

Видео:

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

НаименованиеКоличество, шт.
1Гайка М310
2Винт М3х69
3Винт М3х810
4Винт М3х105
5Винт М3х127
6Винт М3х204

Шаг 1

Список деталей к Шагу 1

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

Номер позиции Количество Название
1 1 Основание
3 4 М3х20мм винт
4 4 М3 гайка
5 1 Опорная пластина
6 1 Крепление
7 1 Сервопривод
8 2 М3x8мм винт



Шаг 2

Список деталей к Шагу 2

Номер позиции Количество Название
1 2 М3 гайка
2 1 Крепление
3 1 Сервопривод
4 2 М3х8 винт
5 1 Основа левой руки
6 1 Параллельное крепление
7 1 Рычаг руки
8 1 М3x6мм винт
9 1 Серво рычаг
10 2 М3х12мм винт
11 1 Осевой серверный винт
12 1 Фиксирующий серверный винт



Шаг 3

Список деталей к Шагу 3

Номер позиции Количество Название
1 2 М3 гайка
2 1 Крепление
3 1 Сервопривод
4 2 М3х8 винт
5 1 Параллельное крепление
6 1 М3х6мм винт
7 1 Серво рычаг
8 2 М3x6мм винт
9 1 Рычаг правой руки
10 1 Основание правой руки
11 1 Осевой серверный винт
12 1 Фиксирующий серверный винт

Шаг 4

Список деталей к Шагу 4

Номер позиции Количество Название
1 1 Крепление вкладки левой руки
2 1 М3х6мм винт
3 1 Балка левой руки
4 1 Верхняя крышка
5 1 Двойной серво рычаг
6 2 Фиксирующий серверный винт.


Шаг 5

Список деталей к Шагу 5

Номер позиции Количество Название
1 2 М3 гайка
2 2 М3х12мм винт
3 1 Траверса основания манипулятора
4 1 Соединительное ребро жесткости



Шаг 6

Список деталей к Шагу 6

Номер позиции Количество Название
1 2 М3x6мм винт
2 1 Фиксирующий серверный винт
3 1 Балка левого запястья


Шаг 7

Список деталей к Шагу 7

Номер позиции Количество Название
1 1 Параллельная балка
2 1 М3х6мм винт
3 1 Коннектор
4 1 Балка правого запястья
5 1 Прокладка
6 2 M3x10 винт

Шаг 8

Список деталей к Шагу 8

Номер позиции Количество Название
1 1 Левый захват
2 1 Правый захват
3 1 Приводной рычаг
4 1 Левое крепление запястья
5 1 Правое крепление запястья
6 1 Нижнее крепление сервопривода
7 1 Верхнее крепление сервопривода.
8 1 Приводной рычаг
9 1 Осевой серверный винт.
10 1 Серво рычаг
11 1 Сервопривод
12 4 М3х8мм
13 3 М3х6мм
14 1 Фиксирующий серверный винт
15 1 М3х12мм винт
16 2 Прокладка


Шаг 9

Список деталей к Шагу 9

Номер позиции Количество Название
1 1 Прокладка
2 3 М3х10мм винт


Вы можете скачать данную инструкцию по ссылке: Сборка робота-манипулятора. Часть 1

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


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

Как управлять роботизированной рукой с помощью Arduino?

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

Шаг 1: Сбор компонентов

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

Шаг 2: Изучение компонентов

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

Arduino Nano — это плата микроконтроллера, которая выполняет различные операции в разных схемах. Для этого требуется код C, который сообщает доске, какие задачи и как выполнять. Он имеет 13 цифровых контактов ввода / вывода, что означает, что мы можем управлять 13 различными устройствами. Arduino Nano имеет ту же функциональность, что и Arduino Uno, но при довольно небольшом размере. Микроконтроллер на плате Arduino Nano — ATmega328p. Если вы хотите управлять более чем 13 устройствами, используйте Arduino Mega.


Ардуино Нано

HC-05 Беспроводной последовательный приемопередатчик Bluetooth: В этом проекте нам нужна беспроводная связь, поэтому мы будем использовать технологию Bluetooth, и для этого модуля, который будет использоваться, будет HC-05. Этот модуль имеет несколько программируемых скоростей передачи, но скорость передачи данных по умолчанию составляет 9600 бит / с. Он может быть настроен как ведущий или ведомый, тогда как другой модуль HC-06 может работать только в ведомом режиме. Этот модуль имеет четыре контакта. Один для VCC (5 В), а остальные три для GND, TX и RX. Пароль по умолчанию для этого модуля — 1234 или 0000. Если мы хотим обмениваться данными между двумя микроконтроллерами или общаться с любым устройством с функцией Bluetooth, таким как телефон или ноутбук, HC-05 помогает нам в этом. Уже доступно несколько приложений для Android, что значительно упрощает этот процесс.


Модуль Bluetooth HC-05

Типичная роботизированная рука состоит из нескольких сегментов и обычно имеет 6 суставов. Он содержит как минимум 4 шаговых двигателя, управляемых компьютером. Шаговые двигатели отличаются от других двигателей постоянного тока. Они двигаются точно с точностью до шага. Эти роботизированные манипуляторы используются для выполнения различных операций. Мы можем управлять ими вручную с помощью пульта дистанционного управления или запрограммировать их на автономную работу.


Роботизированная рука.

Шаг 3: Сборка компонентов

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


  1. .Прикрепите плату Arduino Nano на макетную плату. Arduino будет получать питание через положительный и отрицательный провод адаптера.
  2. Поместите модуль Bluetooth также на макетную плату. Включите модуль Bluetooth через Arduino. Подключите контакт Tx модуля Bluetooth к контакту Rx платы Arduino Nan и подключите контакт Rx модуля Bluetooth к контакту Tx платы Arduino Nano.
  3. Как известно, есть 4 шаговых двигателя. У каждого есть техническое название. Они называются Локоть, Плечо, Основание и Захват. Vcc и земля всех двигателей будут общими и подключены к плюсу и минусу адаптера 6 В. Сигнальный контакт всех четырех двигателей будет подключен к контактам 5, 6, 9 и 11 Arduino Nano.
  4. Убедитесь, что вы сделали подключения в соответствии со следующей схемой.Принципиальная электрическая схема

Шаг 4: Начало работы с Arduino

Если вы еще не знакомы с Arduino IDE, не беспокойтесь, потому что пошаговая процедура настройки и использования Arduino IDE с платой микроконтроллера объясняется ниже.

Шаг 5: загрузка приложения

Поскольку мы собрали всю схему и загрузили код на плату микроконтроллера. позволяет скачать мобильное приложение, которое будет работать как пульт дистанционного управления для манипулятора. Бесплатное приложение доступно в магазине Google Play. Название приложения — Маленькая рука робота управления. Чтобы установить соединение Bluetooth, включите Bluetooth на своем мобильном телефоне. Зайдите в настройки и соедините свой мобильный телефон с модулем HC-05. После этого нажмите кнопку Bluetooth в приложении. Если он становится зеленым, это означает, что приложение теперь подключено и готово к работе с роботизированной рукой. Есть ползунки для настройки работы манипулятора по желанию.


Приложение

Шаг 6: понимание кода

Код хорошо прокомментирован и прост для понимания. Тем не менее, это кратко объясняется ниже.

1. В начале включена библиотека для написания кода для работы серводвигателей. Другая библиотека math.h включена для выполнения различных математических операций в коде. Четыре объекта также инициализируются для использования с четырьмя серводвигателями.

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

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

int desireGrip; int gripperPos; int desireDelay; int servoSpeed ​​= 15; int ready = 0; struct JointAngle желаемыйAngle; // желаемые углы сервоприводов

4. void setup () — это функция, которая используется для установки контактов Arduino как INPUT или OUTPUT. Здесь, в этой функции, мы заявили, что вывод двигателей будет подключен к каким выводам Arduino. Также гарантируется, что Arduino не считывает последовательный ввод слишком долго. Исходное положение и скорость передачи также устанавливаются в этой функции. Baud Rate — это скорость, с которой плата микроконтроллера будет взаимодействовать с сервоприводами и подключенным модулем Bluetooth.

5. servoParallelControl () — это функция, которая используется для определения текущего положения манипулятора и перемещения его в соответствии с командой, подаваемой через мобильное приложение. Если текущее положение меньше фактического, рука переместится вверх и наоборот. Эта функция вернет значение текущей позиции и скорость сервопривода.

6. void loop () — это функция, которая многократно запускается в цикле. Эта функция считывает данные, поступающие последовательно, и сохраняет угол каждого сервопривода в структуре. Первоначально состояние всех сервоприводов установлено на ноль. Здесь вызывается функция servoParallelControl () и в нее передаются параметры. эта функция вернет значение, и оно будет сохранено в переменной статуса.

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

.Манипулятор своими руками из фанеры

 исходные файлы для манипулятора и решил вырезать его на ЧПУ станке

Я думал что с первого раза у меня ни чего не получиться. Так как это достаточно сложная работа для ЧПУ и очень много мелких деталей.

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

И Вот что у меня получилось. Достаточно не плохо на мой взгляд.

Серо-приводы установлены, Манипулятор собран. Но как проверить его работоспособность. Поискал в интернете примеров не дал результатов и тогда я решил набросать небольшой пример кода для NodeMCU. Тем более у меня лежал без дела шилд для данной отладочной платы.

монипулятор на NodeMCU

Код получился не очень красивый но для проверки достаточно.

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

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

NodeMCU

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

Тестирования самодельного манипулятора показал , что все работает но скорее всего не достаточно питания от одного аккумулятора 18650. И происходить перезагрузка NodeMCU .

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

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

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

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

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

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

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

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

манипулятор 2

манипулятор3

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

Длина первой части около 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; // переменная для считывания данных с аналогового пина

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

val = map(val, 0, 1023, 0, 179); // масштабирует полученное значение для использования с сервами (получаем значение в диапазоне от 0 до 180)

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

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

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

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

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

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

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

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

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

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

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

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

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

Мы добавили в наш код серводвигатели, светодиод и датчик расстояния. Здесь изменять ничего не надо.

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

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

Читайте также: