I am trying to run a nxt motor using the mindsensors motor multiplexer at a slow speed. When I turn it on, it tends to jump approx 20 to 40 degrees before moving at a slow speed. Has anyone seen this behavior?

I am using NXT 1.0 with firmware down loaded from lms_arm_mindsensors_129.rfw. Sample code in NXC (I am using Bricx Command Center as my IDE) is as follows:

MMX_Run_Degrees (SensorPort, Addr, MMX_Motor_2, MMX_Direction_Reverse,
     MMX_Speed_Slow, 220, MMX_Completion_Wait_For, MMX_Next_Action_Brake);

MMX_Run_Unlimited( SensorPort, Addr, MMX_Motor_2,MMX_Direction_Forward, 5);
// The jump happens here.
while(Sensor(IN_2)< SENSORTHRESHOLD);

I have seen this behaviour using the NxtMMX with the EV3 (while writing the driver for ev3dev). I am fairly certain that this is the speed regulation PID overshooting and then slowing down. In NXC you can use MMX_SetPerformanceParameters to change the PID parameters and possibly get rid of the overshoot.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.