=====общие сведения.===== программа control_motors (1308:643.MGUL.13080-02_12_01);\\ для запуска требуются библиотека servo.h;\\ написана на языке C. =====функциональное назначение.===== в зависимости от полученных команд с бортовой ЭВМ программа осуществляет управление двигателями подвижной платформы , а также задает положение веб-камеры. =====описание логической структуры.===== программа в бесконечном цикле считывает полученный данные с бортовой ЭВМ переданные по последовательному порту на скорости 9600 Бод/сек. в зависимости от полученной команды с помощью функции //switch// вызывается определенная функция выполняющая определенную задачу. программа содержит следующие функции: * **forward** - функция отвечает за движение вперед * **right** - функци я отвечает за поворот на месте направо * **left** - функция отвечает за поворот на месте налево * **back** - функция отвечает за движение назад * **stop1** - функция отвечает за остановку всех двигателей * **rightforward** - функция отвечает за движение направо * **leftforward** - функция отвечает за движение налево * **servokursright** - функция отвечает за движение веб-камеры по курсу направо * **servokursleft** - функция отвечает за движение веб-камеры по курсу налево * **servotungright** - функция отвечает за движение по тангажу наверх * **servotungleft** - функция отвечает за движение по тангажу вниз * **defaultposition** - функция ставит веб-камеру в положение по умолчанию * **porog** - функция считывает показания с дальномеров (которых сейчас нету) и не дает упасть в пропасть роботу в пропасть * **keyselect** - функция определяет какая команда пришла с бортовой ЭВМ * **root** - функция включает режим ручного управления, и не обращает внимания на показания датчиков * **connection** - функция вызывает функцию **stop1**, после чего останавливает выполнение программы на 2 секунды * **GetEchoTiming** - функция отвечает за измерение расстояния от ультразвукового датчика до препятствия. [[doc:1308:643.MGUL.13080-02_12_02|программа передачи управляющих команд на контроллер платформы]] передает байт(символ в ASСII кодировке) который эта программа воспринимает как управляющие команды. =====используемые технические средства.===== для работы программы используются следующие технические средства: * arduino mega 2560 * драйвер моторов двигателей L298N * 2 сервопривода SG-90 * дальномеры(?) =====вызов и загрузка.===== =====входные данные.===== программы принимается следующие команды: | **управляющие команды** | **вызываемая функция или действие** | | //A// | LeftForward | | //B// | Back | | //C// | RightForward | | //D// | LeftSpeedUp | | //E// | LeftSpeedDown | | //F// | Forward | | //G// | зарезервировано для автономного движения | | //H// | зарезервировано для автономного движения | | //I// | root (вход) | | //J// | root (выход) | | //K// | RightSpeedUp | | //L// | Left | | //M// | RightSpeedDown | | //N// | Connection | | //O// | ServoKursRight | | //P// | ServoTungRight | | //Q// | ServoTungLeft | | //R// | Right | | //S// | Stop1 | | //T// | ServokursLeft | | //U// | DefaultPosition | =====выходные данные.===== программа выдает информацию о выполняемых действиях, в каждом сообщении содержится бортовое время разделенное табуляцией.