MotorGroup#

Initializing the MotorGroup Class#

The MotorGroup constructor creates a MotorGroup object.

You can create a MotorGroup with any number of Motors.

# Create 2 Motors, motor_1 and motor_2 in
# Ports 1 and 2 respectively. 
motor_1 = Motor(Ports.PORT1)
motor_2 = Motor(Ports.PORT2)
# Using the two previously created Motors, create a
# MotorGroup named motor_group_1.
motor_group_1 = MotorGroup(motor_1, motor_2)

This motor_group_1 object will be used in all subsequent examples throughout this API documentation when referring to MotorGroup class methods.

Class Methods#

spin()#

The spin(direction, velocity, units) method is used to spin all Motors in a MotorGroup in the specified direction until a spin or stop method is used, or the project is stopped.

This is a non-blocking function and allows the next method to run without delay.

Parameters

Description

direction

A valid DirectionType.

velocity

Optional. The velocity at which the Motors in the MotorGroup will spin. The default velocity set by the set_velocity() method will be used.

units

Optional. A valid VelocityUnit or PERCENT. The default is RPM.

Returns: None.

# Spin all Motors in motor_group_1 forward.
motor_group_1.spin(FORWARD)

spin_to_position()#

The spin_to_position(rotation, units, velocity, units_v, wait) method is used to spin all Motors in a MotorGroup to an absolute position using the provided arguments.

This function can be a blocking or non-blocking method depending on if the wait parameter is set to True.

Parameters

Description

rotation

The position to spin the Motors in a MotorGroup to.

units

Optional. A valid RotationUnit. The default is DEGREES.

velocity

Optional. The velocity with which the Motors in a MotorGroup will spin. The default velocity set by the set_velocity() method will be used.

units_v

Optional. A valid VelocityUnit or PERCENT. The default is RPM.

wait

Optional. Determines whether the method will block subsequent commands (wait=True) or allow immediate execution (wait=False). If unspecified, the default for The wait parameter is wait=True.

Returns: None.

# Spin the Motors in motor_group_1 to the position 90
# degrees at 100 RPM.
motor_group_1.spin_to_position(90, DEGREES, 100, RPM)

spin_for()#

The spin_for(direction, value, units, velocity, units_v, wait) method is used to spin all Motors in a MotorGroup for a specific duration, rotations, or until a specific encoder value is reached. The position is relative to the current position of the Motors in the MotorGroup.

This can be a blocking or non-blocking method depending on if the wait parameter is used.

Parameters

Description

direction

A valid DirectionType.

value

The value for the Motors in a MotorGroup to spin to.

units

Optional. A valid RotationUnit. The default is DEGREES.

velocity

Optional. The velocity with which the Motors in a MotorGroup will spin. The default velocity set by the set_velocity() method will be used.

units_v

Optional. A valid VelocityUnit or PERCENT. The default is RPM.

wait

Optional. Determines whether the method will block subsequent commands (wait=True) or allow immediate execution (wait=False). If unspecified, the default for The wait parameter is wait=True.

Returns: None.

# Spin the Motors in motor_group_1 forward for 10 turns
# at 100% velocity.
motor_group_1.spin_for(FORWARD, 10, TURNS, 100, PERCENT)

stop()#

The stop(mode) method is used to stop all Motors in a MotorGroup, setting them to 0 velocity and configuring the current stopping mode.

Parameters

Description

mode

Optional. A valid BrakeType. The default is COAST, unless previously changed using the set_stopping() method.

Returns: None.

# Spin all Motors in motor_group_1 forward for 2.5 seconds.
motor_group_1.spin(FORWARD)

wait(2.5, SECONDS)

# Stop all Motos in motor_group_1 using the HOLD brake type.
motor_group_1.stop(HOLD)

count()#

The count() method returns the number of Motors in the MotorGroup.

Returns: The number of Motors in the MotorGroup.

set_velocity()#

The set_velocity(velocity, units) method is used to set the default velocity for all Motors in a MotorGroup. This velocity setting will be used for subsequent calls to any motion functions if a specific velocity is not provided.

Parameters

Description

velocity

The new velocity to set for the Motors in a MotorGroup.

units

A valid VelocityUnit or PERCENT.

Returns: None.

# Spin the Motors in motor_group_1 forward at 75% velocity.
motor_group_1.set_velocity(75, PERCENT)

motor_group_1.spin(FORWARD)

set_stopping()#

The set_stopping(mode) method is used to set the stopping mode for all Motors in a MotorGroup.

Parameters

Description

mode

A valid BrakeType.

Returns: None.

reset_position()#

The reset_position() method resets the position of all Motors in a MotorGroup to 0. The position that is returned by the position() method will be updated to 0.

Returns: None.

set_position()#

The set_position(value, units) method is used to set the position of all Motors in a MotorGroup. The position that is returned by the position() method will be updated to this new value.

Parameters

Description

value

The new position to set for all Motors in a MotorGroup.

units

A valid RotationUnit.

Returns: None.

set_timeout()#

The set_timeout(value, units) method is used to set the timeout for all Motors in a MotorGroup. The position that is returned by the get_timeout() method will be updated to this new value.

Parameters

Description

value

The new timeout to set for all Motors in a MotorGroup.

units

Optional. A valid TimeUnit. The default is MSEC.

Returns: None.

is_spinning()#

The is_spinning() method returns the current status of the spin_to_position() or spin_for() methods. This function is used when False has been passed as the wait parameter in either method.

Returns: True if any Motor in the MotorGroup is still spinning. False if the Motors in the MotorGroup have completed the move or a timeout has occurred.

is_done()#

The is_done() method returns the current status of the spin_to_position() or spin_for() method. This function is used when False has been passed as the wait parameter in either method.

Returns: True if any Motor in the MotorGroup is still spinning. False if the Motors in the MotorGroup have completed the move or a timeout has occurred.

set_max_torque()#

The set_max_torque(value, units) method is used to set the maximum torque for all Motors in a MotorGroup. The torque can be set as torque units, current units, or a percent of maximum torque.

Parameters

Description

value

The new maximum torque for all Motors in a MotorGroup.

units

A valid TorqueUnit, AMP, or PERCENT.

Returns: None.

direction()#

The direction() method returns the current direction the first Motor in a MotorGroup is spinning.

Returns: The current DirectionType the first Motor in a MotorGroup is spinning.

position()#

The position(units) method returns the current position of the first Motor in a MotorGroup.

Parameters

Description

units

Optional. A valid RotationUnit. The default is DEGREES.

Returns: The current position of the first Motor in a MotorGroup in the specified units.

velocity()#

The velocity(units) method returns the current velocity of the first Motor in a MotorGroup.

Parameters

Description

units

Optional. A valid VelocityUnit. The default is RPM.

Returns: The current velocity of the first Motor in a MotorGroup in the specified units.

current()#

The current(units) method returns the total current being used by the Motors in a MotorGroup.

Parameters

Description

units

Optional. The only valid units for current are AMP or PERCENT.

Returns: The total current being drawn by the Motors in a MotorGroup in the specified units.

power()#

The power(units) method returns the power the first Motor in a MotorGroup is providing.

Parameters

Description

units

Optional. The only valid units for power are WATT or PERCENT.

Returns: The power the first Motor in a MotorGroup is providing in the specified units.

torque()#

The torque(units) method returns the torque the first Motor in a MotorGroup is providing.

Parameters

Description

units

Optional. A valid TorqueUnit. The default is NM.

Returns: The torque the first Motor in a MotorGroup is providing in the specified units.

efficiency()#

The efficiency(units) method returns the efficiency of the first Motor in a MotorGroup.

Parameters

Description

units

Optional. The only valid unit for efficiency is PERCENT.

Returns: The efficiency of the first Motor in a MotorGroup as a percent.

temperature()#

The temperature(units) method returns the temperature of the first Motor in a MotorGroup.

Parameters

Description

units

Optional. A valid TemperatureUnit. The default is CELSIUS.

Returns: The temperature of the first Motor in a MotorGroup in the specified units.