Контроллер управления роботизированной платформой на радио канале

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    147,69 Кб
  • Опубликовано:
    2012-11-25
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Контроллер управления роботизированной платформой на радио канале

Оглавление

 

Техническое задание

Введение

.Разработка функциональной схемы

.Разработка принципиальной схемы

.1 Выбор управляющего микроконтроллера

.2 Выбор электронных элементов

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

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

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

Заключение

Литература

Приложения


Техническое задание

В рамках курсовой работы необходимо разработать контроллер управления роботизированной платформой. Данная платформа ориентированна на движение по напольной линии.

Управление роботизированной платформой ведется удаленно по радио каналу. Также в автономном режиме предусмотрено управление через четыре функциональных клавиши, что позволяет привести его на зарядку или временно удалить с траектории движения и остановить. Для отображения необходимой пользователю информации устройство имеет дисплей с жидкокристаллической индикацией (ЖКИ). Информация выводится в две строки, в которой        отображается пройденное расстояние и время работы, а также состояние активности.

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

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

Введение

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

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

За последние годы микроэлектроники бурное развитие получило направление, связанное с выпуском однокристальных микроконтроллеров (ОМК), которые предназначены для «интеллектуализации» оборудования различного назначения. ОМК представляет собой приборы, конструктивно выполненные в виде БИС, и включающие в себя все составные части «голой» микроЭВМ: микропроцессор, память программы, память данных, также программированные интерфейсные схемы для связи с внешней средой. Использование микроконтроллеров в системах управления обеспечивает достижение исключительно высоких показателей эффективности при столь низкой стоимости, что микроконтроллерам , видимо нет разумной альтернативной базы для построения управляющих и регулирующих систем. К настоящему времени более двух третей мирового рынка микропроцессорных средств составляют именно ОМК.

1.      Функциональная схема

Системы управления роботизированной платформы

Рис.1.1 Функциональная схема управляющего контроллера.

Блоки датчиков:

ДЛ1 - левый датчик линии. Предназначен для определения нахождения платформы на линии.

ДЛ2 - правый датчик линии. Предназначен для определения нахождения платформы на линии.

ДП1 - датчик препятствия 1. Предназначен для определения препятствия.

ДП2 - датчик препятствия 2. Предназначен для определения препятствия.

Блок клавиатуры - клавиатура предназначена для управления устройством. Нажатая клавиша обрабатывается микроконтроллером , который выполняет необходимые действия. Клавиатура состоит из 4 кнопок: «START/PAUSE», «SET», «+», «-». Кнопка «START/ PAUSE» приводит роботизированную платформу в движение, либо останавливает ее . Кнопка «Set» позволяет изменить траекторию движения платформы. Кнопка «+» и «-» позволяет изменить траекторию движения платформы.

ЖКИ - дисплей - для отображения текстовой и цифровой информации на плату контроллера устанавливается активный ЖКИ - дисплей, имеющий две строки.

БУД1 - блок управления двигателем 1.

БУД2 - блок управления двигателем 2.

БРС - блок радио связи. Предназначен для ручного управления роботизированной платформой

2.   Описание принципиальной схемы

Принципиальная схема состоит из следующих компонентов.

Входные датчики, обеспечивают позиционное обнаружение препятствий. Для позиционирования робота, используется специальная разметка - белая линия, указывающая траекторию движения. Отслеживание линии производится двумя датчиками, в которых светоизлучающие диоды VD1 и VD3 с различной интенсивностью отражаются на обычном полу и белой линии. Белая линия по своим свойствам сильнее отражает свет. Отраженный свет, попадая на фотодиод, открывает его до определенного уровня. Уровень срабатывания настраивается резистивными элементами на входе элемента И-НЕ и устанавливаются для самой бледной линии (для самой загрязненной).Логические элементы работают по схеме компараторов в определенном уровне сигнала, который поступает со светодиода. Второй элемент И-НЕ служит буфером и конвертором, который обеспечивает преобразование логики. Т.о. в первом датчике используются два элемента микросхемы DD1 (К561ЛА7).

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

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

2.1 Выбор управляющего микроконтроллера

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

-    наличие достаточного количества портов ввода-вывода. К микроконтроллеру необходимо подключить клавиатуру, семисегментный дисплей, схемы управления нагревателями и термодатчики.

-       наличие программного пакета для написания и отладки программы микроконтроллера .

-       достаточная изученность микроконтроллера.

Для реализации МПС были выбраны 3 контроллера: МК AT89C52, AVR Atmega8 и PIC16F628. Для выполнения выбора подробнее рассмотрим каждый из контроллеров.

МК ATmega8 имеет следующие отличительные особенности:

       - 8ми-разрядный высокопроизводительный AVR микроконтроллер с малым потреблением RISC архитектура, 130 высокопроизводительных команд, большинство команд выполняется за один тактовый цикл - 32 8ми-разрядных рабочих регистра общего назначения.

Полностью статическая работа Приближающаяся к 16 MIPS (при тактовой частоте 16 МГц) производительность - Энергонезависимая память программ и данных - 8 Кбайт внутрисистемно программируемой Flash памяти (In-System Self-Programmable Flash) - Обеспечен режим одновременного чтения/записи 512 байт EEPROM - 1 Кбайт встроенной SRAM

Встроенная периферия Два 8-разрядных таймера/счетчика с отдельным предварительным делителем, один с режимом сравнения Один 16-разрядный таймер/счетчик с отдельным предварительным делителем и режимами захвата и сравнения Счетчик реального времени с отдельным генератором 6-канальный аналого-цифровой преобразователь (в корпусе PDIP) 4 канала с 10-разрядной точностью 2 канала с 8-разрядной точностью Байт-ориентированный 2-проводный последовательный интерфейс Программируемый последовательный USART Последовательный интерфейс SPI (ведущий/ведомый) Программируемый сторожевой таймер с отдельным встроенным генератором Встроенный аналоговый компаратор

Специальные микроконтроллерные функции Встроенный калиброванный RC-генератор Внутренние и внешние источники прерываний Выводы I/O и корпуса 23 программируемые линии ввода/вывода 28-выводной корпус PDIP, 32-выводной корпус TQFP и 32-выводной корпус MLF

Рабочие напряжения - 2,7 - 5,5 В (ATmega8L) 4,5 - 5,5 В (ATmega8)

Рабочая частота - 0 - 8 МГц (ATmega8L) 0 - 16 МГц (ATmega8)

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

Далее рассмотрим следующую серию МК PIC16F628 она имеет следующие основные особенности:

- RISC архитектуру и всего 35 простых для изучения инструкции;

Все инструкции исполняются за один такт (400 нс);

Скорость работы: тактовая частота до 10 МГц;

Память программ 2K FLASH;

-   Память данных ОЗУ (байт) 68

- 15 аппаратных регистров специального назначения

четыре источника прерывания:

внешний вход RB0/INT

переполнение таймера TMR0

прерывание при изменении сигналов на линии порта B (PORTB<7:4>)

по завершению записи данных в ЭСППЗУ (EEPROM)

8-разрядный таймер/счетчик;

8-разрядный программируемый предварительный делитель;

1000 циклов записи/стирания FLASH памяти программы.

Периферия:

13 линий ввода/вывода с индивидуальным контролем направления;

Сильноточные схемы (до 25мА) для управления светодиодами.

Особенности микроконтроллера:

Программирование на плате через последовательный порт (ICSPT)

Таймер включения питания (PWRT) и таймер запуска генератора (OST)

Сброс по падению напряжения питания

Сторожевой таймер (WDT) с собственным встроенным RC-генератором для повышения надежности работы

Широкий рабочий диапазон напряжений питания - от 2,0В до 6,0В

Низкое потребление энергии:

< 2 мА при 5,0 В, 4,0 МГц

Данный контроллер не имеет команд деления и умножения в остальном он удовлетворяет нашей задаче.

Последним для рассмотрения был выбран МК 51 серии - AT89C52. По предварительной оценке по параметрам полностью подходит для выполнения поставленной задачи.

- Совместимость с серией MCS-51.

8 кБ флэш-памяти с внутрисхемным программированием (ISP) - Состойкость ПЗУ программ: 1000 циклов записи/стирания

Рабочий диапазон питания от 4.75 до 5.25 В

Полностью статическое функционирование : 0 …24 МГц

Внутреннее ОЗУ размером 256 x 8

32 программируемые линии ввода-вывода

Три 16-разрядных таймера-счетчика

Восемь источников сигналов прерывания

Программируемый последовательный канал UART

Пассивний (idle) и стоповый (power down) режимы

- Промышленный (-40°С...85°C), коммерческий (0°C...70°C), диапазоны температур

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

Учитывая все вышесказанное окончательно было решено использовать контроллер 51 серии как наиболее доступный и подходящий по параметрам.

2.2    Выбор электронных элементов


1)      Принцип работы датчика границы основан на свойстве поверхностей по-разному отражать падающий на них свет. Черные или темные поверхности отражают свет намного хуже, чем белые или светлые.









Улавливая отраженный свет, мы определяем тип поверхности, находящейся под датчиком. Для изготовления датчика границы мы используем фототранзистор и яркий светодиод. На приведенном рисунке изображена конструкция датчика. Светодиод и фототранзистор направлены в сторону исследуемой поверхности. Расстояние до поверхности зависит от силы свечения светодиода и чувствительности фототранзистора. Обычно оптимальное расстояние равно 1-1,5 см. Использование фототранзистора обусловлено тем, что скорость его срабатывания высока и достаточна даже при очень быстром движении робота. Фоторезисторы имеют невысокую скорость срабатывания, и ее может быть недостаточно при высокой скорости движения робота. Схема датчика очень проста, состоит непосредственно из фототранзистора, светодиода и ограничивающих резисторов. При срабатывании фототранзистора на выходе формируется сигнал низкого уровня, который и подается на один из свободных входов микроконтроллера.

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

)        Шаговый электродвигатель - это электромеханическое устройство, преобразующее сигнал управления в угловое перемещение ротора с фиксацией его в заданном положении. Современные шаговые двигатели являются, по сути, синхронными двигателями без пусковой обмотки на роторе, что объясняется частотным пуском шагового двигателя. Последовательная активация обмоток двигателя вызывает дискретные угловые перемещения (шаги) ротора. Отличительная особенность шаговых двигателей - это возможность осуществлять позиционирование без датчика обратной связи по положению.

Преимущества шаговых двигателей по сравнению с синхронными двигателями, является:

·    Экономичная цена шаговых двигателей, в среднем в 1,5-2 раза ниже синхронных аналогов;

·        Более высокий момент в удержании и на низких оборотах при одинаковой массе;

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

Недостатки шаговых двигателей:

·    Падение момента на больших скоростях;

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












На рис.1 показана последовательность импульсов в точках A,B,C,D. Импульсы должны быть одинаковые, но сдвинутые по фазе на четверть периода. На рис.2 показан один из этих импульсов в увеличенном масштабе, а также форма напряжения на соответствующей обмотке двигателя. Участок 1 кривой должен быть более - менее ровным и напряжение там не должно превышать 1-2В. Участок 2 может быть более сложной формы, при вращении двигателя на нем появляются дополнительные выбросы и провалы, но для всех четырех обмоток форма кривой должна быть примерно одинаковой.

)        Использование ЖКИ индикатора необходимо для отображения режима работы платформы, а также информацию о пройденном пути. Данный ЖКИ включен по 8-ми проводной схеме. RS используется для передачи команды сброса и установки параметров дисплея, Е обеспечивает тактирование линии для передачи данных дисплею.


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

 

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


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

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

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

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

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

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

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

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

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

В качестве обработчиков прерываний использованы только таймер 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. После этого производится его инициализация и последующий вывод информации.

Заключение

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

Приложение (Схема устройства)



Приложение (Листинг программы)


#include <REG320.H>                      // SFR definition header file

#include <stdio.h>                             // prototype declarations for I/O functions

//#ifdef <REG51.h>

#ifdef MONITOR51                          // Debugging with Monitor-51 needschar timer_tick,sec,min, hour,des; // Tiket timechar tikd1,tikd2;         // Pozic uprav bit dvigchar napr;       // front=0, back=1, left=2, right=3char dlin;                           // dlina putichar tiksend;          // tik send UARTput;                               // proiden rastoainie front nd1,nd2,pausa,fdl;                 // flags dvig front=1 back=0char send[]={0,0,0,0,0,0,0,0,0,0,0,0};// otsil dann-h - proiden put, time. char lcddate1[];char lcddate2[];unsigned char lcd1[] = {0x50,0x41,0x55,0x53,0x41 }; //Pausaunsigned char lcd2[] = {0x41,0x43,0x54,0x49,0x56,0x45 }; //Activeunsigned char lcd3[] = {0x54, 0x49, 0x4D, 0x45 }; //Timeunsigned char lcd4[] = {0x44,0x49,0x53,0x54,0x41,0x4E,0x43,0x45};// Distanceunsigned char lcd5[] = {0x4D};lineL=P3^2;lineR=P3^3;k1=P2^0;k2=P2^1;k3=P2^2;bampl=P3^4;bampr=P3^5;E =P0^6;RS=P0^7;RW=P2^7;

#endif // Stop Exection with Serial Intr.

//-----------------------------------------------------------------timer0 (void) interrupt 1 using 1

{ = 0xff;= 0xdb; // set timer period 10ms = 9216 tik T0 - 11.0592MHz_tick++; //rashet vremeni(timer_tick==100)

{_tick=0;sec++;(sec==60)

{=0; min++;(min==60)

{=0; hour ++;(hour == 24) = 0;

}

}

if (!pausa) //esli ne pausa - raschet dvigenia

{((timer_tick%25)==0)             // Dvigateli - 1 oborot v sec

{(dlin>1) dlin--;((nd1)&&(nd2)) put++;((!nd1)&&(!nd2)) put--;(nd1) // Left dvig

{ (!((!linel) && (!liner)) //esli line WHITE na DVUH datchikah dvig FRONT

{ =tikd1>>1; (tikd1==0) tikd1=8;

}((linel) && (liner)) //esli line poterena na DVUH datchikah to dvig BACK

{ =tikd1<<1; put--; (tikd1==0x10) tikd1=1;

}(!((!linel) && (liner))) //esli line poteran na RIGHT datchike to dvig FRONT

{ =tikd1>>1; (tikd1==0) tikd1=8;

}(!((linel) && (!liner))) //esli line poteran na LEFT datchike to dvig BACK

{ =tikd1<<1;(tikd1==0x10) tikd1=1;

}

}

{ =tikd1<<1; (tikd1==0x10) tikd1=1;

} // dvig BACK(nd2) // Right dvig

{ (!((!linel) && (!liner))) //esli line WHITE na DVUH datchikah dvig FRONT

{ =tikd2<<1;(tikd2==0) tikd2=0x10;

}((linel) && (liner)) //esli line poterena na DVUH datchikah to dvig BACK

{ =tikd2>>1; SBUF=0x55; //zapros napravl povorot(tikd2==8) tikd2=0x80;

} (!((!linel) && (liner))) //esli line poteran na RIGHT datchike to dvig BACK

{=tikd2>>1; (tikd2==8) tikd2=0x80;

}(!((linel) && (!liner))) //esli line poteran na LEFT datchike to dvig FRONT

{ =tikd2<<1;(tikd2==0) tikd2=0x10;

}

}

{ =tikd2>>1;(tikd2==8) tikd2=0x80;

} // dvig BACK= tikd1 | tikd2;  [2]= put>>8;[3]= put;

}

}

}uart0 (void) interrupt 4 using 1

{(RI)           // read command

{ (fdl)

{ =SBUF; =0;

} switch (SBUF)

{ (0xff){ pausa=1;} break; // stop platform(0x0f){ pausa=0;} break; // start platform(0xf0){ napr=0;fdl=1;} break; // front(0xf1){ napr=1;fdl=1;} break; // back(0xf2){ napr=2;} break; // left(0xf3){ napr=3;} break; // right(0xE0){ SBUF=send[0]; tiksend=1; } break;( 0xFE){ fdl }break; // flag dlin

}=0;

}(TI) // send byte

{ =send[0]; ++; =0;

}

}

//-------------------- Base Text Program -----------------------main (void)

{int i, j;

//---- Setup the serial port for 9600 baud at 11.592 MHz.

#ifndef MONITOR51= 0x50; // SCON: mode 1, 8-bit UART, enable rcvr|= 0x20; // TMOD: timer 1, mode 2, 8-bit reload, Timer 0 mode 1 16bit= 0xfd; // TH1: reload value for 9600 baud @ 11.0592MHz= 1; // TR1: timer 1 run= 1; // TI: set TI to send first char of UART= 1;

#endif

//--- Setup the timer 0 interrupt = 0xdb; // set timer period 10ms = 9216 tik T0 - 11.0592MHz= 0xff;= TMOD | 0x01; // select mode 1 16 bit Timer= 1; // start timer 0= 1; // enable timer 0 interrupt= 1; // global interrupt enable(1)

{ // Opredelenie napravlenia(napr==0)

{=1; nd2=1;(dlin!=0);=1;=56; //zapros na sleduychii hag

}(napr==1)

{=0; nd2=0;(dlin!=0);=1; =56;

}(napr==2)

{=0; nd2=1;=8;;ile(dlin!=0);=1;=57; // zapros povorota nalevo

}(napr==3)

{=1; nd2=0;=8;(dlin!=0);

pausa=1;=58; // zapros povorota napravo

}

if (!k1) pausa=0; // Button Pause

{ =1;=0;=4;

} {!k3} // Button BACK

{ =1;=1;=4;

} ((!k2)&&(!k3)) // Two buttons - Turn to the right

{=1;=2;=4;

}

// Pri stolknovenii - TWO,LEFT,RIGHT - Bamper - dvigenie BACK((!bampl)&&(!bampr))

{=60; //zapros prepynstvie FRONT=1; =4;

}((bampl)&&(!bampr))

{=61; //zapros prepynstvie RIGHT=1;=4;

}((!bampl)&&(bampr))

{=62; //zapros prepynstvie LEFT=1;=4;

}

{(i=0; i < 5 i++ ) [i]=lcd1[i]; // “pause”(i=0; i < 4 i++ ) [i]=lcd3[i]; //”time”[15]=min%10+0x30; //”minuts”

lcddate1[14]=min/10+0x30;((sek%2)==0)) lcddate1[13] = 0x3A; //”:”lcddate1[13] = 0x20;

lcddate1[12] = hour%10 + 0x30;

lcddate1[11] = hour/10 + 0x30;(i=0; i < 8 i++ ) [i]=lcd4[i]; //”distance”[15] =lcd5; [14]=put%10+0x30;

lcddate2[13]=put/10+0x30; [12]=put/100+0x30;

}

{(i=0; i < 6 i++ ) [i]=lcd2[i]; // “active”(i=6; i < 40 i++ ) [i]= 0x20; (i=0; i < 40 i++ ) [i]= 0x20;

} (j=0; j < 4; j++ ) //init lcd

{ =0;=1;=1; ( (P1 & 0x80)!=0 )

{ E=0;E=0;E=1;E=1;}; //ogidanie gotovnosti=0; =0; =0;  //set regim komand

P1 = lcdreset [j]; //zapis dann-h

E=1

}(j=0; j < 16; j++ )

{ =0;=1;=1; ( (P1 & 0x80)!=0 );

{ E=0;E=0;E=1;E=1; } =0; =1; =0;    // set regim dann-h= lcddate1 [j]; =1; 

}(j=17; j < 40; j++ )

{ =0;=1;=1; ( (P1 & 0x80)!=0 );

{ E=0;E=0;E=1;E=1; } =0; =1; =0; = 0x20; =1;

}(j=0; j < 16; j++ )

{ =0;=1;=1; ( (P1 & 0x80)!=0 );

{ E=0;E=0;E=1;E=1; } =0; =1; =0;                       = lcddate2 [j];

E=1;            

}

}}

Похожие работы на - Контроллер управления роботизированной платформой на радио канале

 

Не нашел материал для своей работы?
Поможем написать качественную работу
Без плагиата!