我想创建一个代码,该代码以颠簸开关开头,向前移动,碰到某些东西,向后移动,转身(不需要特定的角度,但是我大约要旋转180度),并继续朝该方向前进直到碰到再次出现(无限期地遵循此循环)。只要在代码运行的整个过程中,使用USB电缆将计算机插入机器人皮质中,我的代码就可以正常工作。
尽管如此,对于我的项目,我需要将其从计算机下载到机器人上,拔出插头,并使其独立于计算机工作(它不会这样做,而是会向前移动,撞到墙壁,在完全停止之前向后移动时,它忽略了我的代码指示它应该转过来并重复代码的事实。我希望不要为我解决代码,而是,如果可以的话,在我现有的代码中发现任何问题,并尝试使其保持对我的技能水平和理解?
这是针对Vex机器人项目的,我需要让机器人通过碰撞开关启动(有2个,但只有touchSensor起作用,而不是touchSensor2),继续前进直到它与墙壁等物体接触(再次按下碰撞开关),然后向后移动,转身并继续移动,直到与另一物体接触为止(这应该是连续的循环)。
我已经尝试检查在使用“ Vexnet或USB”到“仅USB”(在RobotC上)之间的编码错误和转换错误,但是我没有发现任何人,而我的小组中的其他人似乎都不知道该怎么办要么。
#pragma config(Sensor, dgtl6, touchSensor, sensorTouch)
#pragma config(Sensor, dgtl10, touchSensor2, sensorTouch)
#pragma config(Motor, port2, rightMotor,
tmotorServoContinuousRotation, openLoop, reversed)
#pragma config(Motor, port3, leftMotor,
tmotorServoContinuousRotation, openLoop)
task main()
{
bool Go;
Go=true;
while(Go == true)
{
wait1Msec(400);
while(SensorValue(touchSensor) == 1)
{
motor[rightMotor] = 63;
motor[leftMotor] = 63;
wait1Msec(400);
while(SensorValue(touchSensor) == 0)
{
motor[rightMotor] = 63;
motor[leftMotor] = 63;
}
while(SensorValue(touchSensor) == 1)
{
motor[rightMotor] = -127;
motor[leftMotor] = -127;
}
wait1Msec(750);
if(SensorValue(touchSensor) == 0)
{
motor[rightMotor] = 63;
motor[leftMotor] = -63;
wait1Msec(1825);
motor[rightMotor] = 63;
motor[leftMotor] = 63;
wait1Msec(750);
}
}
}
}
我希望我应该能够将代码下载到我的Vex机器人上,并且它将贯穿整个代码,并且应该连续循环重复执行。