Robot Specific Python#
All standard VEXcode VR commands are available for use in the V5RC Virtual Skills - Over Under 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 | 
|---|---|
| 
 | Spins Striker’s Intake to pick up Game Elements from the Field. | 
| 
 | Raises or lowers Striker’s Arm. | 
| Parameters | Description | 
|---|---|
| 
 | The direction for the motor to move in:  | 
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.spin_for(direction, distance, units, wait).
| Objects | Description | 
|---|---|
| 
 | Spins Striker’s Intake to pick up Game Elements from the Field. | 
| 
 | Raises or lowers Striker’s Arm. | 
| Parameters | Description | 
|---|---|
| 
 | The direction for the motor to move in:  | 
| 
 | The distance for the motor to move as an integer. | 
| 
 | The units that the motor will use:  | 
| 
 | Optional. The wait parameter determines whether the command will block subsequent commands ( | 
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.spin_for(angle, units, wait).
| Objects | Description | 
|---|---|
| 
 | Spins Striker’s Intake to pick up Game Elements from the Field. | 
| 
 | Raises or lowers Striker’s Arm. | 
| Parameters | Description | 
|---|---|
| 
 | The specific angle or number of turns that the motor will spin to. | 
| 
 | The units that the motor will use:  | 
| 
 | Optional. The wait parameter determines whether the command will block subsequent commands ( | 
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.stop().
| Objects | Description | 
|---|---|
| 
 | Spins Striker’s Intake to pick up Game Elements from the Field. | 
| 
 | Raises or lowers Striker’s Arm. | 
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.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.set_position(position, units).
| Objects | Description | 
|---|---|
| 
 | Spins Striker’s Intake to pick up Game Elements from the Field. | 
| 
 | Raises or lowers Striker’s Arm. | 
| Parameters | Description | 
|---|---|
| 
 | The specific integer for the Motor’s encoder to be set to. | 
| 
 | The units for the motor to use:  | 
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.set_velocity(velocity, units).
| Objects | Description | 
|---|---|
| 
 | Spins Striker’s Intake to pick up Game Elements from the Field. | 
| 
 | Raises or lowers Striker’s Arm. | 
| Parameters | Description | 
|---|---|
| 
 | The speed that the Motor will spin at, ranging from -100 to 100. | 
| 
 | The unit for the Motor’s velocity,  | 
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.set_timeout(value, units).
| Objects | Description | 
|---|---|
| 
 | Spins Striker’s Intake to pick up Game Elements from the Field. | 
| 
 | Raises or lowers Striker’s Arm. | 
| Parameters | Description | 
|---|---|
| 
 | The amount of time the motor will wait before stopping. | 
| 
 | The unit for the Motor’s timer,  | 
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 Striker’s specific bumper sensor intake_bumper to replace bumper in the standard command.
intake_bumper.released()#
intake_bumper.released(callback) is the same command as bumper.released(callback).
The command only uses Striker’s specific bumper sensor intake_bumper to replace bumper in the standard command.
front_optical.object_detected()#
front_optical.object_detected(callback) is the same command as eye.object_detected(callback).
The command only uses Striker’s Optical Sensor front_optical to replace eye in the standard command.
front_optical.object_lost()#
front_optical.object_lost(callback) is the same command as eye.object_lost(callback).
The command only uses Striker’s Optical Sensor front_optical to replace eye in the standard command.
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.is_done().
| Objects | Description | 
|---|---|
| 
 | Spins Striker’s Intake to pick up Game Elements from the Field. | 
| 
 | Raises or lowers Striker’s Arm. | 
Returns: This returns a Boolean value.
def main():
    # Move the Arm so it doesn't block the Front Distance Sensor.
    arm_motor.spin_to_position(1000, DEGREES)
    # Wait until the arm_motor has finished moving.
    if arm_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.is_spinning().
| Objects | Description | 
|---|---|
| 
 | Spins Striker’s Intake to pick up Game Elements from the Field. | 
| 
 | Raises or lowers Striker’s Arm. | 
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.position(units).
| Objects | Description | 
|---|---|
| 
 | Spins Striker’s Intake to pick up Game Elements from the Field. | 
| 
 | Raises or lowers Striker’s Arm. | 
| Parameters | Description | 
|---|---|
| 
 | The unit of the returned value,  | 
Returns: This returns a numerical value.
def main():
    # Print the current position of the intake_motor in degrees.
    brain.screen.print(intake_motor.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.velocity(units).
| Objects | Description | 
|---|---|
| 
 | Spins Striker’s Intake to pick up Game Elements from the Field. | 
| 
 | Raises or lowers Striker’s Arm. | 
| Parameters | Description | 
|---|---|
| 
 | The unit of the motor’s velocity,  | 
Returns: This returns a numerical value.
def main():
    # Print the current velocity of the arm_motor.
    brain.screen.print(arm_motor.velocity(PERCENT))
intake_bumper.pressing()#
intake_bumper.pressing() is the same command as bumper.pressing().
The command only uses Striker’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.
front_optical.is_near_object()#
The front_optical.near_object() command is used to report a Boolean value if the Optical 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 Front Optical Sensor is detecting a color.
    brain.print(front_optical.near_object())
front_optical.color()#
The front_optical.color() command is used to return the color detected by an 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 Optical Sensor:
- RED
- GREEN
- BLUE
- YELLOW
- ORANGE
- PURPLE
- CYAN
Returns: This returns the name of the detected color as a string.
def main():
    # Print the color of the object that the Front Optical Sensor sees.
    brain.print(front_optical.color())
front_optical.brightness()#
The front_optical.brightness() command is used to report the amount of light detected by an 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 Striker.
    brain.print(front_optical.brightness())
front_optical.hue()#
The front_optical.brightness() command is used to report the hue of the object detected by an 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 Striker.
    brain.screen.print("Hue: ", optical.hue())
gps.x_position()#
The gps.x_position(units) command is used to report the X positional offset of a GPS Sensor or defined origin point from the center of a field.
This is a non-waiting command and allows any subsequent commands to execute without delay.
| Parameters | Description | 
|---|---|
| 
 | The unit of the offset value,  | 
Returns: This returns a numeric value.
def main():
    # Print the current X positional offset of the robot.
    brain.screen.print(gps.x_position(MM))
gps.y_position()#
The gps.y_position(units) command is used to report the Y positional offset of a GPS Sensor or defined origin point from the center of a field.
This is a non-waiting command and allows any subsequent commands to execute without delay.
| Parameters | Description | 
|---|---|
| 
 | The unit of the offset value,  | 
Returns: This returns a numeric value.
def main():
    # Print the current Y positional offset of the robot.
    brain.screen.print(gps.y_position(MM))
gps.heading()#
The gps.heading() command is used to report the heading that a robot is currently facing based on a GPS Sensor’s readings from the VEX GPS Field Code.
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 current heading of the robot.
    brain.screen.print(gps.heading())