Как я могу выяснить, что не так с моим кодом RobotC? - PullRequest
0 голосов
/ 18 октября 2019

Я хочу сделать код, который начинается с ударного переключателя, движется вперед, ударяет что-то, движется назад, поворачивается вокруг (никакой особой степени не требуется, но я собирался примерно на 180) и продолжает двигаться вперед в этом направлении, пока не достигнетчто-то еще раз (следуя этой петле бесконечно). Мой код работал нормально до тех пор, пока я использовал USB-кабель для подключения компьютера к коре робота в течение всего времени выполнения кода.

Хотя для моего проекта мне нужно загрузить его на компьютер с компьютера, отключить его и заставить работать независимо от компьютера (он этого не сделает, вместо этого он движется вперед, нажимаетwall, a движется назад перед полной остановкой, игнорируя тот факт, что мой код требует, чтобы он развернулся и повторил код). Я предпочел бы, чтобы код не был решен для меня, и, скорее, если вы могли бы, найти какие-либо проблемы в моем ранее существующем коде и попытаться сохранить его на моем уровне квалификации и понимания?

Это для робота VexПроект, мне нужно, чтобы робот начал с нажатия на ударный переключатель (есть 2, но работает только touchSensor, а не touchSensor2), двигайтесь вперед до тех пор, пока он не соприкоснется с чем-то вроде стены (которая снова нажимает на переключатель), до того, какдвигаться назад, поворачиваться и продолжать движение, пока оно не соприкоснется с другой вещью (это должно быть в непрерывном цикле).

Я уже пробовал проверять ошибки в кодировании и ошибки перехода между использованием "Vexnet илиUSB "to" USB only "(на 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, и он будет проходить через весь код, который должен повторяться в непрерывном цикле.

...