MicroPython EvoMecanum#

class evo.EvoMecanum(frontLeft, frontRight, rearLeft, rearRight)#

Native synchronized four-motor mecanum drive helper. All arguments must be evo.EvoMotor instances. Constructor returns a new mecanum object.

Motion Profile

EvoMecanum.setStartSpeed(speed)#
EvoMecanum.setEndSpeed(speed)#
EvoMecanum.setAcceleration(acceleration)#
EvoMecanum.setDeceleration(deceleration)#

Configure ramp start speed, end speed, acceleration and deceleration. Negative values are stored as absolute values. These setters return None.

EvoMecanum.getAcceleration()#
EvoMecanum.getDeceleration()#

Return the configured acceleration or deceleration as an integer.

EvoMecanum.setAccelerationProfile(profile)#

Select evo.ACCEL_NONE, evo.ACCEL_TRAPEZOID or evo.ACCEL_SCURVE. Returns None.

EvoMecanum.getAccelerationProfile()#

Return the current acceleration profile constant.

Synchronisation

EvoMecanum.setStopBehavior(behaviour)#
EvoMecanum.setStopBehaviour(behaviour)#

Set the default stop behaviour to evo.COAST, evo.BRAKE or evo.HOLD. Returns None.

EvoMecanum.setSyncPID(kp, ki, kd)#

Set floating-point PID gains used to synchronize wheel progress during profiled moves. Returns None.

EvoMecanum.getSyncPID()#

Return (kp, ki, kd) as a tuple of floats.

Movement

EvoMecanum.move(x_dps, y_dps, turn_dps)#
EvoMecanum.moveSpeed(x_dps, y_dps, turn_dps)#

Start continuous speed-control mecanum motion. x is strafe, y is forward/back, and turn is rotation. move() is an alias of moveSpeed(). Returns None.

EvoMecanum.movePower(x_power, y_power, turn_power)#

Drive mecanum wheels from raw PWM power components. Returns None.

EvoMecanum.moveDegrees(x_dps, y_dps, turn_dps, degrees, stopBehavior=None)#
EvoMecanum.runDegrees(x_dps, y_dps, turn_dps, degrees, stopBehavior=None)#

Run a mecanum vector move until the encoder distance target is reached. Returns None.

EvoMecanum.moveTime(x_dps, y_dps, turn_dps, time_ms, slowdown_ms=200, stopBehavior=None)#
EvoMecanum.runTime(x_dps, y_dps, turn_dps, time_ms, slowdown_ms=200, stopBehavior=None)#

Run a mecanum vector move for time_ms milliseconds. Raises ValueError if time_ms is negative. Returns None.

State

EvoMecanum.hold()#
EvoMecanum.brake()#
EvoMecanum.coast()#

Stop all four motors using the named mode. Returns None.

EvoMecanum.stop(stopBehavior=evo.BRAKE)#

Stop all four motors immediately using the supplied behaviour. Returns None.

EvoMecanum.resetAngle()#

Reset all four motor angle references. Returns None.

EvoMecanum.isBusy()#

Return True while a blocking profiled move is active, otherwise False.

EvoMecanum.deinit()#

Brake all four motors and mark the drive idle. Returns None.