Целью данного проекта является разработка мобильного робота-манипулятор на платформе Arduino, который поможет решить различные проблемы в промышленной сфере.
Актуальность работы заключается в том, что в наше время многие предприятия в промышленной деятельности стараются автоматизировать непрерывный процесс создания продукта, тем самым решить различные проблемы в промышленном производстве, такие как увеличение производительности, недостаток рабочих рук, высокие затраты на оплату труда, облегчение тяжелого человеческого труда, сохранение здоровья человека. Промышленные роботы – хороший вариант внедрения принципа бережливости: достижении лучших результатов при меньшем потреблении ресурсов, минимум ошибок, точный расчет.
Были использованы методы: теоретический (сбор и анализ информации), описательный, практический (создание чертежей, изготовление деталей, сборка манипулятора и разработка программы), моделирование.
Использовалось оборудование: 3-D принтер, микроконтроллер Arduino Uno, провода, сервомоторы, винты, болты. Программное обеспечение: CorelDraw 2020, Tinkercad, Arduino.
Объектом исследования является управление сервоприводами манипулятора с помощью микроконтроллера.
Предмет исследования: робототехника.
Выводы: в результате проведенной работы был создан манипулятор с 4-мя подвижными механизмами, управление которого осуществляется потенциометрами. Опытным путем доказана эффективность его работы и предложено практическое применение устройства.
Перспективы использования результатов работы: Для дальнейшего развития проекта предполагается перенести управление манипулятором в приложение на телефоне, создание подвижной платформы на колёсах, что приведёт к повышению мобильности конструкции и решению больших задач.
Ключевые слова: робот,манипулятор, Arduino UNO, привод, модель, промышленное производство.
ВВЕДЕНИЕ
В 21 веке каждый человек знает о существовании роботов, и большинство людей пытается с их помощью облегчить себе жизнь. Разберёмся, что означает робот. Робот – это автоматическое устройство, предназначенное для осуществления механических операций, которое действует по ранее заложенной программе.
Современное производство неразрывно связано с понятием «робот». В этой сфере они помогают сократить производственные затраты и обезопасить человека от контакта с вредными веществами. Промышленные роботы в крупных городах уже активно используются по производству автомобилей, компьютеров, посуды, одежды, обуви и так далее [1].
Роботы могут осуществлять любые действия человека в промышленной сфере. Они служат для автоматизации изготовления продукта, то есть без человеческого вмешательства.
Наиболее распространённый робот на производстве – это манипулятор. Манипулятор – это совокупность пространственно-рычажного механизма и системы приводов, осуществляющая под управлением программируемого автоматического устройства действия подобные действиям руки человека [2]. Робот данного типа состоит из опорной части, плеча, руки, предплечья, кисти и захвата. Названия частей манипулятора также свидетельствует о его схожести с человеческой рукой [3].
Таким образом, роботы-манипуляторы актуальны на сегодняшний день и необходимы человечеству, для автоматизации технологического процесса, увеличения производительности и сохранения здоровья человека. Учитывая, что потребности человечества все время растут, всем предприятиям просто необходимо наладить точное, стабильное автоматизированное производство, даже в небольших городах.
Поэтому целью данного проекта является разработка мобильного робота-манипулятора на платформе Arduino, который поможет решить различные проблемы в промышленной сфере, такие как недостаток рабочих рук на производстве, малая автоматизация фабрик и заводов, высокие затраты на оплату труда, сохранение здоровья человека.
Гипотеза: Благодаря использованию современных инноваций в области робототехники, проектируемый робот-манипулятор позволит повысить эффективность работы.
Для реализации проекта были поставлены следующие задачи:
-выбрать оборудование для реализации проекта;
- произвести необходимые чертежи;
- изготовить детали;
- собрать конструкцию;
-разработать программу для управления манипулятором;
-протестировать манипулятор.
В результате проведенной работы был создан манипулятор с 4-мя подвижными механизмами, управление которого осуществляется потенциометрами. Опытным путем доказана эффективность его работы и предложено практическое применение устройства.
ОСНОВНОЕ СОДЕРЖАНИЕ
Промышленные роботы предназначены для замены человека при выполнении основных и вспомогательных технологических операций в процессе промышленного производства. При этом решается важная социальная задача - освобождения человека от работ, связанных с опасностями для здоровья или с тяжелым физическим трудом, а также от простых монотонных операций, не требующих высокой квалификации. Гибкие автоматизированные производства, создаваемые на базе промышленных роботов, позволяют решать задачи автоматизации на предприятиях с широкой номенклатурой продукции при мелкосерийном и штучном производстве. Промышленные роботы являются важными составными частями современного промышленного производства [4].
Целью данной работы является разработка мобильного робота-манипулятор. Манипулятор по принципу действия напоминает человеческую руку. В нём присутствуют поворотные соединения, которые обеспечивают наклон в плечевом соединении и сгибание в локте, механический захват, который позволит роботу хватать и перемещать предметы в разных направлениях. Отличительная черта данной конструкции - очень высокая гибкость, позволяющая роботу обходить многие препятствия. Кроме того, робот этого типа достаточно компактен.
Несмотря на очевидные преимущества конструкции, управлять таким роботом достаточно сложно. При перемещении каждого звена принцип минимального значения требуемого угла, и манипулятор движется не по прямой линии (как декартов, например), а выполняет довольно сложную траекторию, имитируя движения живой руки. В результате мысленное представление всех движений «руки» сильно затруднено, что создаёт трудности при программировании.
Перед реализацией манипулятора был разработан план по его созданию. Разработку всего манипулятора можно разбить на 5 главных этапов.
На первом этапе нужно было начертить схему работы механизмов и схему сборки. Робот должен вращаться вокруг своей оси, осуществлять движения рукой и предплечьем, а также захватывать детали с помощью клешни. На данном этапе мне помогли изученные ранее основы кинематики [5]. Для создания проекта также было необходимо разработать связующие детали, которые бы скрепляли главные механизмы. Чтобы была возможность управлять конструкцией с помощью программ, я использовал микроконтроллер. Выбор пал кна Arduino Uno, ведь среда разработки Arduino IDE достаточно проста и интуитивно понятна [6]. Обладая опытом программирования данного микроконтроллера, мне бы не составило большого труда реализовать работу манипулятора. Помимо этого, требовались сервоприводы и провода «папа-папа».
На втором этапе была проведена оценка создания данной работы с материальной точки зрения. Необходимо было оценить стоимость всех деталей конструкции. Так как микроконтроллер Arduino Uno уже имелся в наличии вместе с сервоприводами и проводами, то это позволило сэкономить средства. Решение сделать детали из 3 мм-ой фанеры были обусловлены доступностью и легкостью материала. Изготовление деталей осуществлялось 3-D принтером. Все эти материалы и инструменты были в наличии в Детском Технопарке «Кванториум», что позволило мне не заказывать никаких ресурсов. Но если учитывать только материалы, считая, что Arduino Uno, сервоприводы, провода и 3-D принтер присутствует, то проект обойдётся 400-500 руб.
На третьем этапе был произведен замер всех деталей. Это требовало точных расчётов, чтобы детали подходили друг к другу, и происходила исправная работа манипулятора. Мне понадобилась линейка, циркуль, штангенциркуль, карандаш, ручка. Замеры записывались в тетрадь, заведённую специально для этого проекта. Большинство размеров вычислялись с помощью математических действий.
На четвёртом этапе осуществлялась сборка конструкции после печати деталей. При правильно подобранных размерах детали должны образовывать единую конструкцию. На этом этапе нам понадобился также набор гаек и винтов, отвёртка, гаечные ключи для сборки конструкции, что привело бы к устойчивости манипулятора. При работе с данными инструментами и материалами обязательно должна соблюдаться техника безопасности. Отверстия в деталях для винтов были продуманы заранее. Благодаря относительной простоте конструкции со сборкой не должно было возникнуть проблем.
На пятом этапе происходила разработка программы управления манипулятором. Было принято решение сделать это с помощью потенциометров – переменных резисторов. Программирование осуществлялось в среде разработки Arduino IDE. Для вращения сервоприводами необходимо подключить библиотеку «Servo» [7]. Каждый переменный резистор должен отвечать за один сервопривод. В моём проекте использовано 4 сервопривода и 4 потенциометра, установленных на макетной плате. Загрузка программы осуществлялась по USB порту в Arduino Uno.
Описание проведенной работы.
Следуя выработанному плану у меня получился готовый продукт. Следует отметить, что все детали для проекта создавались самостоятельно в программе CorelDraw 2020 [8]. Эта программная среда была для меня неизвестной, поэтому я изучал её, не обладая теоретическими и практическими навыками. Несмотря на это, я довольно быстро приспособился к дальнейшей работе в ней. CorelDraw 2020 позволяет вырезать детали, работая с лазерами. Перед тем как начертить деталь, мне нужно было точно узнать её размеры (приложение №1). Также я решил смоделировать свой проект, чтобы визуально его представить. В этом мне помогла программа Tinkercad [9]. В ней можно сделать детали любых сложностей, сгруппировать их в одно целое. Дизайн этой программной среды является лёгким и интуитивно-понятным. Моделирование заняло небольшое время, но помогло представить готовое изделие (приложение №2).
Детали вырезались лазером в Центре детско-юношеского технического творчества (приложение №3). Для того, чтобы вырезать детали с помощью лазера мы загрузили чертежи с исходными данными в программу. Приступая к описанию самой конструкции следует сказать, что при создании проекта использовалась фанера толщиной 3мм. Манипулятор находится на подставке, выполненной также из фанеры. Отверстие в ней необходимо для хранения микроконтроллера Arduino Uno, а также для её соединения с сервоприводами с помощью проводов. К основной подставке винтами прикреплена платформа, на которой держится основание манипулятора. В ней сделано отверстие для сервопривода, управляющего вращением конструкции вокруг своей оси. К основанию крепятся 3 больших стены: боковые и задняя, 1 маленькая – передняя. Стены соединены друг с другом путём вставки выступов в отверстия. К каждой боковой стене прикреплён 1 сервопривод. Основание манипулятора с клешнёй соединяют 3 линии балок, скреплённых винтами. В центре установлена связующая часть между линиями, что придаёт устойчивость манипулятору. Сам механизм клешни держится на двух небольших платформах, в которых сделаны отверстие под сервопривод. С нижней платформой соединены две половины клешни, в начале которых находятся зубчатые шестерни. Балка прикреплена одним концом к сервоприводу, другим концом к одной из половинок клешни. Вращение сервомотора заставляет балку двигаться, балка передаёт движение одной половине клешни, которое также отдаёт его другой половине. Таким образом происходит работа клешни. Манипулятор может вращаться вокруг оси, наклоняясь и поднимаясь, чтобы захватить и удерживать деталь. В любой момент он может отпустить её. Общий вид робота-манипулятора представлен в приложении №4.
Программная часть, разработанная в среде Arduino IDE позволяет управлять манипулятором с помощью 4-ёх потенциометров (приложение №5). Каждый отвечает за 1 сервопривод. В начале программы инициализируем сервомоторы. [10] Я подключил библиотеку Servosmooth, которая позволяет делать движения сервоприводов мягче. Указываем порты, а также длины импульсов, при которых сервопривод может максимально вращаться в одну или другую сторону. Далее с помощью различных методов этой библиотеки: setSpeed, setAccel, setAutoDetach, tick настраиваем корректную работу сервомоторов. Затем берём из каждого потенциометра значение и отправляем его на сервомотор. Программа верно справляется с поставленной задачей. Помимо этого, можно управлять одновременно несколькими сервоприводами.
ЗАКЛЮЧЕНИЕ
Мы живём в мире будущего, что способствует созданию различных роботов для наилучшей жизни человека.
Мобильный робот-манипулятор актуален на сегодняшний день и является одним из наиболее перспективных видов роботов для использования в промышленной сфере.
Подводя итоги по проделанной работе, можно отметить, что поставленные на данный момент задачи были выполнены.
Создан программно-аппаратный комплекс для применения в промышленности или в образовании.
В ходе выполнения проекта был реализован программно-аппаратный комплекс, который состоит из платформы и составной части (манипулятор).
Была реализована программная составляющая, которая представляет собой прошивку микроконтроллера.
Наш проект недоработан до конца и весь его потенциал не раскрыт, поэтому я собираюсь улучшать свою работу. Сегодня в условиях мировой пандемии возникает необходимость в дистанционном управлении. В связи с этим, мы в дальнейшем планируем усовершенствовать проект, а именно перенести управление манипулятором в приложение на телефоне, тем самым создать дистанционное управление, что поможет не останавливать производственный процесс; создать подвижную платформу на колёсах, что приведёт к повышению мобильности конструкции и решению больших задач.
Реализовывая данный проект, хочется, чтобы робот-манипулятор имел практическое применения не только в крупных городах, но и в нашем крае. Забайкальский край богат полезными ископаемыми - уголь, золото, уран. Люди, работающие в данной области, дышат загрязнённым воздухом и их здоровье подвергается риску. Мой проект поможет автоматизировать процесс добычи и обработки ископаемых, обезопасив людей от вредного воздействия веществ. Также данная работа может использоваться и в образовательных целях для изучения робототехники.
СПИСОК ЛИТЕРАТУРЫ
Разработка промышленного робота манипулятора для специальных целей [электронный ресурс]. URL: https://cyberleninka.ru/article/n/razrabotka-promyshlennogo-robota-manipulyatora-dlya-spetsialnyh-tseley/viewer
Манипуляторы и промышленные роботы [электронный ресурс]. URL: https://studfile.net/preview/9280745/
Промышленные роботы манипуляторы [электронный ресурс]. URL: http://robo24.ru/promyshlennye-roboty
Промышленные роботы и манипуляторы [электронный ресурс]. URL: http://cncnc.ru/documentation/theory_of_mechanismus_and_machines/lect_19.htm
Кран-манипулятор общее устройство и принципы работы [электронный ресурс]. URL: https://r-hod.ru/articles/ustroystvo-manipulyatora-princip-raboty-kran-manipulyatora
Arduino IDE [электронный ресурс]. URL: https://www.arduino.cc/en/software
Используем сервопривод для Ардуино проектов [электронный ресурс]. URL: https://arduinoplus.ru/arduino-servoprivod/
CorelDraw [электронный ресурс]. URL: https://www.coreldraw.com/ru/
Tinkercad [электронный ресурс]. URL: https://www.tinkercad.com/
Библиотека [электронный ресурс]. URL: Servosmooth https://alexgyver.ru/servosmooth/
ПРИЛОЖЕНИЯ
ПРИЛОЖЕНИЕ №1
Работа в программе CorelDraw
ПРИЛОЖЕНИЕ №2
Моделирование конструкции в Tinkercad
ПРИЛОЖЕНИЕ №3
Работа с Лазером
ПРИЛОЖЕНИЕ №4
Общий вид конструкции
ПРИЛОЖЕНИЕ №5
Программа для управления манипулятором с помощью потенциометров
#include <ServoSmooth.h>
ServoSmooth servo1;
ServoSmooth servo2;
Servosmooth servo3;
Servosmooth servo4;
void setup() {
Serial.begin(9600);
servo1.attach(6, 600, 2400);
servo2.attach(7, 600, 2400);
servo3.attach(8, 600, 2400);
servo4.attach(9, 600, 2400);
servo1.setSpeed(50);
servo1.setAccel(0.3);
servo2.setSpeed(50);
servo2.setAccel(0.3);
servo3.setSpeed(50);
servo3.setAccel(0.3);
servo4.setSpeed(50);
servo4.setAccel(0.3);
servo1.setAutoDetach(false);
servo2.setAutoDetach(false);
servo3.setAutoDetach(false);
servo4.setAutoDetach(false);
}
void loop() {
servo1.tick();
servo2.tick();
servo3.tick();
servo4.tick();
int Pos1 = map(analogRead(A0), 0, 1024, 0, 180);
int Pos2 = map(analogRead(A1), 0, 1024, 0, 180);
int Pos3 = map(analogRead(A2), 0, 1024, 0, 180);
int Pos4 = map(analogRead(A3), 0, 1024, 0, 180);
servo1.setTargetDeg(Pos1);
servo2.setTargetDeg(Pos2);
servo3.setTargetDeg(Pos3);
servo4.setTargetDeg(Pos4);
}