Мегаобучалка Главная | О нас | Обратная связь


Разработка программы управления



2020-03-19 144 Обсуждений (0)
Разработка программы управления 0.00 из 5.00 0 оценок




Описание общего алгоритма функционирования

 

Перед запуском роботизированной платформы, нужно поместить ее на белую линию. После чего включить питание и нажать кнопку “START/PAUSE”, в результате этого на дисплее появиться надпись “ACTIVE”. После запуска, при помощи датчиков, робот начнет движение по линии. При срабатывании левого датчика линии робот повернет направо. При срабатывании правого датчика соответственно налево. При Т-образной развилке или конце линии, срабатывают два датчика, в результате чего робот отъезжает назад и осуществляет поворот. После того как линия будет найдена, робот продолжит движение вперед.

Для остановки робота нужно нажать на клавишу “START/PAUSE”, после этого на дисплее появиться надпись “PAUSE”, пройденный путь и время движения.

При столкновении с препятствием, срабатывают бампера, основанные на герконах. После этого робот отъезжает назад и объезжает препятствие.

Для ручного управления платформой, предназначены три кнопки. Первая кнопка останавливает робота и на дисплее появиться надпись “PAUSE”. Две остальные кнопки предназначены для управления:

· при нажатии второй кнопки робот осуществляет движение вперед.

·   при нажатии третей кнопки робот осуществляет движение назад.

·   при нажатии второй и третьей кнопки, робот осуществляет разворот.

 

Описание алгоритма и основных модулей программы

 

Вначале программы находится блок объявления переменных. В этом блоке регистрам и специальным битам системных регистров присваиваются символьные значения. Также описываются и инициализируются вспомогательные управляющие флаги и переменные.

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

Обработчик прерывания таймера0 interrupt1. В данном обработчике мы вначале производим перезагрузку таймера/счётчика. Предделитель, загружая константу соответственно в старшую и младшую часть TH, TL.

Вычисление периода:

Период одного тика таймера = 11059200;

/12=921600; 1 / 921600 = 1.0850694…;

/ 1.0850694 = 9216 - тиков таймера для выдерживания 10 мс.

FFFFh - 9216 = DBFFh; TH0 = 0xdb; TL0 = 0xff;

Далее идёт подсчёт времени. Он ведётся переменной timer_tick (она отсчитывает сотые доли секунд), инкрементируя её в каждом прерывании таймера, мы получаем при sec100=1 отсчёт первой секунды. Здесь же мы инкрементируем переменную секунды и проверяем, не равна ли она 60, если равна то увеличиваем минуты. Аналогично проверяются и минуты и часы.

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

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

Обработчик прерывания uart0 interrupt4. В данном обработчике осуществляется проверка нажатой клавиши, в режиме ручного управления платформой.

Далее следует основной цикл программы. Затем идёт блок инициализации программы. В этом блоке осуществляется первоначальная настройка микроконтроллера.

Назначается предделитель таймера1. При этом таймер1 устанавливается в TH1=0xFD. Эта константа посчитана для режима SCON=0x50 при частоте кварца 11.0592 МГц. Этот предделитель даёт скорость на последовательном порту близкую к стандартной скорости 9600. Также для таймера1 устанавливается второй режим работы, обеспечивающий автоматическую нагрузку предделителя из TH в TL. Таким образом, решается вопрос автоматического задания частоты.

Таймер0 устанавливается в первый режим 16-битного счётчика и в дальнейшем будет использоваться для подсчёта времени, определения паузы, определения положения робота относительно белой линии. Таймер0 использует обработчик прерывания1 и для его разрешения необходимо установить флаг ET0 в единичное состояние (ET0=1).Для запуска таймера0 TR0 устанавливаем в единицу (TR0=1), одновременно запускаем и таймер1 (TR1=1). Для обработки прерываний от последовательного порта устанавливаем ES в единицу (ES=1). Разрешаем все прерывания флагом ЕА (ЕА=1).

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

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

Заключение

 

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

 


 



2020-03-19 144 Обсуждений (0)
Разработка программы управления 0.00 из 5.00 0 оценок









Обсуждение в статье: Разработка программы управления

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как построить свою речь (словесное оформление): При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою...
Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной...
Модели организации как закрытой, открытой, частично открытой системы: Закрытая система имеет жесткие фиксированные границы, ее действия относительно независимы...
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (144)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)