2017-12-17 6 views
1

私はEv3ロボットのコードを2つのモーターで書きたいと思っています。私はそれがある距離を移動することができるようにしたい、この場合、モーターが4秒間に最大2500度まで回転するまで進む。それから私はロボットを同じ距離に戻したい。しかし問題は、一方のモーターが回転し、他方のモーターが回転しないことがあり、モーターが元の位置に戻った後もずっと回転し続けることがあるということです。私が持っているコードを改善する方法があるのだろうかと思います。私はいくつかの異なるEv3のequitmentでそれを試したので、ハードウェアの問題ではない可能性が高いです。任意の助けをいただければ幸いです:)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 

答えて

0

あなたのポートが正しいか、接続されているかどうかを確認してください。また、すべてのEV3モーターが完全に同じように製造されているわけではありません。つまり、あるものがより強くなり、まっすぐに動くことはほとんど不可能です。この場合、ジャイロを使うと助けになるかもしれません。

さらなるヘルプが必要な場合は、コメントをお寄せください。

関連する問題