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 |
---|---|
|
Spins Snapshot’s Intake to pick up Balls from the Field. |
|
Raises or lowers the catapult. |
|
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: |
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 |
---|---|
|
Spins Snapshot’s Intake to pick up Balls from the Field. |
|
Raises or lowers the catapult. |
|
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: |
distance |
The distance for the motor to move as an integer. |
units |
The units that the motor will use: |
wait |
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_group.spin_for(angle, units, wait)
.
Objects |
Description |
---|---|
|
Spins Snapshot’s Intake to pick up Balls from the Field. |
|
Raises or lowers the catapult. |
|
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: |
wait |
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_group.stop()
.
Objects |
Description |
---|---|
|
Spins Snapshot’s Intake to pick up Balls from the Field. |
|
Raises or lowers the catapult. |
|
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 |
---|---|
|
Spins Snapshot’s Intake to pick up Balls from the Field. |
|
Raises or lowers the catapult. |
|
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: |
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 |
---|---|
|
Spins Snapshot’s Intake to pick up Balls from the Field. |
|
Raises or lowers the catapult. |
|
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, |
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 |
---|---|
|
Spins Snapshot’s Intake to pick up Balls from the Field. |
|
Raises or lowers the catapult. |
|
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, |
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.
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.
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 |
---|---|
|
Spins Snapshot’s Intake to pick up Balls from the Field. |
|
Raises or lowers the catapult. |
|
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 |
---|---|
|
Spins Snapshot’s Intake to pick up Balls from the Field. |
|
Raises or lowers the catapult. |
|
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 |
---|---|
|
Spins Snapshot’s Intake to pick up Balls from the Field. |
|
Raises or lowers the catapult. |
|
Raises or lowers the catapult’s tension, affecting the distance the Ball will be catapulted. |
Parameters |
Description |
---|---|
units |
The unit of the returned value, |
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 |
---|---|
|
Spins Snapshot’s Intake to pick up Balls from the Field. |
|
Raises or lowers the catapult. |
|
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, |
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, |
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())