Робототехника для школы. Часть 2

В предыдущих частях:
Часть 1 — конструкция манипуляционного робота

Программа управления для манипуляционного робота

В предыдущей статье мы собрали манипуляционного робота, который предназначен для выполнения тяжелой и монотонной работы — переворачивания бочек с клубничным джемом. А теперь давайте  составим программу, которая будет управлять нашим роботом. Для разработки управляющей программы будем использовать программное обеспечение ROBO Pro.

ROBO Pro – это инструментарий для разработки управляющих программ для программируемых контроллеров ROBO TX, которые используются в конструкторских наборах fischertechnik для управления движением роботов.

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

Готовые управляющие программы можно загрузить во FLASH- или RAM-память контроллеров через интерфейс USB или Bluetooth. Поддерживаются два типа контроллеров — ROBO TX и ROBO INTERFACE. Более подробную информацию о контроллере ROBO TX можно получить из обзорной статьи в нашем блоге.

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

На рис. 1 представлена главная программа управления (Main program). Она состоит из нескольких подпрограмм, каждая из которых отвечает за определенное движение манипулятора.

Рис. 1 Главная программа

Рис. 1 Главная программа

После запуска главной программы управление переходит в подпрограмму M2-open (рис. 2), которая отвечает за максимальное раскрытие губок захватного устройства манипулятора. В подпрограмме осуществляется запуск двигателя M2, а также инициируется проверка сигнала с концевого датчика S3. Как только сигнал с датчика перестаёт поступать на контроллер, вызывается команда к останову двигателя M2. Подпрограмма M2-open завершает своё выполнение, и передаёт управление главной программе.

Рис. 2 Подпрограмма M-2-open

Рис. 2 Подпрограмма M-2-open

Подпрограмма M1-1 (рис. 3) выполняет движение захватного устройства к столу №1. Сразу же после входа в подпрограмму проводится проверка концевого датчика S1. Предварительная проверка нужна для предотвращения возможной аварийной ситуации, в случае если манипулятор на момент начала выполнения программы уже находится в своём крайнем положении возле стола №1.

Рис. 3 Подпрограмма M1-1

Рис. 3 Подпрограмма M1-1

Подпрограмма M-2-close (рис. 4) отвечает за захват бочки. Степень закрытия губок контролируется с помощью подсчёта сигналов с датчика S4, выступающего в роли энкодера. После захвата бочки манипулятор должен переложить её на стол №2. Выполнением данной задачи занимается подпрограмма M1-2 (рис. 5), алгоритм которой идентичен алгоритму M1-1, за исключением датчика, который определяет конечное положение манипулятора. Теперь используется сенсор S2 вместо S1.

Рис. 4 Подпрограмма M-2-close

Рис. 4 Подпрограмма M-2-close

 

Рис. 5 Подпрограмма М1-2

Рис. 5 Подпрограмма М1-2

После переноса бочки захватное устройство вновь раскрывается (подпрограмма M2-open), и управление переходит в блок Time delay, который задерживает выполнение программы на 3 секунды. По истечении заданной задержки, управление переходит обратно в начало программы.

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

Выводы

Ура! Наша программа работает – робот переворачивает бочки. Текущая версия программы очень простая и в ней есть что доработать и улучшить. Следующей задачей для нас будет расширение и добавление новых возможностей управляющей программы, таких как, взятие объектов разных размеров, а так же ручное управление роботом, непосредственно через контроллер ROBO TX.

До встречи в следующей части

Владимир Баловнев и Григорий Зайцев – сотрудники компании ПАКПАК.

Один комментарий

  1. Фаниль:

    Спасибо за статью, очень интересная, главное все просто и понятно для новичков в этом деле.

Комментировать