Python específico para robots#
Introducción#
El parque infantil VIQRC 24-25 Rapid Relay incorpora métodos exclusivos de este modelo, incluyendo dos opciones de motor y el sensor óptico de admisión.
Todos los métodos VEXcode VR estándar están disponibles para su uso en el entorno de pruebas VIQRC 24-25 Rapid Relay.
A continuación se muestra una lista de todos los métodos disponibles específicos de Playground:
Movimiento: Mueve y rastrea los motores del robot.
Comportamiento
spin- Spins the selected motor or motor group indefinitely.spin_for- Spins a motor or motor group for a specific distance in degrees or turns.spin_to_position- Spins a motor or motor group to a set position.stop- Stops a specific motor or motor group from spinning.
Mutadores
set_position- Sets the encoder value of a motor or motor group.set_velocity- Sets the speed of a motor or motor group as a percentage.set_timeout- Limits how long a motor command waits before giving up if movement is blocked.
Obtenidos
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.
Detección: Utilice los diversos sensores del robot.
Óptico
is_near_object- Returns whether a detected object is near the Optical Sensor.color- Returns the color detected by the Optical Sensor.brightness- Returns the brightness percentage detected by the sensor.hue- Returns the hue value of the detected color.object_detected- Registers a callback function for when the Optical Sensor detects an object.object_lost- Registers a callback function for when the Optical Sensor loses an object.
Los ejemplos de esta página utilizan la posición de inicio predeterminada del Playground.
Movimiento#
Comportamiento#
girar#
spin spins a motor or motor group indefinitely.
Uso:
Se puede utilizar uno de los dos objetos de motor disponibles con este método, como se muestra a continuación:
motor |
Dominio |
|---|---|
|
|
|
|
Parámetros |
Descripción |
|---|---|
|
The direction for the motor to spin:
|
def main():
# Spin the Intake Motor to bring a Ball onto the Catapult
intake_motor.spin(FORWARD)
wait(2, SECONDS)
intake_motor.stop()
# VR threads — Do not delete
vr_thread(main)
girar_para#
spin_for spins a motor or motor group for a given amount of degrees or turns.
Uso:
Se puede utilizar uno de los dos objetos de motor disponibles con este método, como se muestra a continuación:
motor |
Dominio |
|---|---|
|
|
|
|
Parámetros |
Descripción |
|---|---|
|
The direction for the motor to spin:
|
|
La distancia que debe girar el motor como un número entero. |
|
The unit that represents the distance to rotate:
|
|
Optional.
|
def main():
# Release the preloaded Ball
catapult_group.spin_for(REVERSE, 5, DEGREES)
# Lower the Catapult to prepare to load another Ball
catapult_group.spin_for(FORWARD, 1350, DEGREES)
# VR threads — Do not delete
vr_thread(main)
girar_a_posición#
spin_to_position spins a motor or motor group to a given position.
Uso:
Se puede utilizar uno de los dos objetos de motor disponibles con este método, como se muestra a continuación:
motor |
Dominio |
|---|---|
|
|
|
|
Parámetros |
Descripción |
|---|---|
|
El ángulo específico o el número de vueltas que girará el motor. |
|
The unit that represents the angle to rotate to:
|
|
Optional.
|
def main():
# Release the preloaded Ball
catapult_group.spin_to_position(-90, DEGREES)
# Lower the Catapult to prepare to load another Ball
catapult_group.spin_to_position(1260, DEGREES)
# VR threads — Do not delete
vr_thread(main)
motor de parada#
stop stops a motor or motor group from spinning.
Uso:
Se puede utilizar uno de los dos objetos de motor disponibles con este método, como se muestra a continuación:
motor |
Dominio |
|---|---|
|
|
|
|
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
def main():
# Spin the Intake Motor to bring a Ball onto the Catapult
intake_motor.spin(FORWARD)
wait(2, SECONDS)
intake_motor.stop()
# VR threads — Do not delete
vr_thread(main)
Mutadores#
posición_de_establecer#
set_position sets a motor’s or motor group’s encoder position to the given position value.
Uso:
Se puede utilizar uno de los dos objetos de motor disponibles con este método, como se muestra a continuación:
motor |
Dominio |
|---|---|
|
|
|
|
Parámetros |
Descripción |
|---|---|
|
El número entero específico al que se debe configurar el codificador del motor. |
|
The unit that represents the angle to rotate to:
|
def main():
# Lower the Catapult to prepare to load another Ball
catapult_group.spin_to_position(1260, DEGREES)
# Set the new Catapult position to be 0 degrees
catapult_group.set_position(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
establecer_velocidad#
set_velocity sets the speed of a motor or motor group.
Uso:
Se puede utilizar uno de los dos objetos de motor disponibles con este método, como se muestra a continuación:
motor |
Dominio |
|---|---|
|
|
|
|
Parámetros |
Descripción |
|---|---|
|
La velocidad a la que girará el motor, que oscila entre -100 y 100. |
|
The unit that represents the new velocity:
|
def main():
# Start spinning the Intake Motor to prepare for picking up a Ball
intake_motor.set_velocity(100, PERCENT)
intake_motor.spin(FORWARD)
# VR threads — Do not delete
vr_thread(main)
establecer_tiempo_de_espera#
set_timeout sets a time limit for a motor’s or motor group’s movement commands. This prevents motion commands that do not reach their intended position from preventing subsequent commands from running.
Uso:
Se puede utilizar uno de los dos objetos de motor disponibles con este método, como se muestra a continuación:
motor |
Dominio |
|---|---|
|
|
|
|
Parámetros |
Descripción |
|---|---|
|
El tiempo que el motor esperará antes de detenerse. |
|
The unit to represent the timeout:
|
def main():
# Limit how long the Catapult waits to reach its target
catapult_group.set_timeout(2, SECONDS)
catapult_group.spin_for(FORWARD, 6, TURNS)
# VR threads — Do not delete
vr_thread(main)
Getters#
está_hecho#
is_done returns a Boolean indicating whether the specified motor or motor group is not spinning.
True- The specified motor or motor group is not spinning.False- The specified motor or motor group is spinning.
Uso:
Se puede utilizar uno de los dos objetos de motor disponibles con este método, como se muestra a continuación:
motor |
Dominio |
|---|---|
|
|
|
|
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
está_girando#
is_spinning returns a Boolean indicating whether the specified motor or motor group is spinning.
True- The specified motor or motor group is spinning.False- The specified motor or motor group is not spinning.
Uso:
Se puede utilizar uno de los dos objetos de motor disponibles con este método, como se muestra a continuación:
motor |
Dominio |
|---|---|
|
|
|
|
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
posición#
position returns the total distance the specified motor or motor group has rotated.
Uso:
Se puede utilizar uno de los dos objetos de motor disponibles con este método, como se muestra a continuación:
motor |
Dominio |
|---|---|
|
|
|
|
Parámetros |
Descripción |
|---|---|
|
The units that represent the motor’s position:
|
def main():
# Lower the Catapult to prepare to load another Ball
while not catapult_group.position(DEGREES) == 1260:
catapult_group.spin(FORWARD)
# VR threads — Do not delete
vr_thread(main)
velocidad#
velocity returns the current rotational speed of the motor or motor group.
Uso:
Se puede utilizar uno de los dos objetos de motor disponibles con este método, como se muestra a continuación:
motor |
Dominio |
|---|---|
|
|
|
|
Parámetros |
Descripción |
|---|---|
|
The unit that represents the motor’s velocity:
|
def main():
# Print the current Catapult velocity
brain.screen.print(catapult_group.velocity(PERCENT))
# VR threads — Do not delete
vr_thread(main)
Detección#
Óptico#
is_near_object#
is_near_object returns a Boolean indicating whether or not the Optical Sensor detects an object close to the sensor.
True- The object is close to the Optical Sensor.False- The object is not close to the Optical Sensor.
Usage:
intake_optical.is_near_object()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
def main():
# Launch a loaded Ball once the Intake Optical Sensor detects a Ball
if intake_optical.is_near_object():
catapult_group.spin_for(REVERSE, 5, DEGREES)
# VR threads — Do not delete
vr_thread(main)
color#
color returns the color detected by the Optical Sensor:
Color devuelto: |
|---|
|
Usage:
intake_optical.color()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
def main():
# Launch a loaded Ball once yellow is detected in the Intake
if intake_optical.color() == YELLOW:
catapult_group.spin_for(REVERSE, 5, DEGREES)
# VR threads — Do not delete
vr_thread(main)
brillo#
brightness returns the brightness value detected by the Optical Sensor as a percent from 0% to 100%.
Usage:
intake_optical.brightness()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
def main():
# Launch a loaded Ball once the Intake Optical Sensor sees a Ball
if intake_optical.brightness() > 0:
catapult_group.spin_for(REVERSE, 5, DEGREES)
# VR threads — Do not delete
vr_thread(main)
matiz#
hue returns the hue detected by the Optical Sensor.
Los valores de tono van de 0 a 359 grados, lo que corresponde a las posiciones en la rueda de colores que se muestra a continuación.

Usage:
intake_optical.hue()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
def main():
# Launch a loaded Ball once the Intake Optical Sensor reports a hue value
if intake_optical.hue() > 100:
catapult_group.spin_for(REVERSE, 5, DEGREES)
# VR threads — Do not delete
vr_thread(main)
objeto_detectado#
object_detected registers a callback function for when the Optical Sensor detects an object.
Usage:
intake_optical.object_detected(callback, arg)
Parámetros |
Descripción |
|---|---|
|
Una función que se llamará cuando se detecte un objeto. |
|
Opcional. Una tupla que se utiliza para pasar argumentos a la función de devolución de llamada. |
def launch_ball():
catapult_group.spin_for(REVERSE, 5, DEGREES)
def main():
# Launch the Ball when the Intake Optical Sensor detects an object
intake_optical.object_detected(launch_ball)
# VR threads — Do not delete
vr_thread(main)
objeto_perdido#
object_lost registers a callback function for when the Optical Sensor loses an object.
Usage:
intake_optical.object_lost(callback, arg)
Parámetros |
Descripción |
|---|---|
|
Una función que se llamará cuando se pierda un objeto. |
|
Opcional. Una tupla que se utiliza para pasar argumentos a la función de devolución de llamada. |
def lower_catapult():
catapult_group.spin_to_position(1260, DEGREES)
def main():
# Lower the Catapult when the Intake Optical Sensor no longer detects an object
intake_optical.object_lost(lower_catapult)
# VR threads — Do not delete
vr_thread(main)