Python específico para robots#
Introducción#
El Hero Bot, Flex, incluye un motor de garra, un motor de brazo, un sensor de visión con IA, un sensor de distancia y un sensor de sistema de posicionamiento de juego (GPS).
Todos los métodos VEXcode VR estándar están disponibles para su uso en el V5 26-27 Override Playground.
A continuación se muestra una lista de todos los métodos disponibles específicos para Robot:
Sistema de transmisión: Mover y girar el robot.
Comportamiento
drive— Moves the robot forward or reverse forever.drive_for— Moves the robot forward or reverse for a specific distance.turn— Turns the robot left or right forever.turn_for— Turns the robot left or right for a specific number of degrees.turn_to_heading— Turns the robot to face a specific heading from -359 to 359 degrees.turn_to_rotation— Turns the robot to a specific rotation.stop— Stops the robot’s movement.
Mutadores
set_heading— Changes the robot’s current heading to a new heading.set_rotation— Changes the robot’s current rotation to a new rotation.set_timeout— Sets how much time the robot will try to finish a movement.set_drive_velocity— Tells the robot how fast to drive.set_turn_velocity— Tells the robot how fast to turn.
Obtenidos
heading— Returns the robot’s current heading from 0 to 359.99 degrees.rotation— Returns the robot’s current rotation.is_done— Returns whether the robot is finished moving, as a Boolean value.is_moving— Returns whether the robot is moving, as a Boolean value.velocity— Returns how fast the robot is driving.
Movimiento: Mueve y rastrea los motores del robot.
Comportamiento
spin— Spins a motor forward or reverse forever.spin_for— Spins a motor for a specific distance.spin_to_position— Spins a motor to a specific position.stop— Stops a motor from spinning.
Mutadores
set_position— Changes the motor’s current position to a new value.set_velocity— Tells a motor how fast to spin.set_timeout— Sets how much time a motor will try to finish a movement.
Obtenidos
is_done— Returns whether the motor is finished moving, as a Boolean value.is_spinning— Returns whether the motor is spinning, as a Boolean value.position— Returns the motor’s current position.velocity— Returns how fast the motor is spinning.
Visión por IA: Captura y analiza objetos utilizando el sensor de visión por IA.
Obtenidos
take_snapshot– Returns a tuple of detected objects for a specific signature.
Propiedades
.width– Width of the detected object in pixels..height– Height of the detected object in pixels..centerX– X position of the object’s center in pixels..centerY– Y position of the object’s center in pixels..originX– X position of the object’s top-left corner in pixels..originY– Y position of the object’s top-left corner in pixels..id– Classification ID of the detected object.
Consola: Imprime en la consola y monitoriza los valores.
Imprimir
brain.screen.print— Displays text, numbers, or variable values in the Console.brain.screen.next_row— Moves the Console cursor to the start of the next row.brain.screen.clear_screen— Clears all rows from the Console.
Monitor
monitor_variable— Adds one or more predefined variables to the Monitor tab.monitor_sensor— Adds one or more sensor values to the Monitor tab.
Detección: Utilice los diversos sensores del robot.
Distancia
found_object– Returns whether the Distance Sensor detects an object within range.object_distance– Returns the distance between the Distance Sensor and the nearest detected object.
GPS
x_position– Returns the current x-coordinate of the GPS Sensor on the field.y_position– Returns the current y-coordinate of the GPS Sensor on the field.heading– Returns the heading the robot is currently facing based on the GPS Sensor.
Los ejemplos de esta página utilizan la ubicación de inicio C de la lista de verificación previa al partido del Playground.
Tren de transmisión#
El sistema de transmisión controla cómo se desplaza y gira el robot de realidad virtual. Este sistema puede avanzar o retroceder, girar a la izquierda o a la derecha, orientarse y seguir su propio movimiento de rotación.
Comportamiento#
conducir#
drive moves the robot forward or reverse forever. The robot will continue to move until it is given another action, like turning or stopping.
Usage:
drivetrain.drive(direction)
Parámetros |
Descripción |
|---|---|
|
The direction the robot moves: |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive(FORWARD)
wait(0.5, SECONDS)
drivetrain.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
impulso_por#
drive_for moves the robot forward or reverse for a specific distance. The project will wait until the robot is done moving before the next line of code runs.
Usage:
drivetrain.drive_for(direction, distance, units, wait)
Parámetros |
Descripción |
|---|---|
|
The direction the robot moves: |
|
The distance the robot drives. This can be an |
|
Optional. The distance unit: |
|
Optional. |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
doblar#
turn turns the robot left or right forever. The robot will continue to turn until it is given another action, like driving or stopping.
Usage:
drivetrain.turn(direction)
Parámetros |
Descripción |
|---|---|
|
The direction the robot turns: |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn(LEFT)
wait(0.78, SECONDS)
drivetrain.stop()
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
turno_para#
turn_for turns the robot left or right for a specific number of degrees. The turn is relative to the current position of the robot. The project will wait until the robot is done turning before the next line of code runs.
Usage:
drivetrain.turn_for(direction, angle, units, wait)
Parámetros |
Descripción |
|---|---|
|
The direction the robot turns: |
|
The number of degrees the robot turns. This can be an |
|
Optional. The angle unit: |
|
Optional. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
girar_hacia_rumbo#
A heading is the direction the robot is facing, measured in degrees. turn_to_heading turns the robot to face a specific heading from -359 to 359 degrees. The robot will turn the shortest direction to reach the target heading.
El rumbo inicial es de 0 grados.
Usage:
drivetrain.turn_to_heading(heading, units, wait)
Parámetros |
Descripción |
|---|---|
|
La dirección hacia la que debe apuntar el robot, desde -359 hasta 359 grados. |
|
Optional. The angle unit: |
|
Optional. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_to_heading(-110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
girar_a_rotación#
turn_to_rotation turns the robot to a specific rotation.
La rotación indica cuánto ha girado el robot, medida en grados. Al inicio de un proyecto, el valor de rotación se establece en 0 grados. Girar a la derecha aumenta la rotación, y girar a la izquierda la disminuye.
Por ejemplo, si el robot parte de 0 grados y gira 720 grados, dará dos vueltas a la derecha. Si luego gira 360 grados, dará una vuelta a la izquierda, ya que 360 es menor que 720.
Usage:
drivetrain.turn_to_rotation(rotation, units, wait)
Parámetros |
Descripción |
|---|---|
|
The rotation value, in degrees, that the robot will turn to. This can be an |
|
Optional. The angle unit: |
|
Optional. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_to_rotation(-110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
detener#
stop stops the robot’s movement.
Usage:
drivetrain.stop()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn(LEFT)
wait(0.78, SECONDS)
drivetrain.stop()
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Mutadores#
establecer_encabezado#
A heading is the direction the robot is facing, measured in degrees. set_heading changes the robot’s current heading to a new heading value.
Por ejemplo, si el robot ha girado para mirar hacia la derecha, al establecer la orientación a 0 grados, esa posición mirando hacia la derecha se convierte en la nueva posición de 0 grados. Entonces, el robot puede girar a otras posiciones en función de esa nueva orientación.
Usage:
drivetrain.set_heading(heading, units)
Parámetros |
Descripción |
|---|---|
|
El valor de rumbo, en grados, que se debe establecer para el robot. |
|
Optional. The angle unit: |
def main():
# Make facing the Neutral Goal the new heading
drivetrain.set_heading(110, DEGREES)
drivetrain.turn_to_heading(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
establecer_rotación#
Rotation is how much the robot has turned, measured in degrees. set_rotation changes the robot’s current rotation to a new value.
Usage:
drivetrain.set_rotation(rotation, units)
Parámetros |
Descripción |
|---|---|
|
The rotation value, in degrees, to set for the robot. This can be an |
|
Optional. The angle unit: |
def main():
# Make facing the Neutral Goal the new rotation
drivetrain.set_rotation(110, DEGREES)
drivetrain.turn_to_rotation(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
establecer_tiempo_de_espera#
set_timeout sets how many seconds the robot will try to finish a movement. If the robot cannot finish in that time it will stop trying and move on to the next line of code. This keeps the robot from getting stuck on a movement.
Usage:
drivetrain.set_timeout(time, units)
Parámetros |
Descripción |
|---|---|
|
The number of seconds the robot can try to finish a movement. This can be a positive |
|
Optional. The time unit: |
def main():
# Turn to face the Neutral Goal
drivetrain.set_timeout(0.8, SECONDS)
drivetrain.turn_for(LEFT, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
establecer_velocidad_de_conducción#
set_drive_velocity tells the robot how fast to drive. A higher percentage makes the robot drive faster and a lower percentage makes the robot drive slower.
Todos los proyectos comienzan con el robot conduciendo al 50% de su velocidad por defecto.
Nota: Una mayor velocidad hace que el robot se desplace más rápido, pero puede ser menos preciso. Una menor velocidad hace que el robot se desplace más despacio, pero puede ser más preciso.
Usage:
drivetrain.set_drive_velocity(velocity, units)
Parámetros |
Descripción |
|---|---|
|
The velocity to drive with from 0% to 100%. This can be an |
|
Optional. The velocity unit: |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
establecer_velocidad_de_giro#
set_turn_velocity tells the robot how fast to turn. A higher percentage makes the robot turn faster and a lower percentage makes the robot turn slower.
Todos los proyectos comienzan con el robot girando al 50% de su velocidad por defecto.
Nota: Una mayor velocidad hace que el robot gire más rápido, pero puede ser menos preciso. Una menor velocidad hace que el robot gire más despacio, pero puede ser más preciso.
Usage:
drivetrain.set_turn_velocity(velocity, units)
Parámetros |
Descripción |
|---|---|
|
The velocity to turn with from 0% to 100%. This can be an |
|
Optional. The velocity unit: |
def main():
# Turn to face the Neutral Goal faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(LEFT, 110, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Getters#
título#
A heading is the direction the robot is facing, measured in degrees. heading returns the robot’s current heading from 0 to 359.99 degrees.
La dirección inicial del robot es de 0 grados.
Usage:
drivetrain.heading(units)
Parámetros |
Descripción |
|---|---|
|
Optional. The heading unit: |
def main():
# Turn to the Goal, then show heading
drivetrain.turn_for(LEFT, 110, DEGREES)
brain.screen.print("Heading: ")
brain.screen.print(drivetrain.heading(DEGREES))
# VR threads — Do not delete
vr_thread(main)
rotación#
Rotation is how much the robot has turned, measured in degrees. At the beginning of a project, the rotation value is set to 0 degrees. rotation returns the robot’s current rotation.
Girar a la derecha aumenta la rotación, y girar a la izquierda la disminuye. Por ejemplo, dar dos vueltas completas a la derecha produce una rotación de 720 grados.
Usage:
drivetrain.rotation(units)
Parámetros |
Descripción |
|---|---|
|
Optional. The rotation unit: |
def main():
# Spin to find a Pin, then show rotation
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Rotation: ")
brain.screen.print(drivetrain.rotation(DEGREES))
# VR threads — Do not delete
vr_thread(main)
está_hecho#
is_done returns whether the robot is finished moving, as a Boolean value. This can be used to control the timing of other behaviors based on the robot’s movement.
True— The robot is finished moving.False— The robot is still moving.
This method works together with the following Drivetrain methods that have the wait parameter: drive_for, turn_for, turn_to_heading, and turn_to_rotation.
Usage:
drivetrain.is_done()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES, wait=False)
wait(0.5, SECONDS)
while not drivetrain.is_done():
wait(5, MSEC)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
se está moviendo#
is_moving returns whether the robot is moving, as a Boolean value. This can be used to control the timing of other behaviors based on the robot’s movement.
True— The robot is moving.False— The robot is not moving.
Usage:
drivetrain.is_moving()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
def main():
# Raise the Arm once stopped near the Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES, wait=False)
wait (0.5, SEC)
while drivetrain.is_moving():
wait(5, MSEC)
arm_motor.spin_for(FORWARD, 800, DEGREES)
# VR threads — Do not delete
vr_thread(main)
velocidad#
velocity returns how fast the robot is driving, as a percentage from -100% to 100%.
Usage:
drivetrain.velocity(units)
Parámetros |
Descripción |
|---|---|
|
Optional. The velocity unit: |
def main():
# Show speed while driving to the Goal
drivetrain.drive_for(FORWARD, 150, MM)
brain.screen.print("Velocity: ")
brain.screen.print(drivetrain.velocity(PERCENT))
# VR threads — Do not delete
vr_thread(main)
Movimiento#
Flex utiliza el motor del brazo para levantar y bajar el brazo, y el motor de la garra para abrir y cerrar la garra.
Cada motor tiene su propio comportamiento direccional. Las descripciones de las direcciones explican cómo se mueve cada motor en Flex.
Comportamiento#
girar#
spin spins a motor in one of two directions forever. The motor will continue to spin until it is given another action, like spinning in a different direction or stopping.
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 the motor spins:
|
def main():
# Raise the Arm before driving toward a Pin
arm_motor.spin(FORWARD)
wait(1, SECONDS)
arm_motor.stop()
# VR threads — Do not delete
vr_thread(main)
girar_para#
spin_for spins a motor for a specific distance. The spin is relative to the current position of the motor. The project will wait until the motor is done spinning before the next line of code runs.
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 the motor spins:
|
|
The distance the motor spins. |
|
Optional. The distance unit: |
|
Optional.
|
def main():
# Raise the Arm to carry the Pin to the Goal
arm_motor.spin_for(FORWARD, 800, DEGREES)
# VR threads — Do not delete
vr_thread(main)
girar_a_posición#
spin_to_position spins a motor to a specific position.
A motor’s position is how far it has spun, measured in DEGREES or TURNS. One turn is equal to 360 degrees. At the beginning of a project, the Arm Motor’s position is set to 0 degrees. The Claw Motor is the exception — it starts at 467 degrees (fully closed). The motor position can also be set using the set_position method.
Los valores de posición son absolutos. Esto significa que la dirección de giro depende de la posición actual del motor.
Por ejemplo, si el motor parte de 0 grados y gira hasta una posición de 720 grados, girará dos vueltas hacia adelante. Si luego gira hasta una posición de 360 grados, girará una vuelta hacia atrás, ya que 360 es menor que 720.
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 position value the motor will spin to. |
|
Optional. The position unit: |
|
Optional.
|
def main():
# Raise the Arm, then release the Pin
arm_motor.spin_to_position(800, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
detener#
stop stops a motor 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():
# Raise the Arm partway to hold the Pin
arm_motor.spin(FORWARD)
wait(1, SECONDS)
arm_motor.stop()
# VR threads — Do not delete
vr_thread(main)
Mutadores#
posición_de_establecer#
A motor’s position is how far it has spun, measured in DEGREES or TURNS. One turn is equal to 360 degrees. set_position changes the motor’s current position to a new value.
Por ejemplo, si un motor ha girado 180 grados, al ajustar la posición a 0 grados, dicha posición volverá a su estado original. A partir de ahí, el motor podrá girar a posiciones que dependan de ese nuevo valor.
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 position value to set for the motor. |
|
Optional. The position unit: |
def main():
# Reset encoder, raise Arm, place Pin
arm_motor.set_position(0, DEGREES)
arm_motor.spin_to_position(800, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
establecer_velocidad#
set_velocity tells a motor how fast to spin. A higher percentage makes the motor spin faster and a lower percentage makes the motor spin slower.
Cada proyecto comienza con cada motor girando al 50% de su velocidad máxima por defecto.
Nota: Una mayor velocidad hace que el motor gire más rápido, pero puede ser menos preciso. Una menor velocidad hace que el motor gire más lento, pero puede ser más preciso.
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 velocity to spin with from 0% to 100%. This can be an |
|
The velocity unit: |
def main():
# Raise the Arm fast to release the Pin
arm_motor.set_velocity(100, PERCENT)
arm_motor.spin_for(FORWARD, 800, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
establecer_tiempo_de_espera#
set_timeout sets how much time a motor will try to finish a movement. If the motor cannot finish in that time, it will stop trying and move on to the next line of code. This keeps the motor from getting stuck on a movement.
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 amount of time the motor can try to finish a movement. This can be a positive |
|
The time unit: |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.set_timeout(1, SECONDS)
arm_motor.spin_for(FORWARD, 1800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Getters#
está_hecho#
is_done returns whether the motor is finished moving, as a Boolean value. This can be used to control the timing of other behaviors based on the motor’s movement.
True— The motor is finished moving.False— The motor is still moving.
This method works together with the following Motion methods that have the wait parameter: spin_for and spin_to_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 |
|---|---|
Este método no tiene parámetros. |
def main():
# Raise the Arm while driving to the Goal
arm_motor.spin_to_position(800, DEGREES, wait=False)
wait(0.1, SECONDS)
while not arm_motor.is_done():
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
está_girando#
is_spinning returns whether the motor is spinning, as a Boolean value. This can be used to control the timing of other behaviors based on the motor’s movement.
True— The motor is spinning.False— The motor is not spinning.
This method works together with the following Motion methods that have the wait parameter: spin_for and spin_to_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 |
|---|---|
Este método no tiene parámetros. |
def main():
# Raise the Arm while driving to the Goal, then release the Pin
arm_motor.spin_to_position(800, DEGREES, wait=False)
wait(0.1, SECONDS)
while arm_motor.is_spinning():
drivetrain.drive_for(FORWARD, 25, MM)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
posición#
A motor’s position is how far it has spun, measured in DEGREES or TURNS. One turn is equal to 360 degrees. position returns the motor’s current position.
Al inicio de un proyecto, la posición del motor del brazo se establece en 0 grados. El motor de la garra es la excepción: comienza en 467 grados (completamente cerrado). Si el motor gira una vuelta completa hacia adelante, la posición aumenta. Si gira en sentido contrario, la posición disminuye.
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 to return the motor position in: |
def main():
# Raise the Arm, then release the Pin
while arm_motor.position(DEGREES) < 800:
arm_motor.spin(FORWARD)
wait(2, MSEC)
arm_motor.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
velocidad#
velocity returns how fast the motor is spinning.
Un valor positivo significa que el motor gira hacia adelante. Un valor negativo significa que el motor gira hacia atrás.
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 velocity unit to return: |
def main():
# Show Arm Motor velocity while raising
arm_motor.set_velocity(100, PERCENT)
arm_motor.spin_to_position(800, DEGREES, wait=False)
wait(0.2, SECONDS)
brain.screen.print(arm_motor.velocity(PERCENT))
# VR threads — Do not delete
vr_thread(main)
Visión por IA#
Getters#
tomar_instantánea#
take_snapshot filters data from the AI Vision Sensor frame to a single signature — a saved description of something the sensor can recognize, such as a game element on the field — and returns a tuple.
La tupla almacena objetos ordenados de mayor a menor ancho, comenzando en el índice#propertiesSe puede acceder a las propiedades de cada objeto mediante su índice. Se devuelve una tupla vacía si no se detectan objetos coincidentes.
Usage:
ai_vision.take_snapshot(signature)
Parámetros |
Descripción |
|---|---|
|
Filters the dataset to only include data of the given signature. Available signatures are:
|
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Turn to face the Pin
drivetrain.set_turn_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].centerX < 140:
drivetrain.turn(LEFT)
elif ai_objects[0].centerX > 180:
drivetrain.turn(RIGHT)
else:
drivetrain.stop()
break
# VR threads — Do not delete
vr_thread(main)
Propiedades#
There are seven properties that are included with each object stored in a tuple after take_snapshot is used.
All property values except .id describe the detected object’s position and size in the AI Vision Sensor’s view at the moment take_snapshot was used. These values are measured in pixels, based on the sensor’s 320 by 240 pixel resolution.
.ancho#
.width returns the width of the detected object in pixels, which is an integer between 1 and 320.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].width > 140:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.altura#
.height returns the height of the detected object in pixels, which is an integer between 1 and 240.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].height > 200:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.centerX#
.centerX returns the x-coordinate of the detected object’s center in pixels, which is an integer between 0 and 320.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Turn and approach the next Cup and Pin
drivetrain.set_turn_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].centerX < 140:
drivetrain.turn_for(LEFT, 5, DEGREES)
else:
drivetrain.drive_for(FORWARD, 25, INCHES)
break
# VR threads — Do not delete
vr_thread(main)
.centroY#
.centerY returns the y-coordinate of the detected object’s center in pixels, which is an integer between 0 and 240.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].centerY > 230:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.originX#
.originX returns the x-coordinate of the top-left corner of the detected object’s bounding box in pixels, which is an integer between 0 and 320.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Turn and approach the next Cup and Pin
drivetrain.set_turn_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].originX < 100:
drivetrain.turn_for(LEFT, 5, DEGREES)
else:
drivetrain.drive_for(FORWARD, 25, INCHES)
break
# VR threads — Do not delete
vr_thread(main)
.origenY#
.originY returns the y-coordinate of the top-left corner of the detected object’s bounding box in pixels, which is an integer between 0 and 240.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].originY > 140:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.identificación#
.id returns the ID of the detected AI Classification as an integer.
Clasificación de IA |
identificación |
Firma |
|---|---|---|
Pin rojo y azul |
0 |
|
Pin azul y amarillo |
1 |
|
RojoYellowPin |
2 |
|
YellowPin |
3 |
|
Taza |
4 |
|
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Display the ID of the next closest object
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
brain.screen.print(ai_objects[0].id)
break
# VR threads — Do not delete
vr_thread(main)
Consola#
La consola muestra texto, números y valores de variables mientras se ejecuta un proyecto. Los métodos de la consola también permiten mover el cursor a una nueva fila, borrar la consola y agregar variables o valores de sensores a la pestaña Monitor.
Imprimir#
pantalla del cerebro impresión#
brain.screen.print displays text, numbers, or variable values in the Console using the current cursor position.
Use brain.screen.next_row when you want the next printed value to start on a new row.
Usage:
brain.screen.print(value)
Parámetros |
Descripción |
|---|---|
|
El texto, número o valor de variable que se mostrará en la consola. |
def main():
# Display a message in the Console
brain.screen.print("Hello, robot!")
# VR threads — Do not delete
vr_thread(main)
pantalla.siguiente_fila#
brain.screen.next_row moves the cursor to column 1 on the next row in the Console. The next value printed will appear on that row.
Usage:
brain.screen.next_row()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
def main():
# Print on two rows
brain.screen.print("Row 1")
brain.screen.next_row()
brain.screen.print("Row 2")
# VR threads — Do not delete
vr_thread(main)
pantalla.cerebro.pantalla_limpia#
brain.screen.clear_screen clears all rows from the Console and moves the cursor back to Row 1.
Usage:
brain.screen.clear_screen()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
def main():
# Display text, then clear it after two seconds
brain.screen.print("This will disappear...")
wait(2, SECONDS)
brain.screen.clear_screen()
# VR threads — Do not delete
vr_thread(main)
Monitor#
variable_de_monitor#
monitor_variable adds one or more predefined variables to the Monitor tab in VEXcode. This lets you watch a variable’s value change while a project is running.
Variables must be global for monitor_variable to monitor them successfully. Provide each variable name as a string.
Usage:
monitor_variable(“variable”)
monitor_variable(“variable1”, “variable2”)
Parámetros |
Descripción |
|---|---|
|
El nombre de una variable global predefinida que se desea monitorizar, especificado como una cadena de texto. Para monitorizar más de una variable, separe cada nombre con una coma. |
def main():
# Monitor the number of loops
global loops
monitor_variable("loops")
# Turn in a full circle 3 times
for loops in range(12):
drivetrain.turn_for(RIGHT, 90, DEGREES)
# VR threads — Do not delete
vr_thread(main)
sensor_de_monitor#
monitor_sensor adds one or more sensor values to the Monitor tab in VEXcode. This lets you watch sensor values change while a project is running.
Proporcione cada valor del sensor como una cadena de texto.
Usage:
monitor_sensor(“sensor”)
monitor_sensor(“sensor1”, “sensor2”)
Parámetros |
Descripción |
|---|---|
|
The sensor value to monitor, given as a string. To monitor more than one sensor value, separate each sensor value with a comma. Supported sensor identifiers include:
|
def main():
# Monitor the robot's heading
monitor_sensor("drivetrain.heading")
drivetrain.turn_for(RIGHT, 450, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Detección#
Distancia#
objeto_encontrado#
found_object returns whether the Distance Sensor currently detects an object within 2000mm.
True— The Distance Sensor detects an object.False— The Distance Sensor does not detect an object.
Usage:
distance.found_object()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
def main():
# Turn until something is detected, then release the Pin
drivetrain.turn(RIGHT)
while True:
wait(5, MSEC)
if distance.found_object():
drivetrain.stop()
break
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
distancia_del_objeto#
object_distance returns the distance between the Distance Sensor and the nearest detected object.
Usage:
distance.object_distance(units)
Parámetros |
Descripción |
|---|---|
|
The distance unit: |
def main():
# Drive until 200 mm from the Goal, then release the Pin
while distance.object_distance(MM) > 200:
wait(5, MSEC)
drivetrain.drive(FORWARD)
drivetrain.stop()
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
GPS#
posición_x#
x_position returns the current x-coordinate of a GPS (Game Positioning System™) Sensor on the field.
Usage:
gps.x_position(units)
Parámetros |
Descripción |
|---|---|
unidades |
The unit of the offset value: |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive(FORWARD)
while not gps.x_position(MM) > -1370:
wait(2, MSEC)
drivetrain.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
posición_y#
y_position returns the current y-coordinate of a GPS (Game Positioning System™) Sensor on the field.
Usage:
gps.y_position(units)
Parámetros |
Descripción |
|---|---|
unidades |
The unit of the offset value: |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive(FORWARD)
while not gps.y_position(MM) < -450:
wait(2, MSEC)
drivetrain.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
título#
heading returns the heading that the robot is currently facing based on the GPS (Game Positioning System™) Sensor’s readings from 0 to 359 degrees.
Usage:
gps.heading()
Parámetros |
Descripción |
|---|---|
Este método no tiene parámetros. |
def main():
# Raise the Arm, drive to the Goal, release the Pin
monitor_sensor("gps.heading")
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# Turn left to face the Neutral Goal
drivetrain.set_turn_velocity(30, PERCENT)
drivetrain.turn(LEFT)
while not gps.heading() < 18:
wait(2, MSEC)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)