Радиус поворота неточный робота неточный
#pragma config(StandardModel, "RVW SQUAREBOT")
task main(){
int begindistance = SensorValue[sonarSensor];
while (SensorValue[gyro] < 900){
motor[leftMotor] = 20;
motor[rightMotor] = -20;
}
motor[leftMotor] = 0;
motor[rightMotor] = 0;
SensorValue[leftEncoder] = 0;
SensorValue[rightEncoder] = 0;
while (SensorValue[sonarSensor] > 25){
motor[leftMotor] = 50;
motor[rightMotor] =50;
}
SensorValue[gyro] = 0;
int z = 180 - atan(begindistance/SensorValue[leftEncoder]);
while (SensorValue[gyro] > -z){
motor[leftMotor] = -31;
motor[rightMotor] = 31;
}
motor[leftMotor] = 0;
motor[rightMotor] = 0;
}
кстати, начальное расстояние 178, я не знаю, почему робот переворачивается, но я не знаю почему. Я также использую квадратный бот. Я использую программу Robocci. и я использую колышек для начала расстояния.
1 ответ
Решение
Гиродатчик не всегда начинается с 0. Вам нужно сохранить начальное значение в переменной и найти разницу между считанным значением и начальным значением.
Гиросенсор также доступен только для чтения, поэтому это утверждение
SensorValue[gyro] = 0;
не сработает