Мозговой штурм Ev3 движется вперед и назад по прямой

Я хочу написать код для своего робота 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

person kallemannen    schedule 17.12.2017    source источник


Ответы (1)


проверьте правильность ваших портов и подключены ли они. Также знайте, что не все двигатели EV3 производятся одинаково, а это означает, что некоторые из них могут быть мощнее, что делает практически невозможным движение прямо. В этом случае может помочь использование гироскопа.

Оставьте комментарий, если вам нужна дополнительная помощь!

person Community    schedule 06.02.2018