Роботы и робототехнические системы бывают разных типов, как правило, они классифицируются по сложности, аппаратной составляющей, конструктивным особенностям, способу управления и многим другим параметрам.
В свою очередь для систем управления роботами существует традиционная классификация. Систему управления по способу управления подразделяются на три типа.
Биотехническими называются такие системы управления, в процессе работы которых принимает участие человек.
Командными системами управления называются такие системы, в которых осуществляется управление каждым исполнительным механизмом робота в отдельности, например управление каждым приводом манипулятора в отдельности и т.п.
Копирующие системы управления в качестве задающего движения используют движение либо полностью идентичного макета робота, либо любого другого механизма, задающего нужное движение. Наиболее популярным примером может служить экзоскелет – механизированный костюм, с помощью которого человек может орудовать достаточно тяжелыми грузами.
Полуавтоматические системы основываются на ручном управлении человеком-оператором, но в свою очередь ряд исполнительных механизмов робототехнической системы работает автоматически. Примером такой системы управления может служить захватное устройство манипулятора, приводимое в движение оператором с помощью джойстика. При управлении движением схвата манипулятора пользователь задает вектор и скорость движения, а система управления автоматически рассчитывает закон управления каждым из приводов робота в отдельности.
Автоматическими называются такие системы управления, в процессе работы которых человек не принимает никакого участия.
Программными системами управления называются такие системы, в которых управление исполнительным механизмом робота выполняется по жестко заданной программе. Примерами таких систем управления могут служить системы управления производственных механизмов, например конвейеров или портальных кранов и погрузчиков.
Адаптивные системы управления работают, подстраиваясь под изменение состояния окружающей среды, которое регистрируется с помощью различных сенсорных устройств. Например, система управления робота, движущегося вдоль линии, является адаптивной, поскольку в процессе перемещения робота с помощью датчиков определяется положение линии и относительно нее корректируется положение робота.
Интеллектуальные системы управления – наиболее сложные системы управления, функционирующие на основании информации о состоянии окружающей среды, полученной от различных сенсорных устройств. Отличие интеллектуальных систем управления от адаптивных заключается в том, что в них анализируется состояние системы в данный момент и прогнозируется дальнейший сценарий развития событий. Также к интеллектуальным системам относят системы, работающие с базами данных информации и выдающими собственный закон управления в соответствии с одним из сценариев, заложенным в базу данных и который максимально соответствует текущей ситуации.
Интерактивными системами управления называются такие системы управления, которые работают как автоматически, так и под управлением человека.
Автоматизированные системы управления представляют собой системы управления, которые работают автоматически, но также и частично под управлением человека.
Супервизорные системы управления – системы управления, работающие полностью автономно, в которых человеку отводится роль наблюдателя или контролера качества выполняемых работ.
Диалоговые системы управления работают в прямом контакте с человеком, при этом стратегия работы системы управления выбирается на основании текущего состояния и целей, преследуемых как программой системы управления, так и человеком-оператором. К подобным системам можно отнести системы управления жестами или системы голосового управления.
В рамках данной работы предлагается разработать систему управления электронного пианино. Электронное пианино представляет собой устройство, воспроизводящее звуковые сигналы различной нотной тональности. Управляется данное устройство пользователем в ручном режиме, который нажимает на клавиши – специальные пластинки, расположенные над ИК-датчиками. При нажатии на каждую из таких клавиш происходит срабатывание ИК-датчика, которое регистрирует система управления. В зависимости от номера нажатого датчика воспроизводится одна из мелодий.
Как обычно данная работа состоит из двух практических частей, ориентированных на детальное изучение материала. В первой части рассматриваются вопросы воспроизведения звуков и задания их тональности. Вторая часть посвящена вопросам изменения октав с помощью кнопок управления, расположенных на контроллере СМ-530.
Быть может, некоторые не смогут отнести разрабатываемое устройство к роботам, но несмотря на это электронное пианино является ярким примером технических систем с ручным управлением, которые встречаются повсеместно в обыденной жизни.
Ручное управление устройством с помощью массива ИК-датчиков
Для ручного управления электронным пианино необходимо спроецировать способ работы с традиционным пианино на технические средства, лежащие в основе устройства. Для моделирования нажатий на клавиши традиционного пианино используется массив из 7 ИК-датчиков, касание которых будет воспроизводить одну из нот.
Воспроизведение звуков и мелодий осуществляется с помощью встроенного в контроллер СМ-530 динамика. Каждый звук, воспроизводимый динамиком, получается в результате наложения нот с различными октавами, как обычная музыка.
В среде программирования RoboPlus все возможные звуки реализованы в виде специальных функций, доступных пользователю. Вызов функции осуществляется с помощью окна панели управления во вкладке Musical Scale, где во всплывающем меню можно выбрать одну из них, в том числе и в зависимости от октавы.
В дальнейшем каждая из функций может быть вызвана в соответствующем условии срабатывания одного из ИК-датчиков.
Для воспроизведения каждой из нот в начале программы задается временной интервал. Далее задается порог срабатывания каждого ИК-датчика, причем данная конструкция включает в себя процесс сравнения показаний датчика и заданного значения, т.е. заменяет собой оператор IF.
Алгоритм программы выполняется в бесконечном цикле, в котором анализируется, какие из ИК-датчиков сработали, в зависимости от нажатой комбинации клавиш.
Как было сказано ранее, каждому датчику соответствует определенная нота, которая воспроизводится в случае его срабатывания. Мелодия воспроизводится в течение времени scale_play_duration, а тип воспроизводимой мелодии соответствует значению переменной scale.
Отдельно стоит рассмотреть процесс определения сработавшего датчика. Впервые в цикле лабораторных работ мы сталкиваемся с понятием «прерывание». Прерывание – это сигнал контроллеру, сообщающий о происшествии какого-либо события. Прерывания бывают внешними, срабатывающими на какое-либо воздействие на устройство из вне, например нажатие кнопок или срабатывание датчика. Внутренние прерывания срабатывают на какое-либо изменение в процессе выполнения кода программы, например окончание отсчета таймера, обращение к недопустимым адресам памяти или выполнение запрещенных операций, таких как деление на ноль и т.п. Прерывания бывают также и программными, подобные прерывания представляют собой программы, созданные разработчиками. Как правило, такие прерывания используются в специализированных программах-драйверах для работы со внешними устройствами и сигнализируют о таких событиях, как подключение или отключение устройства, попытка передачи или получения данных и т.п.
В среде программирования RoboPlus есть специальные средства для реализации программных прерываний.
Конструкция CALLBACK является функцией, реализующей программное прерывание, которое может разработать пользователь. В рассматриваемом примере прерывание работы контроллера вызывается срабатыванием массива ИК-датчиков, т.е. если в какой-либо момент времени сработал ИК-датчик, моментально изменяется значение переменной key, что влечет за собой изменение процесса выполнения основной программы. В данном случае после изменения параметра key происходит воспроизведение соответствующей ему ноты.
К прерываниям предъявляются некоторые требования, обычно требования немного отличаются друг от друга в зависимости от типа программируемого контроллера и среды разработки. В случае использования среды RoboPlus и контроллера СМ-530 основные требования следующие:
1) В программе может использоваться только одно прерывание.
2) Функция – обработчик прерывания может быть без имени.
3) Функция – обработчик прерывания должен быть описан в теле главной функции.
4) Объем функции – обработчик прерываний не должен превышать 512 байт.
Применение прерываний дает возможность разработать систему управления, оперативно реагирующую на внешние воздействия или команды оператора. Благодаря тому, что переход к выполнению программы обработчика прерываний происходит почти мгновенно, система управления может своевременно отреагировать на внешний сигнал и скорректировать свою работу.
Ручное управление устройством с помощью массива ИК-датчиков и кнопок контроллера СМ-530
Рассмотрим более сложный процесс управления электронным пианино, а именно задание в ручном режиме нот и октав одновременно. Ноты задаются таким же образом, как и в предыдущей части работы, а октавы задаются с помощью нажатия кнопок управления контроллера СМ-530.
Запрограммируем кнопки L, R, D контроллера СМ-530 на воспроизведение высокой октавы, низкой октавы и половины октавы соответственно.
Согласно вышеприведенному алгоритму управление электронным пианино осуществляется следующим образом: зажимается одна из кнопок, соответствующих октаве, а потом нажимается «клавиша» пианино, воспроизводящая ноту.
Управляющая программа идентична рассмотренной в первой части. Отличие заключается в добавленном условии, которое рассматривает, какая из кнопок контроллера нажата в данный момент.
Мелодии, воспроизводимые в каждом из случаев, выбираются из числа стандартных функций, реализованных в среде RoboPlus.
Таким образом, комбинируя отдельные ноты и нотные тональности, можно воспроизвести любую мелодию.
Заключение
В рамках данной работы был рассмотрен процесс разработки системы ручного управления для электронного пианино. Помимо этого были рассмотрены особенности применения прерываний, как одного из важнейших инструментов разработки управляющих программ для программируемых контроллеров.
Для закрепления полученных навыков предлагается рассмотреть программу, с помощью которой можно записать в память контроллера произвольную мелодию. Воспроизводя с помощью «клавиш» электронного пианино звуки, пользователь изменяет значение переменных scale.
Запись воспроизводимых звуков производится до тех пор, пока нажата кнопка S или пока количество воспроизводимых звуков не превысит 30. После этого с помощью повторного нажатия кнопки S можно воспроизвести мелодию.
Рассмотренная в данной работе задача может показаться достаточно простой и не имеющей никакого отношения к робототехнике, но это отнюдь не так. Данная работа иллюстрирует особенности процесса разработки систем управления ручного типа, которые достаточно часто встречаются в повседневной жизни. Причем объектом оправления таких систем управления не обязательно должен быть робот или сложный механизм, в качестве него может быть любое электронное устройство.
Материал с сайта robotgeeks.ru