#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,我不知道为什么机器人过度转动,只是一点点,但我不知道为什么。我也使用了squarebot。 我正在使用robocci程序。我用钉子作为开始距离。
答案 0 :(得分:0)
陀螺仪传感器并不总是从0开始。您需要将初始值存储到变量中,并找到读取值和初始值之间的差值。
陀螺传感器也是只读的,所以这句话
SensorValue[gyro] = 0;
无效。