Robot-Specific Python#
Introduction#
The VIQRC 21-22 Pitching In Playground features methods exclusive to this Playground, including three motor options and the Color Sensor.
All standard VEXcode VR methods are available for use in the VIQRC 21-22 Pitching In Playground.
Below is a list of all available Playground-specific methods:
Motion - Move and track the robot’s motors.
Actions
spin- Spins the selected motor indefinitely.spin_for- Spins a motor for a specific distance in degrees or turns.spin_to_position- Spins a motor to a set position.stop- Stops a specific motor from spinning.
Mutators
set_position- Sets the encoder value of a motor.set_velocity- Sets the speed of a motor as a percentage.set_timeout- Limits how long a motor command waits before giving up if movement is blocked.
Getters
is_done- Returns a Boolean indicating whether the motor is no longer spinning.is_spinning- Returns a Boolean indicating whether the motor is currently spinning.position- Returns the motor’s current rotational position in degrees or turns.velocity- Returns the motor’s current velocity in percent.
Sensing - Utilize the robot’s various sensors.
Color
color- Returns the color detected by the Color Sensor.brightness- Returns the brightness percentage detected by the sensor.hue- Returns the hue value of the detected color.is_near_object- Returns whether a detected object is near the Color Sensor.
The examples on this page use the default Playground start position.
Motion#
Actions#
spin#
spin spins a motor indefinitely.
Usage:
One of three available motor objects can be used with this method, as shown below:
motor |
Command |
|---|---|
|
|
|
|
|
|
Parameters |
Description |
|---|---|
|
The direction for the motor to spin depends on the selected motor.
|
def main():
# Spin the Intake Motor to collect a Ball
intake_motor.spin(FORWARD)
wait(1, SECONDS)
intake_motor.stop()
# VR threads — Do not delete
vr_thread(main)
spin_for#
spin_for spins a motor for a given amount of degrees or turns.
Usage:
One of three available motor objects can be used with this method, as shown below:
motor |
Command |
|---|---|
|
|
|
|
|
|
Parameters |
Description |
|---|---|
|
The direction for the motor to spin depends on the selected motor. |
|
The distance for the motor to spin as an integer. |
|
The unit that represents the distance to rotate:
|
|
Optional.
|
def main():
# Collect a Ball with the Intake Motor
intake_motor.spin_for(FORWARD, 1, TURNS)
# VR threads — Do not delete
vr_thread(main)
spin_to_position#
spin_to_position spins a motor to a given position.
Usage:
One of three available motor objects can be used with this method, as shown below:
motor |
Command |
|---|---|
|
|
|
|
|
|
Parameters |
Description |
|---|---|
|
The specific angle or number of turns that the motor will spin to. |
|
The unit that represents the angle to rotate to:
|
|
Optional.
|
def main():
# Move the Catapult Motor to a launch position
catapult_motor.spin_to_position(2600, DEGREES)
# VR threads — Do not delete
vr_thread(main)
stop motor#
stop stops a motor from spinning.
Usage:
One of three available motor objects can be used with this method, as shown below:
motor |
Command |
|---|---|
|
|
|
|
|
|
Parameters |
Description |
|---|---|
This method has no parameters. |
def main():
# Spin the Intake Motor, then stop it
intake_motor.spin(FORWARD)
wait(1, SECONDS)
intake_motor.stop()
# VR threads — Do not delete
vr_thread(main)
Mutators#
set_position#
set_position sets a motor’s encoder position to the given position value.
Usage:
One of three available motor objects can be used with this method, as shown below:
motor |
Command |
|---|---|
|
|
|
|
|
|
Parameters |
Description |
|---|---|
|
The specific integer for the motor’s encoder to be set to. |
|
The unit that represents the angle to rotate to:
|
def main():
# Set the Catapult Motor position, then return it to 0 degrees
catapult_motor.set_position(2600, DEGREES)
catapult_motor.spin_to_position(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
set_velocity#
set_velocity sets the speed of a motor.
Usage:
One of three available motor objects can be used with this method, as shown below:
motor |
Command |
|---|---|
|
|
|
|
|
|
Parameters |
Description |
|---|---|
|
The speed that the motor will spin at, ranging from -100 to 100. |
|
The unit that represents the new velocity:
|
def main():
# Set the Catapult Motor velocity before moving it
catapult_motor.set_velocity(75, PERCENT)
catapult_motor.spin_to_position(2600, DEGREES)
# VR threads — Do not delete
vr_thread(main)
set_timeout#
set_timeout sets 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.
Usage:
One of three available motor objects can be used with this method, as shown below:
motor |
Command |
|---|---|
|
|
|
|
|
|
Parameters |
Description |
|---|---|
|
The amount of time the motor will wait before stopping. |
|
The unit to represent the timeout:
|
def main():
# Limit how long the Catapult Motor waits to reach its target
catapult_motor.set_timeout(2, SECONDS)
catapult_motor.spin_to_position(5000, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Getters#
is_done#
is_done returns a Boolean indicating whether the specified motor is not spinning.
True- The specified motor is not spinning.False- The specified motor is spinning.
Usage:
One of three available motor objects can be used with this method, as shown below:
motor |
Command |
|---|---|
|
|
|
|
|
|
Parameters |
Description |
|---|---|
This method has no parameters. |
is_spinning#
is_spinning returns a Boolean indicating whether the specified motor is spinning.
True- The specified motor is spinning.False- The specified motor is not spinning.
Usage:
One of three available motor objects can be used with this method, as shown below:
motor |
Command |
|---|---|
|
|
|
|
|
|
Parameters |
Description |
|---|---|
This method has no parameters. |
position#
position returns the total distance the specified motor has rotated.
Usage:
One of three available motor objects can be used with this method, as shown below:
motor |
Command |
|---|---|
|
|
|
|
|
|
Parameters |
Description |
|---|---|
|
The units that represent the motor’s position:
|
def main():
# Print the current Catapult Motor position
brain.screen.print(catapult_motor.position(DEGREES))
# VR threads — Do not delete
vr_thread(main)
velocity#
velocity returns the current rotational speed of the motor.
Usage:
One of three available motor objects can be used with this method, as shown below:
motor |
Command |
|---|---|
|
|
|
|
|
|
Parameters |
Description |
|---|---|
|
The unit that represents the motor’s velocity:
|
def main():
# Print the current Intake Motor velocity
brain.screen.print(intake_motor.velocity(PERCENT))
# VR threads — Do not delete
vr_thread(main)
Sensing#
Color#
color#
color returns the color detected by the Color Sensor:
Color Returned: |
|---|
|
Usage:
color.color()
Parameters |
Description |
|---|---|
This method has no parameters. |
def main():
# Print the color detected by the Color Sensor
brain.screen.print(color.color())
# VR threads — Do not delete
vr_thread(main)
brightness#
brightness returns the brightness value detected by the Color Sensor as a percent from 0% to 100%.
Usage:
color.brightness()
Parameters |
Description |
|---|---|
This method has no parameters. |
def main():
# Print the Color Sensor brightness
brain.screen.print(color.brightness())
# VR threads — Do not delete
vr_thread(main)
hue#
hue returns the hue detected by the Color Sensor.
Hue values range from 0 to 359 degrees, corresponding to positions on the color wheel shown below.

Usage:
color.hue()
Parameters |
Description |
|---|---|
This method has no parameters. |
def main():
# Print the hue detected by the Color Sensor
brain.screen.print(color.hue())
# VR threads — Do not delete
vr_thread(main)
is_near_object#
is_near_object returns a Boolean indicating whether or not the Color Sensor detects an object close to the sensor.
True- The object is close to the Color Sensor.False- The object is not close to the Color Sensor.
Usage:
color.is_near_object()
Parameters |
Description |
|---|---|
This method has no parameters. |
def main():
# Print whether the Color Sensor detects an object nearby
brain.screen.print(color.is_near_object())
# VR threads — Do not delete
vr_thread(main)