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

Задание

Разработать модуль управления роботом gyrounit.pas. Проверить работоспособность модуля. Прямолинейное движение протестировать с остановкой: 1) по прохождению определенного расстояния в сантиметрах; 2) по появлению препятствия на определенном расстоянии; 3) по достижению двумя датчиками цвета/света черной линии.
type TDirect=(cSelf,cForward,cBackward);
     gyroTestFunc=function ():boolean;

Поворот вокруг оси по гироскопу
   procedure gyroAxis(angle:integer; maxspeed,minspeed:double; direct:TDirect);
Параметры
 angle - 	целевой угол, на который будет установлен гироскоп по окончании поворота
 maxspeed - 	максимальная скорость поворота, всегда >0
 minspeed - 	минимальная скорость поворота, всегда >0,<50,<maxspeed
 direct - 	направление поворота,
  cSelf - 	процедура самостоятельно выбирает корректное направление поворота,
  cForward - 	первый двигатель - вперед, второй - назад (в общем случае - поворот вправо),
  cBackward - 	второй двигатель - назад, первый - вперед (в общем случае - поворот влево)

Поворот вокруг колеса по гироскопу
   gyroWheel(angle:integer; maxspeed,minspeed:double; runWheel:TEv3TachoMotor; direct:TDirect);
Параметры
 angle - целевой угол, на который будет установлен гироскоп по окончании поворота
 maxspeed - максимальная скорость поворота, всегда >0
 minspeed - минимальная скорость поворота, всегда >0,<50,<maxspeed
 runWheel - движущееся колесо (мотор)
 direct - направление движения колеса,
  cSelf - процедура самостоятельно выбирает корректное направление движения колеса,
  cForward - движение колеса - вперед
  cBackward - движение колеса - назад

Прямолинейное движение по гироскопу
   procedure gyroRun(angle:integer; speed:double; forward:boolean; stopfunc:gyroTestFunc);
Параметры
 angle - целевой угол, направление на который надо выдерживать во время движения
 speed - скорость движения, всегда >0
 forward - направление движения, true - моторы вперед, false - моторы назад
 stopfunc - ссылка на стоп-функцию, которая вызывается на каждой итерации работы gyroRun; 
            если функция возвращает true, то выполнение gyroRun завершается.