Я хочу написать код для своего робота Ev3 с двумя моторами. Я хочу, чтобы он мог пройти определенное расстояние, в данном случае вперед, пока двигатели не повернутся максимум на 2500 градусов в течение четырех секунд. Затем я хочу, чтобы робот вернулся на то же расстояние. Но проблема в том, что иногда вращается только один двигатель, а другой ничего не делает, а иногда двигатель будет продолжать вращаться еще долго после того, как он вернулся в исходное положение. Интересно, есть ли способ улучшить код, который у меня есть. Я пробовал его на нескольких разных устройствах Ev3, поэтому, скорее всего, это не аппаратная проблема. Любая помощь будет оценена по достоинству :)
b = Brick('ioType','usb');
b.outputStepSpeed(0,Device.MotorA,60,0,2500,0,Device.Brake);
b.outputStepSpeed(0,Device.MotorD,60,0,2500,0,Device.Brake);
pause(4)
b.outputStop(0,Device.MotorA,Device.Brake);
b.outputStop(0,Device.MotorD,Device.Brake);
tacho = b.outputGetCount(0,Device.MotorA);
disp(['> Tachometer: ' num2str(tacho)]);
b.outputClrCount(0,Device.MotorA);
b.outputClrCount(0,Device.MotorD);
pause(0)
b.outputStepSpeed(0,Device.MotorA,-60,0,tacho,0,Device.Brake);
b.outputStepSpeed(0,Device.MotorD,-60,0,tacho,0,Device.Brake);
pause(4)
b.outputStop(0,Device.MotorA,Device.Brake);
b.outputStop(0,Device.MotorD,Device.Brake);
tacho =
b.outputGetCount(0,Device.MotorA);
disp(['> Tachometer: ' num2str(tacho)]);
b.outputClrCount(0,Device.MotorA);
b.outputClrCount(0,Device.MotorD);
clear