Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Построение DIY SCARA-робота на Arduino — полное руководство

В этом уроке научимся строить SCARA-робота на Arduino. Покажу весь процесс: от проектирования до собственного графического интерфейса управления.

Смотрите видео или читайте ниже.

Обзор

Робот — 4 степени свободы, 4 шаговых двигателя NEMA 17. Сервопривод малого размера для захвата (эффектора). Мозг — Arduino UNO + CNC Shield + 4 драйвера A4988.

Построение DIY SCARA-робота на Arduino — полное руководство

Интерфейс на Processing: прямое и обратное кинематика. Прямая — ручное управление углами суставов (слайдеры слева), справа — рассчитанные X,Y,Z эффектора.

Обратная — задаем целевые X,Y,Z, программа сама считает углы суставов.

Построение DIY SCARA-робота на Arduino — полное руководство

Оба режима одновременно на одном экране — углы и координаты всегда синхронизированы.

Автоматический режим: кнопка «Save» запоминает позы, «Run» — воспроизводит циклически. Настройка скорости и ускорения в интерфейсе.

3D-модель SCARA-робота

Построение DIY SCARA-робота на Arduino — полное руководство

Проектировал в 3DEXPERIENCE SOLIDWORKS — спонсор видео.

3DEXPERIENCE SOLIDWORKS — Solidworks с облаком через платформу 3DEXPERIENCE. Доступ к данным/моделям из любой точки мира. Платформа включает приложения для продуктивности и управления.

Построение DIY SCARA-робота на Arduino — полное руководство

Project Planner — задачи, дедлайны, прогресс. 3D Markup — просмотр, заметки на любом устройстве. Облачный моделировщик SOLIDWORKS xDesign — в браузере, моделирование где угодно.

Построение DIY SCARA-робота на Arduino — полное руководство

Спасибо Solidworks за поддержку образования. Проверить можно по ссылкам:

Try 3DEXPERIENCE for free: www.solidworks.com/HTMTryNow

Learn more: www.solidworks.com/HTMLearnMore

Цель — большинство деталей 3D-печатаются. Всё печатается даже на малой площадке. GT2 шкивы тоже печатаемые, параметрические — меняем число зубьев, всё пересчитывается.

Построение DIY SCARA-робота на Arduino — полное руководство

1-й сустав: редукция 20:1 в две стадии кастомных шкивов. Ремни GT2 замкнутые: 200 мм и 300 мм. Суставы — два стопорных подшипника и один радиальный.

Построение DIY SCARA-робота на Arduino — полное руководство

2-й сустав: 16:1, та же схема. 3-й: 4:1, одна стадия. Суставы полые — провода моторов и микровыключателей внутри. На ремнях слоты под натяжные ролики.

Построение DIY SCARA-робота на Arduino — полное руководство

Захват — серва MG996R, легко менять пальцы под разные размеры. Z-ось — трапециевидный винт 8 мм, рука скользит по 4 гладким стержням 10 мм на линейных подшипниках. Высота = длина стержней (40 см). Винт на 2 см короче, или Z-мотор поднимаем на 2 см распорными гайками.

Модель на Thangs:

Построение DIY SCARA-робота на Arduino — полное руководство

Скачать сборку на Thangs.

STL для печати:

3D-печать деталей робота

Печатал на Creality CR-10 — отличный бюджетный принтер. Детали помещаются на Ender 3.

Построение DIY SCARA-робота на Arduino — полное руководство

Большинство — PLA+ (синий), шкивы и захват — обычный PLA. ~120 часов печати при 60 мм/с. База — 32 часа. При большей скорости — быстрее.

См. также: Лучшие 3D-принтеры для новичков и мейкеров [2021]

Все напечатанные детали:

Построение DIY SCARA-робота на Arduino — полное руководство

Важно: Horizontal Expansion = –0.1 мм в слайсере — точные размеры, лучшая посадка под подшипники, стержни, болты.

Сборка робота

Список механики (электроника — в разделе схемы).

Размеры болтов:

Построение DIY SCARA-робота на Arduino — полное руководство

Начинаю с базы. Вставляю радиальный подшипник 35×47 мм.

Построение DIY SCARA-робота на Arduino — полное руководство

Сверху — стопорный подшипник 40×60 мм (между шкивом и базой). С другой стороны базы — еще один стопорный 40×60 мм + соединительная муфта сустава.

Построение DIY SCARA-робота на Arduino — полное руководство

Сцепляю шкив и верхнюю часть 4 болтами M4×55 мм. Контровайки, затягиваю так: сустав крепкий, но свободно вращается.

Средний шкив (парный суставному, ремень 300 мм). Два подшипника 608 (сверху и снизу базы), болт M8×45 мм, шайба, контровайка.

Построение DIY SCARA-робота на Arduino — полное руководство

Шаговый мотор 1-го сустава (парный со средним шкивом, ремень 200 мм). 4 болта M3 в базу.

Построение DIY SCARA-робота на Arduino — полное руководство

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

Проверяю натяжение ремней. Если слабо — натяжные ролики. Болт M5×35 мм + гайки — натяжный ролик.

Построение DIY SCARA-робота на Arduino — полное руководство

Крепится в слоты по бокам ремня — натягиваю как надо. Натянул с обеих сторон. 1-й сустав готов.

Микровыключатель 1-го сустава. Провода запаял заранее — туго допаивать после. Болт M3×20 мм + гайка.

Построение DIY SCARA-робота на Arduino — полное руководство

Муфта сустава проходит близко к выключателю — один болт держит, во второе отверстие вставил короткий болт, заклеил снизу. Выключатель держится и работает.

Z-ось: на муфте сустава креплю нижнюю пластину Z.

Построение DIY SCARA-робота на Arduino — полное руководство

На ней — 4 зажима для гладких стержней. Вставляю стержни — плотная посадка, до муфты. Зажимаю болтами/гайками M4.

Построение DIY SCARA-робота на Arduino — полное руководство

Вставляю подшипник под трапециевидный винт. Декоративная крышка — чистый вид.

Первое плечо: две детали, сбитые болтами. Первая деталь — посадочные места под линейные подшипники (скользят по стержням). Вставка подшипников тугая — зависит от точности принтера. Рекомендую Horizontal Expansion и подгон под свой принтер. У меня два подшипника не вошли до конца — не критично.

Построение DIY SCARA-робота на Arduino — полное руководство

Собираю два куска плеча — 4 болта M5×25 мм.

Построение DIY SCARA-робота на Arduino — полное руководство

Мотор 2-го сустава. 3D-шкив GT2 20 зубьев (параметрический дизайн — работает хорошо). Фиксирую гайку трапециевидного винта.

Построение DIY SCARA-робота на Arduino — полное руководство

Ремни и шкивы 2-го сустава: 400 мм и 300 мм. Монтаж как для 1-го.

Построение DIY SCARA-робота на Arduino — полное руководство

Подшипники меньше: радиальный 30×42 мм, стопорный 35×52 мм.

Перед установкой муфты 2-го сустава — вставляю 6 болтов M4×20 мм в шестигранные слоты.

Построение DIY SCARA-робота на Arduino — полное руководство

На них крепится второе плечо. При необходимости — натяжные ролики (как раньше). Микровыключатель 2-го сустава. Плечо №1 собрано.

Построение DIY SCARA-робота на Arduino — полное руководство

Креплю второе плечо к муфте: болты, вставленные ранее в муфту.

Построение DIY SCARA-робота на Arduino — полное руководство

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

Построение DIY SCARA-робота на Arduino — полное руководство

У меня: расверлил 4.5 мм, использовал болты M5 вместо M4. В 3D-модели исправил: отверстия 3.5 мм, болты M4. Пересобрал 1-й сустав так же. Люфты почти ушли, остался только небольшой бэклеш ремней.

Второе плечо: мотор 3-го сустава.

Построение DIY SCARA-робота на Arduino — полное руководство

Меньший NEMA 17 (корпус 24 мм) — легче плечо.

Ремни/шкивы 3-го сустава: одна стадия, ремень 400 мм. Перед соединением нижней и верхней частей плеча — подключаю мотор и микровыключатель, провода через 2-й сустав.

Построение DIY SCARA-робота на Arduino — полное руководство

Провода эффектора: 4-проводной кабель от шагового (серва захвата — 3 провода).

Гайки M4 в слотах верхнего плеча — для крепления нижней части.

Построение DIY SCARA-робота на Arduino — полное руководство

Провода под крючки — подальше от движущихся частей.

Провода из 2-го сустава могут зацепляться гайками шкива — сделал простой держатель проводов.

Построение DIY SCARA-робота на Arduino — полное руководство

Провода по одной стороне плеча. Крышка 1-го плеча — на защелке.

Построение DIY SCARA-робота на Arduino — полное руководство

Руки собраны. Надеваю на стержни Z.

Построение DIY SCARA-робота на Arduino — полное руководство

Верхняя пластина Z: микровыключатель Z + 4 зажима стержней.

Построение DIY SCARA-робота на Arduino — полное руководство

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

Трапециевидный винт. Мой был длиннее — укоротил до 38 см металлопилой. 4-й мотор (Z). Муфта валов 5→8 мм.

Построение DIY SCARA-робота на Arduino — полное руководство

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

Кабельный менеджмент: коробки для проводов, стяжки.

Построение DIY SCARA-робота на Arduino — полное руководство

Перед укладкой в короба — маркирую каждый провод.

Эффектор: захват на серве MG996R. Два стержня 6 мм — пальцы скользят по ним.

Построение DIY SCARA-робота на Arduino — полное руководство

Пальцы — к рогу сервы через 3D-рычаги, болты/гайки M3. Всё на M3. Полный список болтов/гаек в статье. Места тесные — нужно терпение.

Построение DIY SCARA-робота на Arduino — полное руководство

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

Построение DIY SCARA-робота на Arduino — полное руководство

Подключаю серву к заложенным проводам.

Механика SCARA полностью собрана. Осталась электроника.

Схема SCARA-робота

Arduino UNO + CNC Shield + 4 драйвера A4988.

Построение DIY SCARA-робота на Arduino — полное руководство

Хотя это робот, электроника минимальна. Можно вместо UNO — Arduino MEGA + RAMPS (3D-принтерный контроллер).

Напечатал корпус для Arduino, крепится к базе. Микрошаг 1/4 — перемычки в нужных пинах. Подключаю моторы и микровыключатели к CNC Shield.

Построение DIY SCARA-робота на Arduino — полное руководство

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

Построение DIY SCARA-робота на Arduino — полное руководство

Компоненты:

Питание: 12V, мин. 4А (лучше 6А). Зависит от настройки тока драйверов — ставьте минимум.

Построение DIY SCARA-робота на Arduino — полное руководство

Укладываю провода в корпус, радиаторы драйверов оставляю открытыми, закрываю крышкой.

Финал сборки

Робот собран. Нужно зафиксировать базу. Использую доску 20 мм. Внизу базы 12 отверстий. Распечатал чертеж базы, сверлил по нему.

Построение DIY SCARA-робота на Arduino — полное руководство

Снизу зенкеровал — втулковые болты вровень с деревом. Гайки M4 в слоты базы, затягиваю деревянную базу к роботу.

Построение DIY SCARA-робота на Arduino — полное руководство

Идеально — приболтить к столу, я — зажимы.

Построение DIY SCARA-робота на Arduino — полное руководство

SCARA готов. Осталось посмотреть, как работает.

См. также: DIY манипулятор Arduino с управлением со смартфона

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

Два метода позиционирования: прямая и обратная кинематика.

Прямая — позиция/ориентация эффектора из заданных углов суставов.

Построение DIY SCARA-робота на Arduino — полное руководство

Обратная — углы суставов для заданной позиции эффектора. Это основной режим робототехники: нужно поставить инструмент в точку X,Y,Z.

Обратная кинематика вычисляет углы по координатам.

Построение DIY SCARA-робота на Arduino — полное руководство

Уравнения — из тригонометрии.

Программирование SCARA-робота — код Arduino и Processing

Коды внизу статьи.

Прямая кинематика в Processing:

// FORWARD KINEMATICS void forwardKinematics() { float theta1F = theta1 * PI / 180; float theta2F = theta2 * PI / 180; xP = round(L1 * cos(theta1F) + L2 * cos(theta1F + theta2F)); yP = round(L1 * sin(theta1F) + L2 * sin(theta1F + theta2F)); }

X,Y эффектора из углов theta1, theta2 и длин L1, L2.

Обратная кинематика — углы theta2, theta1 из X,Y:

// INVERSE KINEMATICS void inverseKinematics(float x, float y) { theta2 = acos((sq(x) + sq(y) - sq(L1) - sq(L2)) / (2 * L1 * L2)); if (x < 0 & y < 0) { theta2 = (-1) * theta2; } theta1 = atan(x / y) - atan((L2 * sin(theta2)) / (L1 + L2 * cos(theta2))); theta2 = (-1) * theta2 * 180 / PI; theta1 = theta1 * 180 / PI; // Коррекция квадрантов if (x >= 0 & y >= 0) { theta1 = 90 - theta1; } if (x < 0 & y > 0) { theta1 = 90 - theta1; } if (x < 0 & y < 0) { theta1 = 270 - theta1; phi = 270 - theta1 - theta2; phi = (-1) * phi; } if (x > 0 & y < 0) { theta1 = -90 - theta1; } if (x < 0 & y == 0) { theta1 = 270 + theta1; } // Угол phi — ориентация захвата параллельно оси X phi = 90 + theta1 + theta2; phi = (-1) * phi; if (x < 0 & y < 0) { phi = 270 - theta1 - theta2; } if (abs(phi) > 165) { phi = 180 + phi; } theta1=round(theta1); theta2=round(theta2); phi=round(phi); cp5.getController("j1Slider").setValue(theta1); cp5.getController("j2Slider").setValue(theta2); cp5.getController("j3Slider").setValue(phi); cp5.getController("zSlider").setValue(zP); }

Коррекция углов по квадрантам («if»). Для нашей конфигурации — обратная кинематика по двум звеньям. Третий угол «phi» — ориентация захвата.

Построение DIY SCARA-робота на Arduino — полное руководство

GUI на библиотеке controlP5 (Processing). Слайдеры — углы суставов, текстовые поля — целевые координаты. Каждое действие → данные в Arduino через Serial.

if (gripperValuePrevious != gripperValue) { if (activeIK == false) { gripperAdd = round(cp5.getController("gripperValue").getValue()); gripperValue=gripperAdd+50; updateData(); println(data); myPort.write(data); } }

Пакет данных: статус Save/Run, углы 3 суставов, Z, захват, скорость, ускорение.

public void updateData() { data = str(saveStatus) +","+str(runStatus) +","+str(round(cp5.getController("j1Slider").getValue())) +","+str(round(cp5.getController("j2Slider").getValue())) +","+str(round(cp5.getController("j3Slider").getValue())) +","+str(round(cp5.getController("zSlider").getValue())) +","+str(gripperValue) +","+str(speedSlider) +","+str(accelerationSlider); }

Arduino получает одну строку, парсит в массив data[10].

if (Serial.available()) { content = Serial.readString(); for (int i = 0; i < 10; i++) { int index = content.indexOf(","); data[i] = atol(content.substring(0, index).c_str()); content = content.substring(index + 1); } /* data[0] - SAVE, data[1] - RUN, data[2] - J1, data[3] - J2, data[4] - J3, data[5] - Z, data[6] - Gripper, data[7] - Speed, data[8] - Accel */

SAVE → сохраняю текущие углы (в шагах) в массивы.

if (data[0] == 1) { theta1Array[positionsCounter] = data[2] * theta1AngleToSteps; theta2Array[positionsCounter] = data[3] * theta2AngleToSteps; phiArray[positionsCounter] = data[4] * phiAngleToSteps; zArray[positionsCounter] = data[5] * zDistanceToSteps; gripperArray[positionsCounter] = data[6]; positionsCounter++; }

RUN → исполняю сохраненные шаги.

Управление шаговыми — библиотека AccelStepper. Отличная для множества моторов, но ограничение: не может делать разгон/торможение при одновременном движении нескольких моторов — важно для плавности робота.

stepper1.moveTo(stepper1Position); stepper2.moveTo(stepper2Position); stepper3.moveTo(stepper3Position); stepper4.moveTo(stepper4Position); while (stepper1.currentPosition() != stepper1Position || stepper2.currentPosition() != stepper2Position || stepper3.currentPosition() != stepper3Position || stepper4.currentPosition() != stepper4Position) { stepper1.run(); stepper2.run(); stepper3.run(); stepper4.run(); }

Реализовал разгон/торможение, но не так плавно, как хотел.

Полные коды Arduino и Processing в статье.

Итоги

Прошиваю Arduino, запускаю Processing, включаю питание — робот едет в парковку.

Построение DIY SCARA-робота на Arduino — полное руководство

Далее — ручное управление или авто. Можно вешать любой эффектор: 3D-принтерный хотэнд → робот-принтер, лазерная головка — лазерный резак. Планирую попробовать — подписывайтесь.

Заметки: робот менее жесткий, чем ожидал.

Построение DIY SCARA-робота на Arduino — полное руководство

Проблема: вся Z-ось и плечи держатся на 1-м суставе. Вес + инерция при движении деформируют пластик базы. Ремни тоже дают бэклеш. Но проект хорош для понимания SCARA и вдохновения строить свой.

Вопросы — в комментариях. Коллекция Arduino-проектов.

Производственный процесс

  1. Создание пользовательских объектных датчиков для LEGO Mindstorms EV3: DIY световые «глаза»
  2. Создание интернет-управляемого видеostreaming-робота на Arduino и Raspberry Pi
  3. Белая книга: Раскройте свой потенциал автоматизации — 7 проверенных шагов к робототехническим проектам с низк…
  4. Сборка Саурона: Полугуманоидный робот на Arduino Mega 2560 – Полное руководство
  5. Создание надежного монитора энергии и логгера данных на Arduino — пошаговое руководство
  6. Создание универсального ИК-пульта на Arduino: пошаговое руководство
  7. Выбор идеального SCARA-робота: Полное руководство для производителей
  8. LittleArm 2C: 3D-печатаемый робот-манипулятор на Arduino для STEM-обучения
  9. Автоматическая дверь на Arduino с ультразвуковым датчиком HC-SR04
  10. 7 шагов к построению успешной дорожной карты автоматизации