如何找出我的RobotC代码出了什么问题?

时间:2019-10-18 14:09:53

标签: robotc

我想创建一个代码,该代码以颠簸开关开头,向前移动,碰到某些东西,向后移动,转身(不需要特定的角度,但是我大约要旋转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机器人上,并且它将贯穿整个代码,并且应该连续循环重复执行。

0 个答案:

没有答案