motor_group#
To make motor_group commands appear in VEXcode V5, a Motor must be configured in the Devices window.
For more information, refer to these articles:
Initializing the motor_group Class#
An EXP motor_group object is created by using the following constructor:
The motor_group constructor creates a motor_group object.
You can create a motor_group with any number of Motors.
// Create 2 Motors, Motor1 and Motor2 in
// Ports 1 and 2 respectively.
Motor1 = motor(PORT1);
Motor1 = motor(PORT2);
// Using the two previously created Motors, create a
// motor_group named MotorGroup1.
motor_group MotorGroup1 = motor_group(Motor1, Motor2);
This MotorGroup1 object will be used in all subsequent examples throughout this API documentation when referring to MotorGroup class methods.
MotorGroup.spin()#
The MotorGroup.spin(direction, velocity, units) command is used to spin a motor group in the specified direction forever, until another motion command is used, or the project is stopped.
To use this command, replace MotorGroup with the desired motor group, for example: ArmMotorGroup.spin(direction, velocity, units).
This is a non-waiting function and allows the next command to run without delay.
Parameters |
Description |
|---|---|
|
A valid |
|
Optional. The velocity at which the motor group will spin. If unspecified, the default velocity set by the |
|
Optional. A valid |
Returns: None.
// Spin motor group forward.
MotorGroup1.spin(forward);
MotorGroup.spinToPosition()#
The MotorGroup.spinToPosition(rotation, units, velocity, units_v, wait) command is used to spin a motor group to an absolute position using the provided arguments.
To use this command, replace MotorGroup with the desired motor group, for example: ArmMotorGroup.spinToPosition(rotation, units, velocity, units_v, wait).
This function can be a waiting or non-waiting command depending on if the wait parameter is used.
Parameters |
Description |
|---|---|
|
The position to spin the motor group to. |
|
Optional. A valid |
|
Optional. The velocity at which the motor group will spin. If unspecified, the default velocity set by the |
|
Optional. A valid |
|
Optional. Determines whether the command will block subsequent commands ( |
Returns: None.
// Spin motor group to 180 degrees.
MotorGroup1.spinToPosition(180);
MotorGroup.spinFor()#
The MotorGroup.spinFor(direction, value, units, velocity, units_v, wait) command is used to spin the motor group for a specific duration, rotations, or until a specific encoder value is reached. The position is relative to the current position of the motor group.
To use this command, replace MotorGroup with the desired motor group, for example: ArmMotorGroup.spinFor(direction, value, units, velocity, units_v, wait).
This can be a waiting or non-waiting command depending on if the wait parameter is used.
Parameters |
Description |
|---|---|
|
A valid |
|
The value for the motor group to spin to. |
|
Optional. A valid |
|
Optional. The velocity at which the motor group will spin. If unspecified, the default velocity set by the |
|
Optional. A valid |
|
Optional. Determines whether the command will block subsequent commands ( |
Returns: None.
// Spin 180 degrees from the current position.
MotorGroup1.spinFor(forward, 180);
MotorGroup.stop()#
The MotorGroup.stop(mode) command is used to stop a motor group, setting them to 0 velocity and configuring the current stopping mode.
To use this command, replace MotorGroup with the desired motor group, for example: ArmMotorGroup.stop(mode).
This is a non-waiting command and allows the next command to run without delay.
Parameters |
Description |
|---|---|
|
A valid |
Returns: None.
// Stop the motor group.
MotorGroup1.stop()
MotorGroup.count()#
The MotorGroup.count() command returns the number of motors in the group.
This is a non-waiting command and allows the next command to run without delay.
Returns: The number of motors in the group.
MotorGroup.setVelocity()#
The MotorGroup.setVelocity(velocity, units) command is used to set the default velocity for a motor group. This velocity setting will be used for subsequent calls to any motion functions if a specific velocity is not provided.
To use this command, replace MotorGroup with the desired motor group, for example: ArmMotorGroup.setVelocity(velocity, units).
This is a non-waiting command and allows the next command to run without delay.
Parameters |
Description |
|---|---|
|
The new velocity to set for the motor group. |
|
Optional. A valid |
Returns: None.
MotorGroup.setStopping()#
The MotorGroup.setStopping(mode) command is used to set the stopping mode for a motor group.
To use this command, replace MotorGroup with the desired motor group, for example: ArmMotorGroup.setStopping(mode).
This is a non-waiting command and allows the next command to run without delay.
Parameters |
Description |
|---|---|
|
A valid |
Returns: None.
MotorGroup.resetPosition()#
The MotorGroup.resetPosition() command resets the motor group position to 0.
This is a non-waiting command and allows the next command to run without delay.
Returns: None.
MotorGroup.setPosition()#
The MotorGroup.setPosition(value, units) command is used to set the position of a motor group. The position that is returned by the MotorGroup.position() function will be updated to this new value.
To use this command, replace MotorGroup with the desired motor group, for example: ArmMotorGroup.setPosition(value, units).
This is a non-waiting command and allows the next command to run without delay.
Parameters |
Description |
|---|---|
|
The new position to set for the motor group. |
|
Optional. A valid |
Returns: None.
MotorGroup.setTimeout()#
The MotorGroup.setTimeout(value, units) command is used to set the timeout for a motor group.
To use this command, replace MotorGroup with the desired motor group, for example: ArmMotorGroup.setTimeout(value, units).
This is a non-waiting command and allows the next command to run without delay.
Parameters |
Description |
|---|---|
|
The new timeout to set for the motor group. |
|
Optional. A valid |
Returns: None.
MotorGroup.isSpinning()#
The MotorGroup.isSpinning() command returns if the motor group is currently spinning.
This is a non-waiting command and allows the next command to run without delay.
Returns: True if the motor group is currently spinning. False if it is not.
MotorGroup.isDone()#
The MotorGroup.isDone() command returns if the motor group has completed its movement.
This is a non-waiting command and allows the next command to run without delay.
Returns: True if the motor group has completed its movement. False if it has not.
MotorGroup.setMaxTorque()#
The MotorGroup.setMaxTorque(value, units) command is used to set the maximum torque for a motor group. The torque can be set as torque, current, or a percent of maximum torque.
To use this command, replace MotorGroup with the desired motor group, for example: ArmMotorGroup.setMaxTorque(value, units).
This is a non-waiting command and allows the next command to run without delay.
Parameters |
Description |
|---|---|
|
The new maximum torque for a motor group. |
|
A valid |
Returns: None.
// Set maximum torque to 2 Newton Meters.
MotorGroup1.setMaxTorque(2, Nm);
MotorGroup.direction()#
The MotorGroup.direction() command returns the current direction the motor group is spinning in.
This is a non-waiting command and allows the next command to run without delay.
Returns: The current directionType the motor group is spinning in.
MotorGroup.position()#
The MotorGroup.position(units) command returns the current position of the motor group.
This is a non-waiting command and allows the next command to run without delay.
Parameters |
Description |
|---|---|
|
Optional. A valid |
Returns: The current position of the motor group in the specified units.
MotorGroup.velocity()#
The MotorGroup.velocity(units) command returns the current velocity of the motor group.
This is a non-waiting command and allows the next command to run without delay.
Parameters |
Description |
|---|---|
|
Optional. A valid |
Returns: The current velocity of the motor group in the specified units.
MotorGroup.current()#
The MotorGroup.current(units) command returns the current being used by the motor group.
This is a non-waiting command and allows the next command to run without delay.
Parameters |
Description |
|---|---|
|
Optional. The only valid unit for current is |
Returns: The current being drawn by the motor group in the specified units.
MotorGroup.power()#
The MotorGroup.power(units) command returns the power being consumed by the motor group.
This is a non-waiting command and allows the next command to run without delay.
Parameters |
Description |
|---|---|
|
Optional. The only valid unit for power is |
Returns: The power being consumed by the motor group in the specified units.
MotorGroup.torque()#
The MotorGroup.torque(units) command returns the torque being generated by the motor group.
This is a non-waiting command and allows the next command to run without delay.
Parameters |
Description |
|---|---|
|
Optional. A valid |
Returns: The torque being generated by the motor group in the specified units.
MotorGroup.efficiency()#
The MotorGroup.efficiency(units) command returns the efficiency of the motor group.
This is a non-waiting command and allows the next command to run without delay.
Parameters |
Description |
|---|---|
|
Optional. The only valid unit for efficiency is |
Returns: The efficiency of the motor group as a percent.
MotorGroup.temperature()#
The MotorGroup.temperature(units) command returns the temperature of the motor group.
This is a non-waiting command and allows the next command to run without delay.
Parameters |
Description |
|---|---|
|
Optional. A valid |
Returns: The temperature of the motor group in the specified units.