Задание
Выберите правильные варианты написания функции, с помощью которой робот сможет развернуться на месте налево на длину дуги, равной distance. Радиус колеса равен R. Левый мотор подключен в первый порт, правый мотор подключен в десятый порт. В данном случае будет использован оптический энкодер, подключенный в первый цифровой порт. Энкодер, как вы помните, измеряет угол поворота оси колеса величиной angle, размерностью которого в данном случае являются градусы.
int angle = 0;
void rotate(int LeftMotor, int RightMotor, int distance, int R)
{
angle = (180*distance)/(3.14*R);
while(SensorValue[dgtl1] < angle)
{
motor[port1] = -LeftMotor;
motor[port10] = RightMotor;
wait1Msec(30);
}
motor[port1] = 0;
motor[port10] = 0;
wait1Msec(30);
}
int angle = 0;
int encoder = 0;
void rotate(int LeftMotor, int RightMotor, int distance, int R)
{
angle = (180*distance)/(3.14*R);
while(encoder < angle)
{
motor[port1] = -LeftMotor;
motor[port10] = RightMotor;
wait1Msec(30);
encoder = SensorValue[dgtl1] ;
}
motor[port1] = 0;
motor[port10] = 0;
wait1Msec(30);
}
void rotate(int LeftMotor, int RightMotor, int distance, int R)
{
angle = (180*distance)/(3.14*R);
while(encoder < angle)
{
motor[port1] = -LeftMotor;
motor[port10] = RightMotor;
wait1Msec(30);
encoder = SensorValue[dgtl1] ;
}
motor[port1] = 0;
motor[port10] = 0;
wait1Msec(30);
}
int angle = 0;
void rotate(int LeftMotor, int RightMotor, int distance, int R)
{
angle = (180*distance)/(3.14*R);
while(SensorValue[dgtl1] < angle)
{
motor[port1] = LeftMotor;
motor[port10] = -RightMotor;
wait1Msec(30);
}
motor[port1] = 0;
motor[port10] = 0;
wait1Msec(30);
}
int angle = 0;
void rotate(int LeftMotor, int RightMotor, int distance, int R)
{
while(SensorValue[dgtl1] < distance)
{
motor[port1] = -LeftMotor;
motor[port10] = RightMotor;
wait1Msec(30);
}
motor[port1] = 0;
motor[port10] = 0;
wait1Msec(30);
}