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

Автор Михаил, Среда, марта 25, 2020, 20:25:27

« предыдущая тема - следующая тема »
Вниз

Михаил

Среда, марта 25, 2020, 20:25:27 Последнее редактирование: Суббота, апреля 11, 2020, 00:30:30 от Михаил
Тема: Микроконтроллерная система управления роботом манипулятором
Исполнитель: Потемкин М.С. 641 - об
Руководитель:Скрипко Ольга Валерьевна, профессор кафедры АПП и Э, доктор техн. наук.

Введение

  Научной проблемой проекта является разработка СУР роботом на базе микроконтроллера, поддерживающую обмен данными между микроконтроллером и персональный компьютером через USB порт, предоставляющую возможность пользователю программировать траекторию движения робота.
  Целесообразность темы заключается в разработке новой системы управления на МК и создания ПО проводится с целью улучшения удобства при работе с учебным роботом-манипулятором.
  Основанием выполнение проекта является:
  • знание архитектуры микроконтроллеров AVR, принципов и языков программирования;
  • умение программировать манипуляционные устройства на базе микроконтроллера, приобретенное в студенческом конструкторском бюро;
  • полученный грант за научный вклад в разработку СУР роботом манипулятором.

  Исходные данные для выполнения проекта:
  • робот манипулятор «УР-4»;
  • драйверы шаговых двигателей TB6560-V2;
  • микроконтроллер фирмы AVR;
  • ПО для программирование микроконтроллеров фирмы AVR Atmel studio 7.0;
  • ПО для разработки оконных приложений windows forms c# Microsoft visual studio 2012.

  Актуальность данного проекта заключается в следующем, исходная система управления роботом (СУР) манипулятором на базе котроллера OMRONCP1L-M30DT-D, по типу движения, относится к дискретной позиционной, движение происходит по шагами "от точки точке",  но каждый шаг осуществляется только по двум координатам. Для программирования движения используются языки: релейных диаграмм LD и  язык функциональных блок-схем FBD.
  Первая модернизация робота, сделанная Пилецким Павлом, состояла в переводе СУР на дискретное позиционное управление движением по всем координатам. Для чего была выбрана CNC-система Mach 3, использующая G-коды.
Вторая модернизация робота, проведенная Бова Дмитрием, состояла в отказе от управления с помощью CNC-системы в пользу собственной разработке на микроконтроллере PIC16. Управление движением осуществляется как дискретное позиционное по всем координатам.
  Актуальность следующей модернизации заключается в разработке микроконтроллерной СУР, осуществляющей дискретное позиционное по всем координатам непрерывное движение, с открытым и понятным протоколом управления шаговыми двигателями. Позволяющим программировать траекторию движения с использованием функций API Windows и распространённых языков программирования.
Новизна проекта состоит в том, что для обмена данными между компьютером и микроконтроллером используется USB интерфейс, в отличие от предыдущих СУ, что является удобнее в использовании. СУР представленная в проекте осуществляет дискретное позиционное по всем координатам непрерывное движение, позволяющая пользователю программировать траекторию движения.
  Робот манипулятор является лабораторным стендом предназначенным для наглядного изучения технических характеристик и построения систем автоматизации. УР-4 служит для демонстрации разработок различных систем управления, алгоритмов движения робота, разработанными студентами студенческого конструкторского бюро.
  Практическая значимость данного проекта заключается в совмещении работы компьютера и микроконтроллера, посредством обмена данными по USB порту, для управления роботом манипулятором «УР-4».


Описание объекта автоматизации

В данном проекте объектом автоматизации является лабораторный стенд «Средства автоматизации и управления робота манипулятора «САУ-РОБОТ», предназначенный для наглядного изучения технических характеристик, а также построения системы автоматизации на базе робота манипулятора. Внешний вид робота изображен на рисунке 1.


Рисунок 1 - Учебный робот


«УР - 4» установлен на металлическую платформу с координатной сеткой с нанесенной на ней системой координат. Рабочее пространство робота оснащено различными датчиками технологической информации. «УР - 4» имеет возможность работать ка в декартовых, так и в цилиндрических координатах, для чего на платформе нанесены углы поворота платформы и декартовая координатная сетка (см. рис. 2).
Робот - манипулятор может осуществлять движение по трем осям: вылет стрелы - ось X; спуск/подъем стрелы - ось Y; поворот стрелы вокруг своей оси - ось Z. Также приводить в движение схват робота.


Рисунок 2 - Платформа


За спуск/подъем и вылет стрелы отвечают шаговые двигатели GD57STH56-2808A.
За поворот стрелы вокруг своей оси отвечает шаговый двигатель GD57STH76 марки 2006A.
Схват робота приводится в движение гибридным шаговым двигателем Nema 17 42CM06.
Из выше сказанного можно сделать вывод о том, что звенья робота-манипулятора осуществляют движения с помощью шаговых двигателей установленных на осях робота.

Система управления, предложенная Пилецким П.Е.

В 2017 году  была собрана система управления ШД представленная на рисунке 3. Каждый ШД подключен непосредственно к своему драйверу шагового двигателя. Драйвер управляет ШД по протоколу STEP/DIR. Сигнал STEP - шаг, один импульсный сигнал инициирует поворот двигателя на один шаг. Сигнал DIR - сигнал задающий направления вращения двигателя. Данные сигналы поступают c ПК, проходя через плату коммутации драйверов шаговых двигателей, все управление осуществляется с помощью программного обеспечения, для ЧПУ - станков, MACH3. Подключение данной системы управления к компьютеру осуществляется через LPT-порт.


Рисунок 3 - СУ ШД


Схема включает в себя:
  • ДШД - драйвер шагового двигателяTB6560-1;
  • ШД - шаговый двигатель;
  • BOB 5x2 - плата коммутации драйверов шаговых двигателей;
  • A+,A-,B+ и B- - выводы обмоток двигателя;
  • N - число шагов (сигнал Step);
  • D - направление вращения двигателя (сигнал Dir);
  • LPT-порт- параллельный порт ПК;
  • ПК - персональный компьютер.


Плата коммутации драйверов шаговых двигателей - BOB-5x2, визуальный вид представлен на рисунке 4. Подключается к ПК осуществляется через LPT-порт. Поддерживает управление пятью осями. Имеет пять дискретных входов и один аналоговый выход 0-10 В. Так же есть возможность управления силовой нагрузкой с помощью реле. Все управляющие входы оптоизолированы.


Рисунок 4 - Плата ВОВ 5х2


Драйвер шагового двигателя TB6560-V2- это электронное устройство, которое управляет шаговым двигателем по результатам полученных сигналов управления, визуальный вид представлен на рисунке 5.


Рисунок 5 - Драйвер TB6560-V2


Система управления, предложенная Бовой Д.Е.

В 2018 году была модернизирована система управления ШД путем добавления микроконтроллера PIC16F870. Разработанная система на МК из семейства PIC поддерживает три режима управления: ручной, автоматический и покоординатный. Также имеет возможность управления всеми осями робота. Структурная схема системы представлена на рисунке 6. В данной системе управления для формирования задержек с большой точностью в микросекундах применяется микроконтроллер.


Рисунок 6 - СУ ШД С МК PIC16F870


Схема включает в себя:
  • ДШД - драйвер шагового двигателя;
  • ШД - шаговый двигатель;
  • BOB 5x2 - плата коммутации драйверов шаговых двигателей;
  • A+, A-, B+ и B- - выводы обмоток двигателя;
  • N - число шагов (сигнал Step);
  • D - направление вращения двигателя (сигнал Dir);
  • ПК - персональный компьютер;
  • МК - микроконтроллер PIC.


В данной системе управления микроконтроллер применяется для реализации схемы управления протоколом STEP/DIR. На рисунке 7 представлен микроконтроллер PIC16F870.


Рисунок 7 - PIC16F870


Предложение новой системы управления


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


Основными компонентами системы управления являются: микроконтроллер, драйверы шаговых двигателей, датчики концевые и технологической информации, персональный компьютер.
Микроконтроллер используется для подачи сигналов на ДШД, т.е. сигнал шага в виде единичного импульса, сигнал направления вращения вала двигателя и сигнал разрешения работы двигателя. Также микроконтроллер опрашивает сенсоры, ведет обмен данными с ПК используя текстовый протокол обмена данными, отправляя компьютеру информацию ДТИ и концевых выключателей. Еще одной функцией является передача числа шагов шагового двигателя в протокол STEP/DIR, на выходе которого осуществляется подача сигналов на ДШД.
В данном проекте для отработки алгоритма программы управления шаговыми двигателями и разработки текстового протокола используется микроконтроллерная платформа Arduino UNO R3, визуальный вид представлен на рисунке 9.
Arduino - это маленькое электронное устройство, состоящее из одной печатной платы, которое способно управлять разными датчиками, электродвигателями, освещением, передавать и принимать данные.


Рисунок 9 - Arduino UNO R3


Описание протокола STEP/DIR

Управление шаговыми двигателями осуществляется по протоколу STEP/DIR. Для управления используются три сигнала
Сигнал STEP - шаг. Каждый импульс инициирует поворот двигателя на один шаг. Если драйвер работает в полу шаговом или микро шаговом режимах, то поворот происходит не на физический шаг двигателя, а на часть шага, определяемого режимом. Для полу шагового режима это половина физического шага, для микро шагового - микро шаг. Частота следования импульсов, определяющая скорость вращения вала двигателя.
Сигнал DIR - сигнал задающий направления вращения двигателя. При высоком уровне сигнала двигатель вращается по часовой стрелке, при низком против часовой. Сигнал DIR должен формироваться раньше формирования импульсов сигнала STEP.
Сигнал ENABLE - сигнал разрешения работы драйвера. Разрешающий уровень сигнала ENABLE - низкий, т.е. отсутствие напряжения, запрещающий естественно наоборот. В нашем случае сигнал ENABLE не используется, поэтому в дальнейшем его можно не учитывать.
Исходя из всего выше сказанного можно составить временную диаграмму работы протокола STEP/DIR (см. рис. 10), в дальнейшем на основании этой диаграммы будет написано программное обеспечение для управления шаговыми двигателями.


Рисунок 10 - Временная диаграмма протокола STEP/DIR


Схема включает в себя:
  • CW(DIR) - сигнал определяющий направление вращения двигателя (при высоком уровне сигнала двигатель вращается по часовой стрелке, при низком уровне - в противоположную сторону);
  • CLK(STEP) - шаг, это тактирующий сигнал, один импульс говорит о том, что ротор двигателя надо повернуть на один шаг;
  • EN(EN) - сигнал удержания ротора двигателя после совершения шага.
  • Ти - длительность импульса сигнала;
  • Т - период импульса сигнала.



Разработка протокола связи ПК - Микроконтроллер

Протокол обмена данными - набор правил, соглашений которые определяют обмен данными между различными программами. В проекте используется текстовый протокол на основе АТ команд для передачи данных с приложения верхнего уровня (ПК) на микроконтроллер и наоборот.
АТ команды представляют собой тестовый протокол обмена данными начиная с символов «AT», в переводе с английского слова (attention)
внимание.
Стандартным ответом на команду AT является последовательность символов «OK».
Каждая команда начинается с символов «AT», далее следует последовательность символов, чисел, параметров. Заканчивать команду принято символами перевода строки «\r\n», где символы «\r» и «\n» возврат в начало и переход на новую строку соответственно. В нашем случае мы будем использовать эти символы в десятеричной форме, где 13 соответствует перемещению курсора в начало строки, а 10 соответствует переходу на новую строку.
Cоздан следующий набор AT команд:
Таблица 1- Набор используемых команд




Рассмотрим пример обработки стандартной команды «АТ»

Описание алгоритма

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


Рисунок 11 - Обработка пришедших данных в порт UART


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


Рисунок 12 - Обработка команды «AT»


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

Описание программы

Переходим к выполнению основного цикла программы (см. рис. 11).


Рисунок 13 - Запись данных с UART в массив


В начале основного цикла программы проверяется наличие байтов в последовательном порте МК, если порт пуст обнуляется счетчик тайм-аута равному 50 мс и индекс массива Text. Если поступили символы и пока они поступают в порт происходит запись символов в массив Text, между поступлениями символов удерживается пауза в 16 мс. Задержка необходима т.к. UART работает медленнее, чем CPU микроконтроллера. Исходя из этого составим временную диаграмму текстового протокола (см. рис. 14).


Рисунок 14 - Временная диаграмма текстового протокола


Схема включает в себя:
  • D - сигнал определяющий прием байта по uart;
  • Т1 - длительность получения байта;
  • Т - период записи байта в массив Text[].



Переходим к обработке поступившей команды от ПК, первой обрабатывается команда проверки связи между МК и ПК (см. рис. 12).

Рисунок 15 - Проверка команды «АТ»


Если время тайм-аута истекло и данные не поступают в порт, начинается проверка элементов массива Text на последовательность символов одной из набора АТ команд (см. табл.1). Проверка начинается с нулевого элемента, если он не соответствует символу «А», значит пришла некорректная команда и выходит из подпрограммы обработки массива, иначе если совпадает проверяется первый элемент массива на соответствие символу «Т», при несоответствии символа выводится в порт сообщение об ошибке «Bad» и выходим из подпрограммы обработки массива. Далее ведется проверка на наличие кода символа возврата каретки «13», при несоответствии выходим из подпрограммы, по аналогии проверяется код символа перехода на новую строку «10». При успешной обработки команды в последовательный порт выводится сообщение «OK» и обнуляется массив Text, содержащий полученную команду.

Разработка ручного управления ШД с помощью матричной клавиатуры

Для управления роботом в ручном режиме будем использовать матричную клавиатуру 3х3, это количество кнопок достаточно для управления всеми осями робота и схватом. Подключение матричной клавиатуры к Arduino приведено в приложении B.
Для управления матричной клавиатуры объявим следующие переменные: TIME_OUT_KEYPAD - время тайм - аута проверки состойний кнопок матричной клавиатуры; timeOutCount_but - счетчик времени, увеличивающийся в прерываниях по таймеру, по достижению переменной timeOutCount_but значения TIME_OUT_KEYPAD происходит проверка состояний кнопок клавиатуры; массив key хранящий номера кнопок; переменная symbol для хранения номера нажатой кнопки; переменные st и j хранящие номера опрашиваемых столбца и строки соответственно. Код программы приведен на рисунке 16.


Рисунок 16 - Объявление переменных для работы матричной клавиатуры


Матричную клавиатуру подключаем к аналговым выходам Arduino, аналоговые выходы соответствую цифровым выходам микроконтроллера Atmega328. Будем работать с ними как с цифровыми с использованием языка C для AVR. На рисунке 17 представлено соответствие выходов Arduino и Atmega328.


Рисунок 17 -  Распиновка Arduino UNO


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


Рисунок 18- Конфигурация порта С на МК


В основной программе проверяется не достигло ли значение переменной timeOutCount_but значения 200, соответствующее 50 мс. При достижении этого значения начинается сканирование клавиатуры, по столбцам подаются нули. При подаче нуля на первый столбец проверяются выходы МК к которым подключены строки на низкий уровень сигнала. При нахождении входа в состоянии 0 выбирается символ из массива key с элементами соответствующими проверяемому столбцу и строки на которой был обнаружен низкий сигнал, далее символ, т.е. номер кнопки сохраняется в переменной symbol. В конце проверки клавиатуры выставляется высокий сигнал на выходе соответствующему проверяемому столбцу и обнуление счетчик времени. [5] Код программы приведен на рисунке 19.


Рисунок 19 - Проверка состояний кнопок матричной клавиатуры


После обнаружения нажатой кнопки ведется проверка, какая клавиша нажата при нахождении нажатой кнопки устанавливается соответствующий сигнал DIR и вызывается функция коммутриующая фазы двигателя, ниже (см. рис. 20) представлен код для вращения оси X при нажатии на кнопку 4 влево, 6 вправо.


Рисунок 20 - Управление осью X


Функциональная схема управления шаговыми двигателями представлена на рисунке 21.


Рисунок 21 - Функциональная схема управления шаговыми двигателями


БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Purelogic.ru : Плата коммутации драйверов ШД/СД [Электронный ресурс] : © Purelogic R&D.- 2007 .- Режим доступа: https://purelogic.ru/- files/downloads/doc/Controller/BOB-5x2_Purelogic.pdf/. (Дата обращения: 15.03.2020);
2. Что такое Aeduino и что с ним можно делать //https://www.kakprosto.ru// URL: https://www.kakprosto.ru/kak-920473-chto-takoe-arduino-i-chto-s-nim-mozhno-sdelat (Дата обращения: 15.03.2020);
3. Arduino.ru //arduino.ru// URL: http://arduino.ru/About (Дата обращения: 15.03.2020)
4. Уроки программирования Arduino // mypractic.ru// URL: http://mypractic.ru/uroki-programmirovaniya-arduino-navigaciya-po-urokam (Дата обращения: 24.02.2020);
5. Электроника для начинающих AVR-START.RU // http://avr-start.ru/ // URL: http://avr-start.ru/?p=1244  (Дата обращения: 22.03.2020);











ran

Спасибо за доклад.
Проблемка такая: есть злостные люди, которые отслеживают наши конференции: "И вот этот УР! Сколько можно!"
Поэтому в начале было бы неплохо несколько слов про историю разработки, какими недостатками обладали предыдущие системы и т.д. Постановка задачи, так сказать. В КП у Вас есть и про Пилецкого и про Бову, это хорошо, но и там недостатки их систем не акцентированы. А это важно, ведь если у Пилецкого уже все было хорошо, зачем тогда Бова взялся за это дело, а про Вас уже и не говорю?
Чисто технический вопрос: а зачем у Вас пустые приложения в КП? Если это "листы", ну вставьте в них эти листы.

Михаил

#2
Четверг, марта 26, 2020, 02:21:58 Последнее редактирование: Четверг, марта 26, 2020, 02:33:43 от Михаил
до какого момента времени можно будет вам ответить? я сейчас зашёл на сайт с телефона, и не очень удобно с него отвечать зайти с пк смогу где-то через 1-2 часа

ran

Конференция у нас еще долго будет продолжаться, а насчет КП не знаю.
Но нам-то надо о ВКР думать...

Михаил

Недостатки системы управления роботом, Пилецкого П.Е.
    Система управления разработана на контроллере фирмы OMRON модели CP1L-M30DT-D имеет следующие недостатки: имеющийся контроллер также может одновременно управлять более чем двумя шаговыми двигателями, в виду наличия только двух импульсных выходов; в автоматическом режиме имеет возможность управления одной осью при управлении программой контроллера.

Недостатки системы управления роботом, Бовы Д. Е.
    Система управления разработана на микроконтроллере PIC16F870 имеет следующие недостатки:  микроконтроллер управляет шаговыми двигателями по двум каналам это STEP(шаги) и DIR(направление вращения вала двигателя); невозможность регулирования скорости вращения вала двигателя, т.е. скорости перемещения осей робота. 

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

Мое предложение

  • Установить еще по одному датчику концевого положения, для того чтобы пользователь не смог привести робота в нерабочее состояние;
  • Разработать интерфейс для выбора скорости вращения валов двигателей по каждой оси, и включения/отключения удержания вала двигателя, т.е. ввести управление по третьему каналу ENABLE(удержание);
  • Установить Тактильные датчики (датчики осязания), установленные в миниатюрном исполнении по несколько штук на губках схвата робота, позволяют полнее ощущать наличие детали. Т.Е. дать возможность роботу брать предметы не только те, размеры которых заданы программно.
  • Также система будет поддерживать обмен МК<->ПК по USB интерфейсу, т.к. в настоящее время LPT - порт на ПК редкость

Михаил

Добавлены разделы: Система управления предложенная Пилецким П.Е., Система управления предложенная Бовой Д.Е.

ran


RVL

Михаил, Вы создали модель схвата в Solidworke?

Михаил

Михаил, Вы создали модель схвата в Solidworke?
Да и уже давно, вы её у меня видели

RVL

Публикуйте, желательно с анимацией!

RVL

Микроконтроллер - программируемая микросхема, предназначенная для управления в электрических сетях.
В самом деле?


ran

#11
Среда, апреля 01, 2020, 01:16:41 Последнее редактирование: Среда, апреля 01, 2020, 06:47:11 от ran
Микроконтроллер - программируемая микросхема, предназначенная для управления в электрических сетях.
В самом деле?


Туда тоже можно.

Михаил

Микроконтроллер - программируемая микросхема, предназначенная для управления в электрических сетях.
В самом деле?


Туда тоже можно.
Спасибо за ответ!

RVL

Михаил!
Почему "первому", Пилецкому Павлу, не "понравилась" существующая СУ УР-4?

Михаил

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

Вверх