Файл: Манипулятор с микроконтроллерным управлением.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 25.10.2023

Просмотров: 91

Скачиваний: 7

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

34
Терминальная программа.
Исходный код терминальной программы представляет собой решение, которое состоит из нескольких частей. Рассмотрим ту часть, которая считывает положения мышки, состояния клавиш клавиатуры и после отправляет все эти значения на последовательный порт.
Рисунок 30 – Алгоритм работы терминальной программы
С полным кодом программы можно ознакомиться в приложение B.

35
Рисунок 31 – Фрагмент кода терминальной программы
Инициализировали переменные типа int и назначили им десятичный литерал.
Инициализировали переменные типа byte и назначили им шестнадцатеричный литерал. Bool проверяет соблюдение всех логических условий. Также обозначили максимальные и минимальные значения каждой переменной типа int.
Рисунок 32 – Фрагмент кода терминальной программы

36
Обработчик события движения курсора мыши. Возвращает курсор обратно в центр формы.
Рисунок 33 – Фрагмент кода терминальной программы
Обработчик событий нажатия на клавиши клавиатуры.
Рисунок 34 – Фрагмент кода терминальной программы
Обработчик событий отжатия клавиш клавиатуры.

37
В исходном коде терминальной программы, представленного в приложение B, присутствует еще довольно много обработчиков событий, помимо приведенных выше: обработчики события нажатия и отжатия на левую и правую кнопки мыши, нажатия на клавишу Esc, разворачивания списка доступных портов, нажатия на кнопку "Выход", нажатия на кнопку "?" и т. д.
Рисунок 35 – Фрагмент кода терминальной программы
В этом методе происходит конвертация сообщения из типа String в Byte и последующая запись полученного сообщения в последовательный порт.
Рисунок 36 – Фрагмент кода терминальной программы
В этом методе происходит формирование сообщений для записи в последовательный порт.

38
Рисунок 37 – Фрагмент кода терминальной программы
В этом методе происходит считывание данных из последовательного порта.
Рисунок 38 – Фрагмент кода терминальной программы
В этом методе происходит подготовка сообщений для записи их в последовательный порт. Вызов метода SendAsHex для записи подготовленных сообщений в последовательный порт.
Собранное решение представляет собой программу, состоящую из двух окон.

39
Рисунок 39 – Первое окно терминальной программы
Первое окно отвечает за выбор активного последовательного порта, за выбор скорости передачи данных, вызов справки. При нажатии на кнопку «Запуск» вызывается второе окно.
Рисунок 40 – Второе окно терминальной программы
Второе окно отвечает непосредственно за управление манипулятором, также можно увеличить скорость движения манипулятора. В графе состояния выводятся текущие положения каждого сервопривода


40 4. Экспериментальная часть
4.1. Инструкция по работе с устройством
1. Произвести осмотр стенда перед началом использования на наличие каких- либо повреждений.
2. Вставить шнур в блок питания.
3. Подключить плату ардуино к компьютеру.
4. Загрузить программу на плату управления.
5. Запустить файл программы Управление манипулятором.exe.
6. Выбрать задействованный последовательный порт в первом окне программы.
7. Для получения справки нажмите на вопросительный знак в первом окне программы.
8. Нажать кнопку включения/выключения на блоке питания.
9. Нажать на кнопку «Запуск» в первом окне программы для управления манипулятором.
В появившемся окне осуществляется непосредственно управление манипулятором:
1) с помощью движений мыши по оси x изменяется положение Servo
Naklonverhnii, по оси y изменяется положение Servo Osnova.
2) при нажатии на клавиатуре клавиш Q и E изменяется положение Servo
Naklonnizhnii
3) клавиши Z и X отвечают за изменение положения Servo Povorotzahvata
4) левая и правая кнопки мыши отвечают за положение Servo Zahvat
5) для увеличения скорости сервоприводов используются кнопки + и –
10. Чтобы закрыть окно управления манипулятором нажмите клавишу Esc на клавиатуре.
11. Чтобы закрыть стартовое окно нажмите на кнопку «Выход».

41 12. Для завершения работы с устройством, так же нужно нажать кнопку включения/выключения на блоке питания.
13. После завершения работы произвести осмотр стенда на наличие каких-либо повреждений. При обнаружение каких-либо повреждение дальнейшая эксплуатация устройства запрещена до момента устранения неполадок.

42 4.2. Проверка и отладка программной части устройства
Произвели проверку и окончательную отладку программной части. При управление манипулятором были замечены некоторые небольшие резкие рывки сервоприводов что приводит к колебанию всей конструкции манипулятора. Это происходит из-за того, что сервоприводы работают не с достаточно высокой точностью и на малые углы поворота могут не отреагировать. В скетче выставили наиболее стабильные значения начального, минимального и максимального положения каждого сервопривода, для устранения дребезга сервомоторов, добились более плавной работы манипулятора. В коде терминальной программы так же были опытным путем найдены и выставлены оптимальные значения переменных каждой оси управления и скорости управления каждым из сервоприводов, что позволило наиболее точно и без каких-либо трудностей производить управление манипулятором. Для проверки стабильности терминальной программы, во время работы с манипулятором внезапно отключали активный COM порт Arduino от компьютера, манипулятор остался в том же положении и никаких действий самостоятельно не производил.


43 5. Безопасность и экологичность устройства
При сборке и эксплуатации исследуемого устройства применялось различное оборудование, во время использования которого необходимо соблюдать определенные правила безопасности для предотвращения таких чрезвычайных ситуаций как короткое замыкание а в следствие и пожар: полную проверку состояния инструментов перед использованием, в частности электрических на наличие дефектов в кабелях питания, при обнаружении кабеля с оголенной частью, запрещена дальнейшая эксплуатация устройства до момента устранения дефекта.
При использование электрического оборудования, предназначенного для сверления технологических отверстий и резки материала, используемого при сборке устройства, необходимо тщательно следить за состоянием расходных материалов
(сверла, диски и т.п.), использовать защитное снаряжение для предотвращения травм (защитные очки или маску, перчатки и одежду из плотной ткани). При обнаружении неисправности во время использования инструмента, необходимо немедленно отключить его от сети. Во время эксплуатации паяльного оборудования так же нужно соблюдать технику безопасности: не браться за жало паяльника, не оставлять включенным без присмотра, держать в удаленности от легковоспламеняющихся материалов, рекомендуется пользоваться респиратором для защиты дыхательных путей от вредных испарений. Респиратор необходимо менять по истечению срока допустимой эксплуатации, указанного в регламенте или при существенном снижение рабочих характеристик респиратора. При соприкосновении флюса с открытым участком кожи необходимо тщательно промыть пораженное место водой. Если при работе с паяльником был получен ожог, нужно незамедлительно обратиться за медицинской помощью, желательно к врачу.
Также для предотвращения чрезвычайных ситуаций необходимо проводить инструктаж о пожарной безопасности перед использование устройства.
Помещение где проводится сборка и эксплуатация устройства должно удовлетворять всем требованиям к микроклимату СанПиН: температура,

44 вентиляция, уровень влажности должны поддерживаться в допустимых пределах.
Особенно необходимо иметь хорошее освещение, удовлетворяющее требованиям
СНиП,
для предотвращения утомляемости и вследствие травматизма. Уровень шума и вибраций от спроектированного устройства удовлетворяет всем нормам и никак не влияет на человека. Для управления манипулятором в нашем проекте используется персональный компьютер, следовательно, имеется такой вредный фактор как электромагнитное излучение, которое отрицательно влияет на внимание, память и зрение.
Конструкция рабочего места должна поддерживать удобное положение при работе со стендом, чтобы избежать утомления мышц и развития заболеваний опорно-двигательного аппарата. Монитор должен располагаться на рабочем месте перед глазами пользователя в пределах от 500 мм до 700 мм. Клавиатуру и мышь необходимо установить на рабочей поверхности на расстояние примерно 200 мм от края поверхности.


45 6. Экономическая часть
Смета расходов на компоненты, которые были использованы при сборке данного проекта представлена ниже.
Рисунок 41- Таблица расходов на компоненты

46
Заключение
Во время реализации выпускной квалификационной работы было осуществлено изучение всех существующих на сегодняшний день решений, связанных с темой нашего проекта. Проанализировав все преимущества и недостатки каждого решения, были выбраны наиболее перспективные для нас варианты. Исходя из выбранных способов реализации, был произведен тщательный подбор наиболее оптимальных компонентов, необходимых для нашего проекта. Далее была разработана схема конструкции стенда и описан весь процесс сборки. Показан принцип работы всех основных компонентов, задействованных в исследуемом устройстве. Создана терминальная программа управления манипулятором и программа для платы с полным управлением через компьютер, описан весь основной код данных программ.
Разработанный код был испытан на построенной модели манипулятора и впоследствии доработан. Составлена подробная инструкции по эксплуатации разработанного стенда. Так же осуществлена оценка безопасности и экологичности устройства. Была подготовлена смета на все задействованные при сборке устройства компоненты. Итогом выпускной квалификационной работы являются неплохие результаты управления манипулятором. Главным преимуществом является возможность применения разработанной программы для других устройств с разными вариациями конструкции и используемых компонентов. Однако заметны небольшие рывки при движении конструкции манипулятора, это происходит из-за особенностей выбранных сервоприводов. Разработанный манипулятор может эффективно использоваться в качестве демонстрационного стенда для изучения задач кинематики, динамики роботов и их программирования.

47
Список используемых источников
1.
Основы разработки и программирования робототехнических систем: учебное пособие / Сорокин С.В., Солдатенко И.С. – Тверь: Твер. гос. ун-т, 2017. – 157 с.
2.
Глибин Е.С. Программирование электронных устройств: электронное учеб. пособие / Глибин Е.С., Прядилов А.В. – Тольятти: Изд-во ТГУ, 2014.: 1 оптический диск
3.
Интегральные роботы: сборник статей / Поздняк Г. Е. – М.: Мир, 1973. –
213 с.
4.
Промышленные роботы. Кинематика, динамика, контроль и управление.
Серия «Библиотека инженера» / Булгаков А. Г., Воробьев В. А. – М.: СОЛОН-ПРЕСС,
2008. – 488 с.: ил.
5.
Моделирование, планирование траекторий и управление движение робота- манипулятора / Пол Р. – пер. с англ. М.: Наука, 1976. – 104 с.
6.
Программирование микронотроллерных плат Arduino / Соммер У. – Санкт-
Петербург: БХВ-Петербург, 2012. – 256с.
7.
C Sharp 6.0 Справочник. Полное описание языка, 6-е изд. / Албахари Д.,
Албахари Б. – пер. с англ. – М.: ООО «И. Д. Вильямс», 2016 – 1040с.
8.
Евстифеев А. В. Микроконтроллеры AVR семейства Mega. Руководство пользователя. - М.: Издательский дом Додэка-XXI, 2007. - 592 с.
9.
Шпак Ю. А. Программирование на языке С для AVR и PIC микроконтроллеров. – Москва: Додэка-XXI, МК-Пресс, 2007.
10.
Уроки робототехники. Конструкция, движение и управление. / Филиппов
С. А. – М.: Лаборатория знаний, 2017. – 176 с.
11.
Интернет магазин электронных компонентов «Импульс» [Электронный ресурс]. Режим доступа: https://www.impulsi.ru
(04.06.2018).


48 12.
Справочник языка программирования Arduino [Электронный ресурс].
Режим доступа: http://arduino.ru/Reference
13.
Справочник по
C#
[Электронный ресурс].
Режим доступа: https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference
14.
HC-SR04 User Guide [Электронный ресурс]: документация. – Режим: доступа http://www.mpja.com/download/hc-sr04_ultra.modguide.pdf
15.
MG996R Servo [Электронный ресурс]: документация. – Режим доступа: http://www.electronicoscaldas.com/datasheet/MG996R_Tower-Pro.pdf
16.
Arduino Mega 2560 datasheet [Электронный ресурс]: документация. –Режим доступа: http://microelectronicos.com/datasheets/arduinomega2560.pdf
17.
Как домашний настольный манипулятор может помочь в DIY
[Электронный ресурс]: статья. Режим доступа: https://geektimes.com/post/284962 18.
Robotic Arm Inverse Kinematics on Arduino [Электронный ресурс]: форум.
Режим доступа: https://www.circuitsathome.com/mcu/robotic-arm-inverse-kinematics-on- arduino
19.
Uarm манипуляторы [Электронный ресурс]. https://www.ufactory.cc/#/en
20.
Работа с последовательным портом Arduino [Электронный ресурс]: статья.
Режим доступа: http://www.customelectronics.ru/arduino-rabota-s-com-portom
21.
Elias Eliot, Tihomir Latinovic, Dayal R. Parchi, J. Srinivas. Design, Analysis and Fabrication of an Articulated Mobile Manipulator //
Department of Industrial Design
National
Institute of
Technology,
Rourkela
Odisha,
India,
2013.
URL: https://www.researchgate.net/publication/275770788 22.
Paula Useche Murillo, Robinson Jimenez Moreno, Oscar F Avilés S. Individual
Robotic Arms Manipulator Control Employing Electromyographic Signals Acquired by Myo
Armbands // International Journal of Applied Engineering Research Volume 11, Number 23,
2016. URL: https://www.researchgate.net/publication/314079352

49 23.
Pieter Dijkshoorn. Designing a generic software architecture for ARW manipulators // University of Twente, Enschede, Netherlands, November 2016. URL: https://www.ram.ewi.utwente.nl/calendar/details/designing-a-generic-software-architecture- for-arw-manipulators.html
24.
Mohd Ashiq Kamaril Yusoffa, Reza Ezuan Saminb, Babul Salam Kader
Ibrahimc. Wireless Mobile Robotic Arm // Faculty of Electrical and Electronics Engineering,
Universiti Tun Hussein Onn Malaysia, Batu Pahat, Johor, Malaysia, 2012. URL: https://www.researchgate.net/publication/271890997 25.
Mohd Aliffa, Shujiro Dohtaa, Tetsuya Akagia, Hui Lia. Development of a simple-structured pneumatic robot arm and its control using low-cost embedded controller //
Okayama University of Science 1-1 Ridai-cho, Kita-Ku, Okayama, Japan, 2012. URL: https://www.sciencedirect.com/science/article/pii/S1877705812025398

50
Приложение А
#include void readSerial(void); void dataToNormal(void); int data[9]; int value[4];
Servo Osnova;
Servo Naklonnizhnii;
Servo Naklonverhnii;
Servo Povorotzahvata;
Servo Zahvat; const int osnovaMin = 4; const int osnovaMax = 175; const int osnovaNormal = 80; const int naklonnizhniiMin = 0; const int naklonnizhniiMax = 180; const int naklonnizhniiNormal = 90; const int naklonverhniiMin = 0; const int naklonverhniiMax = 180; const int naklonverhniiNormal = 60; const int povorotzahvataMin = 0; const int povorotzahvataMax = 175; const int povorotzahvataNormal = 90; const int zahvatMin = 25; const int zahvatMax = 130; const int zahvatNormal = 25; int zahvat = zahvatNormal; void setup(){

51
Osnova.attach(2);
Naklonnizhnii.attach(3);
Naklonverhnii.attach(4);
Povorotzahvata.attach(5);
Zahvat.attach(6);
Zahvat.write(zahvatNormal);
Serial.begin(9600);
} void loop(){ readSerial(); dataToNormal(); if ( (value[0] <= naklonverhniiMax) & (value[0] >= naklonverhniiMin) ){
Naklonverhnii.write(value[0]);
} if ( (value[1] <= osnovaMax) & (value[1] >= osnovaMin) ){
Osnova.write(value[1]);
} if ( (value[2] <= naklonnizhniiMax) & (value[2] >= naklonnizhniiMin) ){
Naklonnizhnii.write(value[2]);
} if ( (value[3] <= povorotzahvataMax) & (value[3] >= povorotzahvataMin) ){
Povorotzahvata.write(value[3]);
} if ( (data[8] == 0x01) & (zahvat <= zahvatMax) ) {
Zahvat.write(zahvat++); data[8] = 0;
} if ( (data[8] == 0x10) & (zahvat >= zahvatMin) ){
Zahvat.write(zahvat--); data[8] = 0;
}
}