Robot Specific Python#

All standard VEXcode VR commands are available for use in the VIQRC Virtual Skills - Pitching In Playground.

Motion#

motor.spin()#

The motor.spin(direction) command is used to spin a motor indefinitely.

This is a non-waiting command and allows any subsequent commands to execute without delay.

To use this command, replace motor with the desired motor or motor group, for example: intake_motor.spin(direction).

Objects

Description

intake_motor

Spins Snapshot’s Intake to pick up Balls from the Field.

catapult_motor

Raises or lowers the catapult.

catapult_tension_motor

Raises or lowers the catapult’s tension, affecting the distance the Ball will be catapulted.

Parameters

Description

direction

The direction for the motor to move in: FORWARD or REVERSE.

Returns: None.

def main():
    # Spin the intake motor forward.
    intake_motor.spin(FORWARD)
    # Wait half a second.
    wait(0.5, SECONDS)
    # Stop spinning the intake motor group.
    intake_motor.stop()

motor.spin_for()#

The motor.spin_for(direction, distance, units, wait) command is used to spin a motor for a given amount of degrees or turns.

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

To use this command, replace motor with the desired motor or motor group, for example: intake_motor_group.spin_for(direction, distance, units, wait).

Objects

Description

intake_motor

Spins Snapshot’s Intake to pick up Balls from the Field.

catapult_motor

Raises or lowers the catapult.

catapult_tension_motor

Raises or lowers the catapult’s tension, affecting the distance the Ball will be catapulted.

Parameters

Description

direction

The direction for the motor to move in: FORWARD or REVERSE.

distance

The distance for the motor to move as an integer.

units

The units that the motor will use: DEGREES or TURNS.

wait

Optional. The wait parameter determines whether the command 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.

def main():
    # Spin the intake motor forward for 1 turn.
    intake_motor.spin_for(FORWARD, 1, TURNS)

motor.spin_to_position()#

The motor.spin_to(angle, units, wait) command is used to spin a motor to a given position.

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

To use this command, replace motor with the desired motor or motor group, for example: intake_motor_group.spin_for(angle, units, wait).

Objects

Description

intake_motor

Spins Snapshot’s Intake to pick up Balls from the Field.

catapult_motor

Raises or lowers the catapult.

catapult_tension_motor

Raises or lowers the catapult’s tension, affecting the distance the Ball will be catapulted.

Parameters

Description

angle

The specific angle or number of turns that the motor will spin to.

units

The units that the motor will use: DEGREES or TURNS.

wait

Optional. The wait parameter determines whether the command 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.

def main():
    # Spin the intake motor to 55 degrees.
    intake_motor.spin_to_position(55, DEGREES)

motor.stop()#

The motor.stop() command is used to stop a motor.

This is a non-waiting command and allows any subsequent commands to execute without delay.

To use this command, replace motor with the desired motor or motor group, for example: intake_motor_group.stop().

Objects

Description

intake_motor

Spins Snapshot’s Intake to pick up Balls from the Field.

catapult_motor

Raises or lowers the catapult.

catapult_tension_motor

Raises or lowers the catapult’s tension, affecting the distance the Ball will be catapulted.

Returns: None.

def main():
    # Spin the intake motor forward.
    intake_motor.spin(FORWARD)
    # Wait one second.
    wait(1, SECONDS)
    # Stop spinning the intake motor group.
    intake_motor.stop()

motor.set_position()#

The motor.set_position(position, units) command is used to set a motor’s encoder position to the given position value.

This is a non-waiting command and allows any subsequent commands to execute without delay.

To use this command, replace motor with the desired motor or motor group, for example: intake_motor_group.set_position(position, units).

Objects

Description

intake_motor

Spins Snapshot’s Intake to pick up Balls from the Field.

catapult_motor

Raises or lowers the catapult.

catapult_tension_motor

Raises or lowers the catapult’s tension, affecting the distance the Ball will be catapulted.

Parameters

Description

position

The specific integer for the IQ Motor’s encoder to be set to.

units

The units for the motor to use: DEGREES or TURNS.

Returns: None.

def main():
    # Set the current motor position to 90 degrees.
    intake_motor.set_position(90, DEGREES)
    # Spin the intake motor back to 0 degrees.
    intake_motor.spin_to_position(0, DEGREES)

motor.set_velocity()#

The motor.set_velocity(velocity, units) command is used to set the speed of a motor.

This is a non-waiting command and allows any subsequent commands to execute without delay.

To use this command, replace motor with the desired motor or motor group, for example: intake_motor_group.set_velocity(velocity, units).

Objects

Description

intake_motor

Spins Snapshot’s Intake to pick up Balls from the Field.

catapult_motor

Raises or lowers the catapult.

catapult_tension_motor

Raises or lowers the catapult’s tension, affecting the distance the Ball will be catapulted.

Parameters

Description

velocity

The speed that the IQ Motor will spin at, ranging from -100 to 100.

units

The unit for the Motor’s velocity, PERCENT.

Returns: None.

def main():
    # Set the intake motor velocity to 75 percent.
    intake_motor.set_velocity(75, PERCENT)
    # Spin the intake motor to 180 degrees.
    intake_motor.spin_to_position(180, DEGREES)

motor.set_timeout()#

The motor.set_timeout(value, units) command is used to set a time limit for a motor’s movement commands.

This prevents motion commands that do not reach their intended position from preventing subsequent commands from running.

This is a non-waiting command and allows any subsequent commands to execute without delay.

To use this command, replace motor with the desired motor or motor group, for example: intake_motor_group.set_timeout(value, units).

Objects

Description

intake_motor

Spins Snapshot’s Intake to pick up Balls from the Field.

catapult_motor

Raises or lowers the catapult.

catapult_tension_motor

Raises or lowers the catapult’s tension, affecting the distance the Ball will be catapulted.

Parameters

Description

value

The amount of time the motor will wait before stopping.

units

The unit for the Motor’s timer, SECONDS.

Returns: None.

def main():
    # Set the intake motor's timeout to 2 seconds.
    intake_motor.set_timeout(2, SECONDS)
    # Spin the intake motor to 270 degrees.
    intake_motor.spin_to_position(270, DEGREES)

Events#

intake_bumper.pressed()#

intake_bumper.pressed(callback) is the same command as bumper.pressed(callback).

The command only uses Fling’s specific bumper sensor intake_bumper to replace bumper in the standard command.

For information on how to use the bumper.pressed(callback) command, go to its API documentation here.

intake_bumper.released()#

intake_bumper.released(callback) is the same command as bumper.released(callback).

The command only uses Fling’s specific bumper sensor intake_bumper to replace bumper in the standard command.

For information on how to use the bumper.released(callback) command, go to its API documentation here.

Sensing#

motor.is_done()#

The motor.is_done() command is used to return a True or False value if the selected motor has completed its movement.

To use this command, replace motor with the desired motor or motor group, for example: intake_motor_group.is_done().

Objects

Description

intake_motor

Spins Snapshot’s Intake to pick up Balls from the Field.

catapult_motor

Raises or lowers the catapult.

catapult_tension_motor

Raises or lowers the catapult’s tension, affecting the distance the Ball will be catapulted.

Returns: This returns a Boolean value.

def main():
    # Move the Arm so it doesn't block the Front Distance Sensor.
    intake_motor.spin_to_position(1000, DEGREES)
    # Wait until the intake_motor has finished moving.
    if intake_motor.is_done():
        # Print the distance from the Front Distance Sensor to the closest
        # object in front of it.
        brain.screen.print(front_distance.object_distance(MM))

motor.is_spinning()#

The motor.is_spinning() command is used to return a True or False value if the selected motor is moving.

To use this command, replace motor with the desired motor or motor group, for example: intake_motor_group.is_spinning().

Objects

Description

intake_motor

Spins Snapshot’s Intake to pick up Balls from the Field.

catapult_motor

Raises or lowers the catapult.

catapult_tension_motor

Raises or lowers the catapult’s tension, affecting the distance the Ball will be catapulted.

Returns: This returns a Boolean value.

# Example coming soon.

motor.position()#

The motor.position(units) command is used to return the current rotational position of the selected motor.

To use this command, replace motor with the desired motor or motor group, for example: intake_motor_group.position(units).

Objects

Description

intake_motor

Spins Snapshot’s Intake to pick up Balls from the Field.

catapult_motor

Raises or lowers the catapult.

catapult_tension_motor

Raises or lowers the catapult’s tension, affecting the distance the Ball will be catapulted.

Parameters

Description

units

The unit of the returned value, DEGREES or TURNS.

Returns: This returns a numerical value.

def main():
    # Print the current position of the intake_motor_group in degrees.
    brain.screen.print(intake_motor_group.position(DEGREES))

motor.velocity()#

The motor.velocity(units) command is used to return the current velocity of the selected motor.

To use this command, replace motor with the desired motor or motor group, for example: intake_motor_group.velocity(units).

Objects

Description

intake_motor

Spins Snapshot’s Intake to pick up Balls from the Field.

catapult_motor

Raises or lowers the catapult.

catapult_tension_motor

Raises or lowers the catapult’s tension, affecting the distance the Ball will be catapulted.

Parameters

Description

units

The unit of the motor’s velocity, PERCENT.

Returns: This returns a numerical value.

def main():
    # Print the current velocity of the intake_motor.
    brain.screen.print(intake_motor_group.velocity(PERCENT))

intake_bumper.pressing()#

intake_bumper.pressing() is the same command as bumper.pressing().

The command only uses Fling’s specialized Bumper Sensor intake_bumper to replace bumper in the standard command.

For information on how to use the bumper.pressing() command, go to its API documentation here.

distance.object_distance()#

The distance.object_distance(units) command is used to report the distance of the nearest object from the Distance Sensor.

This is a non-waiting command and allows any subsequent commands to execute without delay.

Parameters

Description

units

The unit of the reported distance, INCHES or MM (Millimeters).

Returns: This returns a numeric value.

def main():
    # Print the current distance to the nearest object in MM.
    brain.print(distance.object_distance(MM))

distance.is_object_detected()#

The distance.is_object_detected() command is used to report a Boolean value if the Distance sensor sees an object within its field of view.

This is a non-waiting command and allows any subsequent commands to execute without delay.

Returns: This reports a Boolean value.

def main():
    # Print if the Distance Sensor detects an object in its Field of View.
    brain.print(distance.is_object_detected())

color.is_near_object()#

The color.is_near_object() command is used to report a Boolean value if the Color Sensor is close enough to an object to detect a color.

This is a non-waiting command and allows any subsequent commands to execute without delay.

Returns: This reports a Boolean value.

def main():
    # Print if the Color Sensor is detecting a color.
    brain.print(color.is_near_object())

color.color()#

The color.color() command is used to return the color detected by a VEX IQ Optical Sensor.

This is a non-waiting command and allows any subsequent commands to execute without delay.

The following colors can be used as a comparison to the color detected by an IQ Optical Sensor:

  • Color.RED

  • Color.GREEN

  • Color.BLUE

  • Color.YELLOW

  • Color.ORANGE

  • Color.PURPLE

  • Color.CYAN

Returns: This returns a Boolean value.

def main():
    # Print the color of the object that the Front Optical Sensor sees.
    brain.print(color.color())

color.brightness()#

The color.brightness() command is used to report the amount of light detected by a VEX IQ Optical Sensor within a range of 0 to 100 percent.

This is a non-waiting command and allows any subsequent commands to execute without delay.

Returns: This returns a numeric value.

def main():
    # Print the brightness of the object in front of Fling.
    brain.print(color.brightness())

color.hue()#

The color.brightness() command is used to report the hue of the object detected by a VEX IQ Optical Sensor within a range of 0 to 359. This number represents the location of the detected color on a color wheel.

This is a non-waiting command and allows any subsequent commands to execute without delay.

Returns: This returns a numeric value.

def main():
    # Print the hue of the object in front of Fling.
    brain.screen.print("Hue: ", optical.hue())