RoboClaw Series
Brushed DC Motor Controllers
RoboClaw Series User Manual
97
BASICMICRO
50 - Drive M1 / M2 With Signed Speed And Individual Acceleration
Drive M1 and M2 in the same command using one value for acceleration and two signed speed
values for each motor. The sign indicates which direction the motor will run. The acceleration
value is not signed. The motors are sync during acceleration. This command is used to drive
the motor by quad pulses per second and using an acceleration value for ramping. Different
quadrature encoders will have different rates at which they generate the incoming pulses. The
values used will differ from one encoder to another. Once a value is sent the motor will begin to
accelerate incrementally until the rate defined is reached.
Send: [Address, 50, AccelM1(4 Bytes), SpeedM1(4 Bytes), AccelM2(4 Bytes),
SpeedM2(4 Bytes), CRC(2 bytes)]
Receive: [0xFF]
The acceleration is measured in speed increase per second. An acceleration value of 12,000
QPPS with a speed of 12,000 QPPS would accelerate a motor from 0 to 12,000 QPPS in 1 second.
Another example would be an acceleration value of 24,000 QPPS and a speed value of 12,000
QPPS would accelerate the motor to 12,000 QPPS in 0.5 seconds.
51 - Buffered Drive M1 / M2 With Signed Speed, Individual Accel And Distance
Drive M1 and M2 with a speed, acceleration and distance value. The sign indicates which
direction the motor will run. The acceleration and distance values are not signed. This command
is used to control both motors top speed, total distanced traveled and at what incremental
acceleration value to use until the top speed is reached. Each motor channel M1 and M2 have
separate buffers. This command will execute immediately if no other command for that channel
is executing, otherwise the command will be buffered in the order it was sent. Any buffered
or executing command can be stopped when a new command is issued by setting the Buffer
argument. All values used are in quad pulses per second.
Send: [Address, 51, AccelM1(4 Bytes), SpeedM1(4 Bytes), DistanceM1(4 Bytes),
AccelM2(4 Bytes), SpeedM2(4 bytes), DistanceM2(4 Bytes), Buffer, CRC(2 bytes)]
Receive: [0xFF]
The Buffer argument can be set to a 1 or 0. If a value of 0 is used the command will be buffered
and executed in the order sent. If a value of 1 is used the current running command is stopped,
any other commands in the buffer are deleted and the new command is executed.
52 - Drive M1 With Signed Duty And Acceleration
Drive M1 with a signed duty and acceleration value. The sign indicates which direction the motor
will run. The acceleration values are not signed. This command is used to drive the motor by
PWM and using an acceleration value for ramping. Accel is the rate per second at which the duty
changes from the current duty to the specified duty.
Send: [Address, 52, Duty(2 bytes), Accel(2 Bytes), CRC(2 bytes)]
Receive: [0xFF]
The duty value is signed and the range is -32768 to +32767(eg. +-100% duty). The accel value
range is 0 to 655359(eg maximum acceleration rate is -100% to 100% in 100ms).