ARM manipulator

Роборука своими руками

  • Интсрукция по сборке
  • 3D модель
  • Прошивка

Введение

Роборука - один из самых наглядных и полезных проектов для тех, кто хочет освоить робототехнику, программирование микроконтроллеров и 3D-печать одновременно. В отличие от большинства учебных наборов, самостоятельно собранная роборука даёт полное понимание того, как устроены реальные промышленные манипуляторы.

Готовая роборука на столе - вид спереди, демонстрация захвата предмета

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

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

Что вы получите в итоге:

  • Роборуку с 5–6 степенями свободы под управлением Arduino.
  • Полностью напечатанный на 3D-принтере корпус.
  • Прошивку с возможностью управления через джойстик или Serial Monitor.
  • Понимание принципов, которые лежат в основе промышленной робототехники.

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

Обзор моделей

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

Открытые проекты

Коллаж трёх популярных open-source роборук: InMoov, EEZYbotARM и BCN3D Moveo на нейтральном фоне

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

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

Можете сами оценить. Вот, например, наиболее популярные:

  • InMoov - полноразмерный человекоподобный манипулятор. Отличается высокой детализацией и биомиметической конструкцией пальцев. Управляется через Arduino и MyRobotLab. Подходит для изучения антропоморфной механики, но требует много времени на печать.
  • EEZYbotARM - компактная настольная рука с параллелограммным механизмом. Простая в сборке, отличная точность позиционирования. Один из лучших вариантов для первого проекта.
  • BCN3D Moveo - шестиосевой манипулятор с шаговыми двигателями. Ближе всего по конструкции к промышленным роботам, требует серьёзной электроники и настройки.
  • AR2/AR3 - проект с поддержкой ROS и обратной кинематики, металлические детали, шаговые двигатели. Для продвинутых пользователей.

Промышленные аналоги

Промышленные роботы KUKA и Fanuc на производственной линии - для сравнения масштаба и конструкции

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

  • KUKA KR AGILUS - шестиосевой манипулятор с повторяемостью ±0,02 мм. Использует планетарные редукторы и сервоприводы с энкодерами.
  • Universal Robots UR5 - коллаборативный робот с встроенными датчиками усилия. Эталон эргономики программирования.
  • Fanuc LR Mate - компактный шестиосевой робот, популярный в малом производстве.

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

Сравнение конструкций

При выборе базовой концепции стоит ориентироваться на несколько ключевых параметров:

Сравнительная таблица характеристик популярных open-source роборук: степени свободы, тип привода, сложность сборки, цена

  • Степени свободы (DoF): 4 DoF достаточно для базовых задач, 6 DoF - для полноценной пространственной работы.
  • Тип привода: сервоприводы проще в управлении, шаговые двигатели дают большую точность и момент.
  • Материал: PLA-пластик доступен, но хрупок при нагрузках; PETG прочнее; металлические детали - для серьёзных задач.
  • Стоимость: простые серворуки - от 2 000 руб., проекты с шаговыми двигателями - от 10 000 руб.

Принципы работы

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

Степени свободы

Диаграмма степеней свободы роборуки: схема осей вращения от основания до захвата, стрелками показаны направления движения

Степень свободы (Degree of Freedom, DoF) - это независимое направление движения звена манипулятора. Человеческая рука имеет около 27 степеней свободы с учётом пальцев; промышленные роботы обычно имеют 6, что достаточно для произвольного позиционирования в пространстве.

  • 1 DoF - вращение или линейное перемещение по одной оси.
  • 3 DoF - минимум для перемещения в трёхмерном пространстве.
  • 6 DoF - полная пространственная свобода (позиция + ориентация).
  • 7+ DoF - избыточная кинематика, как у человеческой руки; позволяет обходить препятствия.

Для учебной роборуки оптимальны 4–5 DoF: вращение основания, подъём плеча, сгиб локтя, вращение запястья и захват.

Кинематика

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

Сравнение прямой и обратной кинематики: слева стрелки от углов суставов к позиции захвата, справа - от целевой точки к углам суставов

  • Прямая кинематика (Forward Kinematics, FK) - зная углы всех суставов, вычисляем положение захвата. Простая математика, используется для анимации и симуляции.
  • Обратная кинематика (Inverse Kinematics, IK) - задаём целевую точку в пространстве, вычисляем нужные углы суставов. Значительно сложнее, часто не имеет единственного решения.

В простых проектах на Arduino обратную кинематику реализуют аналитически (через тригонометрию) или используют готовые библиотеки, например Arduino-IRB или решают задачу на стороне Python с передачей углов по Serial.

Типы приводов

Три типа приводов рядом: сервопривод MG996R, шаговый двигатель NEMA17 с драйвером A4988, линейный актуатор - на белом фоне с подписями
  • Сервоприводы - встроенный контроллер положения, управление PWM-сигналом. Просты в использовании, не требуют внешних драйверов. Недостатки: ограниченный момент, дискретность позиционирования.
  • Шаговые двигатели - точное угловое перемещение шагами (1,8°/шаг). Требуют драйверов (A4988, TMC2209). Не имеют встроенной обратной связи, но обеспечивают высокую повторяемость.
  • DC-двигатели с энкодерами - высокая скорость и момент, требуют замкнутой системы управления. Используются в продвинутых проектах.
  • Линейные актуаторы - для задач, требующих линейного перемещения (например, управление пальцами через тросики).

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

Шарниры и захваты

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

Типы шарниров

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

Шарнир (сустав) - место соединения двух звеньев манипулятора, допускающее относительное движение между ними. От типа шарнира зависит характер движения и допустимые нагрузки.

  • Вращательный шарнир (revolute) - вращение вокруг одной оси. Самый распространённый тип в роборуках. Реализуется через подшипники и ось с сервоприводом.
  • Призматический шарнир (prismatic) - линейное перемещение вдоль оси. Используется реже, обычно в промышленных SCARA-роботах.
  • Сферический шарнир - вращение в нескольких плоскостях. Трудно приводить в движение, применяется в запястьях сложных манипуляторов.
  • Карданный шарнир - вращение в двух плоскостях. Удобен для запястья с 2 DoF.

В 3D-печатных конструкциях вращательные шарниры чаще всего выполняются через пластиковые втулки или встроенные подшипники 608ZZ (те же, что в спиннерах).

Конструкции захватов

Четыре типа захватов роборуки рядом: двухпальцевый параллельный, трёхпальцевый, вакуумный и магнитный - вид спереди

Захват - рабочий орган манипулятора, непосредственно взаимодействующий с объектом. Выбор конструкции зависит от формы, массы и материала захватываемых предметов.

  • Двухпальцевый параллельный - простейший и наиболее распространённый. Пальцы движутся параллельно, обеспечивая надёжный захват предметов правильной формы. Приводится одним сервоприводом через реечный механизм или тросик.
  • Трёхпальцевый центрирующий - пальцы симметрично сходятся к центру. Лучше удерживает цилиндрические объекты.
  • Вакуумный захват - присоска с насосом. Идеален для плоских и гладких поверхностей. Не подходит для пористых материалов.
  • Магнитный захват - электромагнит для работы с металлическими деталями. Включается/выключается от Arduino через транзистор или реле.

Расчёт нагрузок

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

Схема расчёта крутящего момента: плечо рычага, масса груза и захвата, результирующий момент - с формулами

Требуемый момент (кг/см) = масса груза × длина плеча. Например, если захват и груз весят 200 г, а длина звена - 15 см, то плечевой сустав должен обеспечить минимум 200 × 0,15 = 3 кг/см. С коэффициентом запаса 2–3 потребуется сервопривод на 6–9 кг/см.

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

3D-печать и сборка

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

Выбор материала

Три катушки пластика рядом: черный PLA, прозрачный PETG и серый ABS - с образцами напечатанных деталей роборуки под каждой

Материал для печати напрямую влияет на прочность, долговечность и стойкость к нагрузкам готового механизма. Мир 3D-печати сегодня крайне разнообразен: существуют сверхжесткие армированные композиты с добавлением угле- или стекловолокна (например, PA-CF, PETG-CF), мягкие и эластичные полимеры (TPU, TPE) для демпферов и гибких накладок захвата, а также сверхпрочные и термостойкие инженерные материалы (Nylon, PC, PEEK). Помимо классической послойной печати (FDM/FFF), для высокоточных мелких деталей применяют фотополимерную печать (SLA/DLP), а в промышленности - селективное лазерное спекание (SLS). Однако для сборки надежной роборуки своими руками чаще всего используют проверенные и доступные термопласты для FDM-принтера. Разберём основные из них:

  • PLA - самый доступный и лёгкий в печати материал. Достаточная жёсткость для статичных деталей. Недостатки: хрупкость при ударах, деформация при температурах выше 60°C. Подходит для учебных проектов без высоких нагрузок.
  • PETG - лучший выбор для роборуки. Прочнее PLA, устойчив к температуре до 80°C, не хрупкий. Печатается чуть сложнее: требует сухого хранения и точной настройки температуры.
  • ABS - ударопрочный и жаростойкий, но капризный в печати: требует закрытого принтера и обогрева стола, склонен к деламинации. Оправдан только при повышенных требованиях к прочности.
  • ASA - альтернатива ABS с лучшей UV-стойкостью. Подходит для деталей, эксплуатируемых на улице.

Параметры печати

Правильные параметры слайсера критичны для прочности механических деталей:

  • Заполнение (infill): 40–60% для нагруженных деталей, 20–30% для корпусных элементов. Рекомендуемый паттерн - Gyroid или Honeycomb.
  • Количество стенок (perimeters/walls): 3–4 периметра для деталей под нагрузкой.
  • Высота слоя: 0,2 мм - оптимум между скоростью и прочностью. Для деталей с мелкими деталями - 0,1 мм.
  • Температура печати PETG: 230–240°C (сопло), 70–85°C (стол).
  • Ориентация детали: располагайте деталь так, чтобы направление слоёв совпадало с направлением основных нагрузок.

Скриншот настроек слайсера PrusaSlicer: выделены параметры заполнения, стенок и температуры для детали роборуки

Постобработка

После печати детали требуют подготовки перед сборкой:

Процесс постобработки: горячая установка резьбовой вставки M3 паяльником в 3D-печатную деталь роборуки

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

  • Удаление поддержек острым ножом или пинцетом.
  • Развёртывание отверстий под подшипники и болты (сверло или дрель).
  • Горячая запрессовка резьбовых вставок (M3, M4) паяльником.
  • Шлифовка посадочных поверхностей при необходимости.

Сборка и крепёж

Рекомендуемый крепёж для 3D-печатных роборук:

  • Болты M3×8–20 (нержавейка или чёрная сталь) - основной крепёж.
  • Гайки M3 самостопорящиеся (Nyloc) - для шарнирных осей.
  • Подшипники 608ZZ (8×22×7 мм) - в шарнирах с высокой нагрузкой.
  • Подшипники 623ZZ (3×10×4 мм) - для малых осей.

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

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

Выбор сервомотора

Линейка сервоприводов разных размеров: SG90, MG90S, MG996R, DS3218 - вид сверху с линейкой для масштаба

Сервопривод включает в себя DC-двигатель, редуктор и схему управления с обратной связью по потенциометру. Управляется ШИМ-сигналом: длина импульса от 500 до 2500 мкс задаёт угол поворота.

Наиболее популярные модели для роборук:

  • SG90 - пластиковые шестерни, 1,8 кг/см, 5 В. Только для захвата или мелких ненагруженных шарниров.
  • MG90S - металлические шестерни, 2,2 кг/см. Надёжнее SG90, тот же размер.
  • MG996R - 9,4 кг/см, металлические шестерни. Стандарт для плеча и локтя настольной руки.
  • DS3218 - 20 кг/см, цифровой, металл. Для тяжёлых конструкций.
  • Dynamixel AX-12A - умный сервопривод с шиной данных и обратной связью по углу и нагрузке. Значительно дороже, но даёт профессиональный уровень управления.

Момент и скорость

График зависимости крутящего момента сервопривода от напряжения питания и скорости вращения для MG996R и DS3218

При выборе сервопривода важно учитывать, что паспортный момент указывается при номинальном напряжении и снижается при уменьшении питания. Реальный момент под нагрузкой обычно на 20–30% ниже паспортного. Закладывайте двукратный запас по моменту.

Скорость сервопривода указывается в секундах на 60° (например, 0,17 с/60°). Для роборуки скорость менее критична, чем момент - плавность движения важнее быстроты.

Монтаж

Правила монтажа сервоприводов в 3D-печатный корпус:

Сервопривод MG996R установлен в гнездо 3D-печатной детали роборуки, крепление болтами M3, вид сбоку
  • Крепите сервопривод болтами M3 через предусмотренные в корпусе стойки, не допуская перекоса.
  • Диск (horn) сервопривода должен располагаться строго по оси шарнира.
  • Кабель прокладывайте через специальные каналы в корпусе, чтобы он не мешал движению звеньев.
  • Перед финальной сборкой обязательно установите начальный угол сервопривода программно и только потом надевайте диск.

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

Электропитание и Arduino

Общая схема питания роборуки: блок питания 5В/10А, плата распределения питания, Arduino Uno, сервоприводы - с обозначением токов

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

Питание от USB

USB-порт компьютера или зарядного устройства обеспечивает не более 500 мА (USB 2.0) или 900 мА (USB 3.0). Этого достаточно только для Arduino и одного маленького сервопривода SG90 без нагрузки. Для роборуки с несколькими сервоприводами USB-питание пригодно только для программирования и отладки без нагрузки.

Источник DC

Для стабильной работы роборуки с 4–6 сервоприводами среднего размера необходим внешний источник питания:

  • Напряжение: 5–6 В для SG90/MG90S, 6–7,4 В для MG996R/DS3218.
  • Ток: из расчёта 1–2 А на каждый активный сервопривод. Для 5 сервоприводов - минимум 5А, рекомендуется 8–10А с запасом.
  • Подходящие источники: сетевые блоки питания 5В/10А, Li-Po аккумуляторы 2S (7,4В) с понижающим DC-DC преобразователем.

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

Подключение сервомоторов

Схема подключения сервоприводов к Arduino:

  • Сигнальный провод (оранжевый/жёлтый) → PWM-вывод Arduino (D3, D5, D6, D9, D10, D11).
  • Красный провод (питание) → шина +5В от внешнего источника питания.
  • Коричневый/чёрный провод (земля) → общая шина GND. Земля внешнего источника и Arduino должны быть объединены.
Схема подключения трёх сервоприводов к Arduino Uno: сигнальные провода на D9, D10, D11, питание от внешнего источника 6В, общая земля

При подключении более 6 сервоприводов используйте PWM-расширитель PCA9685 на 16 каналов. Он подключается к Arduino по I2C (пины A4/SDA и A5/SCL), что освобождает цифровые выводы Arduino для других задач.

Схема подключения

Полная принципиальная схема роборуки: Arduino Uno, PCA9685, 5 сервоприводов MG996R, блок питания 6В/10А, кнопки джойстика - с подписями всех компонентов

Важно: обязательно объединяйте GND Arduino и GND внешнего источника питания. Без общей земли сигналы управления будут некорректными и сервоприводы будут дёргаться.

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

Для написания прошивки роборуки используется Arduino IDE. Установите последнюю версию с официального сайта arduino.cc. Если используете плату PCA9685, дополнительно установите библиотеку Adafruit PWM Servo Driver через менеджер библиотек.

Переменные

Структура переменных для управления роборукой:

Arduino

    // Углы сервоприводов (текущее положение)
    int angle_base     = 90;  // основание
    int angle_shoulder = 90;  // плечо
    int angle_elbow    = 90;  // локоть
    int angle_wrist    = 90;  // запястье
    int angle_gripper  = 30;  // захват (30 = открыт)

    // Пределы углов (защита от выхода за механические ограничения)
    const int BASE_MIN = 0,   BASE_MAX = 180;
    const int SHLDR_MIN = 30, SHLDR_MAX = 150;
    const int ELBOW_MIN = 20, ELBOW_MAX = 160;
    

Сигналы датчиков

Если используется потенциометр или джойстик для ручного управления, считываем аналоговый сигнал и переводим его в угол:

Arduino

    int raw = analogRead(A0);           // 0–1023
    int angle = map(raw, 0, 1023, 0, 180); // перевод в градусы
    angle = constrain(angle, 0, 180);   // ограничение диапазона
    

Функция constrain() защищает от выхода за пределы диапазона даже при нестабильных показаниях датчика.

Циклы и условия

Arduino

    void loop() {
    // Плавное движение к целевому углу
    int target = 120;
    while (angle_base != target) {
        if (angle_base < target) angle_base++;
        else angle_base--;
        servo_base.write(angle_base);
        delay(15); // скорость движения
    }
    }
    

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

Serial Monitor

Serial Monitor - незаменимый инструмент для отладки. Выводите текущие углы и состояния для диагностики:

Arduino

    void setup() {
        Serial.begin(9600);
    }

    void loop() {
        Serial.print("Base: ");
        Serial.print(angle_base);
        Serial.print("  Shoulder: ");
        Serial.println(angle_shoulder);
        delay(200);
    }
    

Также можно отправлять команды в роборуку через Serial Monitor в режиме реального времени, задавая углы текстом: B90 S120 E45 - команда на установку углов основания, плеча и локтя.

Управление движением

Функция плавного перемещения сервопривода:

Arduino

    void moveServo(Servo &servo, int ¤t, int target, int speed) {
        while (current != target) {
            current += (current < target) ? 1 : -1;
            servo.write(current);
            delay(speed); // меньше = быстрее
        }
    }

    // Использование:
    moveServo(servo_base, angle_base, 90, 15);
    

Библиотека Servo.h

Arduino

    #include <Servo.h>

    Servo servo_base;
    Servo servo_shoulder;

    void setup() {
        servo_base.attach(9);      // пин D9
        servo_shoulder.attach(10); // пин D10

        servo_base.write(90);      // начальный угол
        servo_shoulder.write(90);
        delay(500);
    }
    

Библиотека Servo.h входит в стандартную поставку Arduino IDE. Поддерживает до 12 сервоприводов на Arduino Uno (при использовании библиотеки занимает таймер Timer1). Если нужно больше 12 сервоприводов или нужен Timer1 для других задач - используйте PCA9685 с библиотекой Adafruit.

Скриншот Arduino IDE с кодом управления роборукой: открыт Serial Monitor, показаны текущие углы сервоприводов

Моя 3D-модель

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

Рендер авторской роборуки - вид в три четверти: 5 звеньев, двухпальцевый захват, все шарниры с подшипниками 608ZZ, основание с поворотным столом

Концепция

Рендер авторской роборуки - вид в три четверти: 5 звеньев, двухпальцевый захват, все шарниры с подшипниками 608ZZ, основание с поворотным столом

Концепция модели строилась вокруг трёх принципов:

  • Доступность - все компоненты можно купить на AliExpress или в местных магазинах электроники. Бюджет сборки не превышает 3 500–5 000 руб.
  • Ремонтопригодность - каждое звено разбирается без специального инструмента. Замена сервопривода занимает 10 минут.
  • Масштабируемость - конструкция позволяет легко добавить ещё одно звено или заменить захват на другой тип.

Параметры модели: 5 DoF + захват, рабочий радиус 320 мм, грузоподъёмность до 300 г при полном вылете, все сервоприводы MG996R кроме захвата (MG90S).

Ключевые улучшения

Детали авторской конструкции: слева - шарнир плеча с двойным подшипником 608ZZ, справа - захват с реечным механизмом, вид в разрезе

Что отличает эту модель от аналогов:

  • Двойные подшипники 608ZZ в нагруженных шарнирах - устраняет люфт и значительно увеличивает ресурс конструкции по сравнению с моделями, где вал просто вставляется в пластик.
  • Реечный механизм захвата - в отличие от тросикового привода, зубчатая рейка обеспечивает симметричное движение пальцев и не растягивается со временем.
  • Интегрированные каналы для кабелей - проводка проходит внутри звеньев, защищена от защемления при движении.
  • Резьбовые вставки M3 во всех точках крепления - позволяет разбирать и собирать руку многократно без износа резьбы.
  • Плоское основание с крепёжными отверстиями - можно закрепить на столе болтами M6 или зажимами, исключая опрокидывание при работе.
  • Совместимость с двумя типами запястья - одноосевое (проще) и двухосевое (карданный шарнир) - файлы для обоих вариантов включены в архив.

Скачать модель

Превью STL-файлов в Prusa Slicer: все детали роборуки расположены на платформе 250x210, цветовая маркировка по группам - звенья, захват, основание

Архив содержит:

  • STL-файлы всех деталей (разбиты по узлам).
  • Файлы проекта для PrusaSlicer с готовыми настройками печати.
  • Схему подключения (PDF).
  • Прошивку Arduino (файл .ino) с комментариями.
  • Список компонентов с ссылками на AliExpress.

⬇ Скачать файлы модели (ZIP, ~45 МБ)

Сборка и тестирование

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

Пошаговая сборка

Рекомендуемый порядок сборки - от основания к захвату:

  • Шаг 1. Запрессовать подшипники 608ZZ в основание и звенья. При необходимости использовать тиски или молоток через деревянную проставку.
  • Шаг 2. Установить резьбовые вставки M3 паяльником во все предназначенные для них отверстия. Температура паяльника - 200–220°C.
  • Шаг 3. Установить сервопривод основания в корпус, подключить кабель. Закрепить болтами M3×8.
  • Шаг 4. Прошить Arduino (см. следующий раздел) и установить все сервоприводы в нейтральное положение 90° программно.
  • Шаг 5. Установить диски (horn) сервоприводов, ориентируя их строго по оси движения. Закрепить самостопорящимися гайками.
  • Шаг 6. Собрать звенья последовательно, прокладывая кабели через внутренние каналы.
  • Шаг 7. Установить захват, подключить все кабели, проверить свободу движения всех суставов вручную.

Загрузка прошивки

Порядок загрузки прошивки:

  • Подключите Arduino к компьютеру через USB.
  • Откройте файл roboarm_v1.ino в Arduino IDE.
  • Выберите плату: Инструменты → Плата → Arduino Uno.
  • Выберите порт: Инструменты → Порт → COM3 (или другой активный порт).
  • Нажмите кнопку «Загрузить» (стрелка вправо). Прошивка загружается за 5–10 секунд.

Важно: перед загрузкой прошивки отключите внешнее питание сервоприводов, оставив только USB. После успешной загрузки подключите внешнее питание.

Калибровка

Процесс калибровки роборуки: рука в нейтральном положении 90° по всем осям, рядом Serial Monitor с выводом текущих углов

После загрузки прошивки проверьте нейтральное положение всех суставов:

  • Откройте Serial Monitor (Ctrl+Shift+M), установите скорость 9600 бод.
  • Отправьте команду HOME - рука должна принять нейтральное положение.
  • Проверьте, что каждое звено перпендикулярно или параллельно ожидаемому положению.
  • Если сервопривод стоит не в нейтрали - подправьте смещение в константах прошивки (OFFSET_BASE, OFFSET_SHOULDER и т.д.) и перезагрузите.

Типичные ошибки

  • Рука дёргается при старте - сервоприводы получают питание до инициализации угла. Решение: добавить задержку delay(1000) перед первым servo.write().
  • Сервопривод гудит и не держит позицию - недостаточный ток питания. Проверьте источник питания и убедитесь, что GND объединены.
  • Рука уходит в крайнее положение - перепутаны пины сигнала или неверно инициализирован объект Servo. Проверьте нумерацию пинов в коде.
  • Arduino перезагружается при движении руки - просадка напряжения из-за общей шины питания. Разделите питание Arduino и сервоприводов.

Системы управления

Три варианта управления роборукой: слева - джойстик PS2, в центре - смартфон с приложением по Bluetooth, справа - микрофон для голосового управления

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

Джойстик / потенциометры - самый простой вариант. Каждый потенциометр управляет одним суставом. Подключается напрямую к аналоговым входам Arduino. Не требует дополнительных модулей. Недостаток - нет возможности запомнить позицию или повторить движение.

Геймпад PS2 / Xbox - подключается через специальный приёмник или адаптер. Несколько кнопок и стиков позволяют управлять всеми суставами одновременно. Интуитивно понятное управление.

Bluetooth-приложение - модуль HC-05 или HC-06 ($2–5) подключается к UART Arduino. Написать простое приложение для Android можно в MIT App Inventor за несколько часов. Позволяет управлять рукой со смартфона и отправлять заранее запрограммированные позиции.

Управление с ПК через Python - наиболее гибкий вариант. Python-скрипт отправляет команды по Serial, может реализовывать сложные алгоритмы, обратную кинематику и запись/воспроизведение движений. Для работы с Serial используется библиотека pyserial.

Голосовое управление - реализуется через API распознавания речи (Google Speech, Vosk) на стороне ПК с передачей команд на Arduino по Serial. Для простых команд («домой», «захват», «отпусти») работает надёжно.

Компьютерное зрение - продвинутый вариант: камера определяет положение объекта, Python вычисляет нужные углы через обратную кинематику и отправляет их на Arduino. Используется OpenCV для обработки изображений.

Машиное зрение интерфейс управления роборукой по Bluetooth

Доработки и апгрейд

Схема возможных апгрейдов роборуки: стрелки от базовой версии к улучшенным вариантам - Dynamixel, сенсор давления, замена PLA на PETG, добавление камеры

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

Замена сервоприводов на Dynamixel - переход на умные сервоприводы с шиной данных даёт обратную связь по углу, скорости и нагрузке. Можно реализовать компланарное движение и защиту от перегрева. Стоимость выше на порядок, но возможности несравнимы.

Датчик давления в захвате - резистивный датчик давления (FSR) или тензодатчик позволяют контролировать усилие захвата. Рука перестаёт давить на хрупкие предметы с постоянным усилием и регулирует захват по обратной связи.

Энкодеры на суставах - замкнутая система управления с магнитными энкодерами AS5048 повышает точность позиционирования и позволяет компенсировать нагрузку.

Замена Arduino на ESP32 - встроенный Wi-Fi позволяет управлять рукой по сети без проводов. ESP32 значительно мощнее и может выполнять вычисления обратной кинематики локально.

Перепечатка деталей в PETG или нейлоне - если исходная конструкция печаталась в PLA, перепечатка в PETG увеличит ресурс и максимальную нагрузку.

Сменные захваты - разработайте систему быстрой смены захвата (например, на двух болтах M3). Магнитный, вакуумный и пальцевый захваты в одном наборе делают руку универсальной.

Интеграция с ROS - для серьёзных задач робототехники: пакет rosserial_arduino позволяет превратить Arduino в ROS-узел и использовать всю экосистему ROS - RVIZ, MoveIt, Nav2.

Компоненты и стоимость

Ниже приведён полный список компонентов для сборки роборуки по авторской 3D-модели. Цены ориентировочные, актуальны для заказа на AliExpress.

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

Компонент Модель / характеристика Кол-во Цена, руб.
Сервопривод плечо/локоть/запястьеMG996R4 шт.~1 200
Сервопривод захватMG90S1 шт.~180
Сервопривод основаниеDS3218 (20 кг/см)1 шт.~550
КонтроллерArduino Uno R31 шт.~400
PWM-расширительPCA96851 шт.~200
Блок питания5В / 10А (DC)1 шт.~600
Подшипники608ZZ (8×22×7 мм)10 шт.~150
БолтыM3 (набор 8–20 мм)100 шт.~120
Гайки NylocM3 самостопорящиеся30 шт.~60
Резьбовые вставкиM3 термовставки30 шт.~100
ПроводаDupont 20 см, набор1 набор~150
Пластик для печатиPETG, 0,5 кг1 кг~500
Итого~4 210 руб.

Если у вас уже есть Arduino и 3D-принтер - реальные затраты составят 2 000–2 500 руб. на компоненты и пластик.

Совет: заказывайте компоненты с запасом: 1–2 лишних сервопривода и набор болтов страхуют от задержек при случайном повреждении детали в процессе сборки.

Заключение

Готовая роборука в действии: захват кубика на столе, рядом Arduino и ноутбук с Arduino IDE, хорошее освещение, живая фотография

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

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

Если руководство оказалось полезным - сохраните ссылку и поделитесь с теми, кто интересуется робототехникой. Удачи в сборке!

Оставьте Ваш комментарий

Защита от ботов: Выберите фигуру "Звезда"
shape
shape
shape
shape

Рекомендуем также

  • Руководство
  • 3 видео

Что такое Arduino? почему стоит купить и как использовать

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