Python específico para robots#

Introducción#

El Hero Bot, Swish, incluye una opción de motor, una opción de grupo de motores y el sensor óptico.

Todos los métodos VEXcode VR estándar están disponibles para su uso en el IQ 24-25 Rapid Relay.

A continuación se muestra una lista de todos los métodos específicos de Robot disponibles:

Transmisión: mueva y gire el robot.

  • Acciones

    • drive — Mueve el robot hacia adelante o hacia atrás para siempre.

    • drive_for — Mueve el robot hacia adelante o hacia atrás una distancia específica.

    • turn — Gira el robot a la izquierda o a la derecha para siempre.

    • turn_for — Gira el robot a la izquierda o a la derecha un número específico de grados.

    • turn_to_heading — Gira el robot para enfrentar un rumbo específico de -359 a 359 grados.

    • turn_to_rotation — Gira el robot a una rotación específica.

    • stop — Detiene el movimiento del robot.

  • Mutadores

    • set_heading — Cambia el encabezado actual del robot a un nuevo encabezado.

    • set_rotation — Cambia la rotación actual del robot a una nueva rotación.

    • set_timeout — Establece cuánto tiempo intentará el robot terminar un movimiento.

    • set_drive_velocity — Le dice al robot qué tan rápido debe conducir.

    • set_turn_velocity — Le dice al robot qué tan rápido debe girar.

  • Getters

    • heading — Devuelve el rumbo actual del robot de 0 a 359,99 grados.

    • rotation — Devuelve la rotación actual del robot.

    • is_done — Devuelve si el robot ha terminado de moverse, como un valor booleano.

    • is_moving — Devuelve si el robot se está moviendo, como un valor booleano.

    • velocity: devuelve la velocidad a la que conduce el robot.

Movimiento: mueva y rastree el motor y el grupo de motores del robot.

  • Acciones

    • spin — Hace girar un motor o grupo de motores hacia adelante o hacia atrás para siempre.

    • spin_for — Hace girar un motor o grupo de motores durante una distancia específica.

    • spin_to_position — Hace girar un motor o grupo de motores a una posición específica.

    • stop — Detiene el giro de un motor o grupo de motores.

  • Mutadores

    • set_position — Cambia la posición actual del motor o grupo de motores a un nuevo valor.

    • set_velocity: le dice a un motor o grupo de motores qué tan rápido debe girar.

    • set_timeout — Establece cuánto tiempo un motor o grupo de motores intentará terminar un movimiento.

  • Getters

    • is_done — Devuelve si el motor o grupo de motores ha terminado de moverse, como un valor booleano.

    • is_spinning — Devuelve si el motor o grupo de motores está girando, como un valor booleano.

    • position — Devuelve la posición actual del motor o grupo de motores.

    • velocity: devuelve la velocidad a la que gira el motor o el grupo de motores.

Consola: imprima los valores en la consola y el monitor.

Detección: utilice los diversos sensores del robot.

  • Óptico

    • is_near_object – Devuelve si el sensor óptico detecta un objeto dentro del alcance.

    • color – Devuelve el color detectado por el sensor óptico.

    • brightness – Devuelve la cantidad de luz reflejada por el objeto.

    • hue – Devuelve el tono detectado por el sensor óptico.

    • object_detected – Registra una función que se llamará cuando el sensor óptico detecte un objeto.

    • object_lost – Registra una función que se llamará cuando el sensor óptico pierda un objeto.

Los ejemplos de esta página utilizan la posición de inicio predeterminada de Playground.

Tren de transmisión#

La transmisión controla cómo funciona y gira el robot de realidad virtual. El tren motriz puede moverse hacia adelante o hacia atrás, girar a la izquierda o a la derecha, girar hacia los encabezados y seguir su rotación.

Acciones#

unidad#

drive mueve el robot hacia adelante o hacia atrás para siempre. El robot continuará moviéndose hasta que se le dé otra acción, como girar o detenerse.

Usage:
drivetrain.drive(direction)

Parámetros

Descripción

direction

La dirección en la que se mueve el robot: FORWARD O HACIA REVERSE.

def main():
    # Drive forward then stop
    drivetrain.drive(FORWARD)
    wait(2, SECONDS)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

drive_for#

drive_for mueve el robot hacia adelante o hacia atrás una distancia específica. El proyecto esperará hasta que el robot termine de moverse antes de que se ejecute la siguiente línea de código.

Usage:
drivetrain.drive_for(direction, distance, units, wait)

Parámetros

Descripción

direction

La dirección en la que se mueve el robot: FORWARD O HACIA REVERSE.

distance

La distancia que recorre el robot. Esto puede ser un integer o decimal (float).

units

La unidad de distancia: INCHES o MM (milímetros).

wait

Opcional. wait=True (predeterminado) hace que el proyecto espere hasta que el robot termine de moverse antes de que se ejecute la siguiente línea de código. wait=False hace que la siguiente línea de código se ejecute de inmediato.

def main():
    # Drive forward and backward
    drivetrain.drive_for(FORWARD, 200, MM)
    drivetrain.drive_for(REVERSE, 200, MM)

# VR threads — Do not delete
vr_thread(main)

giro#

turn hace que el robot gire a la izquierda o a la derecha indefinidamente. El robot seguirá girando hasta que se le dé otra acción, como conducir o detenerse.

Usage:
drivetrain.turn(direction)

Parámetros

Descripción

direction

La dirección en la que gira el robot: LEFT o RIGHT.

def main():
    # Turn right and left, then stop
    drivetrain.turn(RIGHT)
    wait(2, SECONDS)
    drivetrain.turn(LEFT)
    wait(2, SECONDS)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

turn_for#

turn_for gira el robot a la izquierda o a la derecha un número específico de grados. El giro es relativo a la posición actual del robot. El proyecto esperará hasta que el robot termine de girar antes de que se ejecute la siguiente línea de código.

Usage:
drivetrain.turn_for(direction, angle, units, wait)

Parámetros

Descripción

direction

La dirección en la que gira el robot: LEFT o RIGHT.

angle

El número de grados que gira el robot. Esto puede ser un integer o decimal (float).

units

La unidad de rotación: DEGREES.

wait

Opcional. wait=True (predeterminado) hace que el proyecto espere hasta que el robot termine de girar antes de que se ejecute la siguiente línea de código. wait=False hace que la siguiente línea de código se ejecute de inmediato.

def main():
    # Turn the robot right and left
    drivetrain.turn_for(RIGHT, 90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_for(LEFT, 90, DEGREES)

# VR threads — Do not delete
vr_thread(main)

turn_to_heading#

Un rumbo es la dirección hacia la que se enfrenta el robot, medida en grados. turn_to_heading gira el robot para que se enfrente a un rumbo específico de -359 a 359 grados. El robot girará en la dirección más corta para alcanzar el rumbo objetivo.

El rumbo inicial del robot es de 0 grados.

El proyecto esperará hasta que el robot termine de girar antes de que se ejecute la siguiente línea de código.

Usage:
drivetrain.turn_to_heading(angle, units, wait)

Parámetros

Descripción

angle

La dirección a la que debe mirar el robot, en grados. Esto puede ser un integer o decimal (float) de -359 a 359.

units

La unidad de rotación: DEGREES.

wait

Opcional. wait=True (predeterminado) hace que el proyecto espere hasta que el robot termine de girar antes de que se ejecute la siguiente línea de código. wait=False hace que la siguiente línea de código se ejecute de inmediato.

def main():
    # Turn to face the cardinal directions
    drivetrain.turn_to_heading(90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(180, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(270, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

turn_to_rotation#

turn_to_rotation hace girar el robot a una rotación específica.

La rotación es cuánto ha girado el robot, medida en grados. Al comienzo de un proyecto, el valor de rotación se establece en 0 grados. La rotación también se puede configurar utilizando el método set_rotation.

Los valores de rotación son absolutos. Esto significa que la dirección del giro depende de la rotación actual del robot. Girar a la derecha aumenta la rotación y girar a la izquierda disminuye la rotación.

Por ejemplo, si el robot comienza a 0 grados y gira a una rotación de 720 grados, girará a la derecha dos veces. Si luego giras a una rotación de 360 grados, girará a la izquierda una vez, porque 360 es menos de 720.

El proyecto esperará hasta que el robot termine de girar antes de que se ejecute la siguiente línea de código.

Usage:
drivetrain.turn_to_rotation(angle, units, wait)

Parámetros

Descripción

angle

El valor de rotación, en grados, al que girará el robot. Esto puede ser un integer o decimal (float).

units

La unidad de rotación: DEGREES.

wait

Opcional. wait=True (predeterminado) hace que el proyecto espere hasta que el robot termine de girar antes de que se ejecute la siguiente línea de código. wait=False hace que la siguiente línea de código se ejecute de inmediato.

def main():
    # Turn left, then spin in a circle
    # clockwise and face right
    drivetrain.turn_to_rotation(-90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_rotation(450, DEGREES)

# VR threads — Do not delete
vr_thread(main)

parada#

stop detiene el movimiento del robot.

Usage:
drivetrain.stop()

Parámetros

Descripción

Este método no tiene parámetros.

def main():
    # Drive forward then stop
    drivetrain.drive(FORWARD)
    wait(2, SECONDS)
    drivetrain.stop()

# VR threads — Do not delete
vr_thread(main)

Mutadores#

set_heading#

Un rumbo es la dirección hacia la que mira el robot, medida en grados. set_heading cambia el rumbo actual del robot a un nuevo valor de rumbo.

Por ejemplo, si el robot ha girado hacia la derecha, establecer el rumbo en 0 grados hace que esa posición orientada hacia la derecha sea la nueva de 0 grados. Luego, el robot puede pasar a otras posiciones en función de ese nuevo encabezado.

Usage:
drivetrain.set_heading(heading, units)

Parámetros

Descripción

heading

El valor de rumbo, en grados, a establecer para el robot. Esto puede ser un integer o decimal (float).

units

La unidad de encabezado: DEGREES.

def main():
    # Face the new 0 degrees
    drivetrain.set_heading(90, DEGREES)
    drivetrain.turn_to_heading(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

set_rotation#

La rotación es cuánto ha girado el robot, medida en grados. Al comienzo de un proyecto, el valor de rotación se establece en 0 grados. set_rotation cambia la rotación actual del robot a un nuevo valor.

Por ejemplo, si el robot ha realizado dos giros completos a la derecha, su valor de rotación será de 720 grados. Ajustar la rotación a 0 grados restablecerá esa rotación de 720 a 0 grados. Luego, el robot puede pasar a las rotaciones en función de ese nuevo valor.

Usage:
drivetrain.set_rotation(rotation, units)

Parámetros

Descripción

rotation

El valor de rotación, en grados, a establecer para el robot. Esto puede ser un integer o decimal (float).

units

La unidad de rotación: DEGREES.

def main():
    # Spin counterclockwise two times
    drivetrain.set_rotation(720, DEGREES)
    drivetrain.turn_to_rotation(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

set_timeout#

set_timeout establece cuánto tiempo intentará el robot terminar un movimiento. Si el robot no puede terminar en ese tiempo, dejará de intentarlo y pasará a la siguiente línea de código. Esto evita que el robot se atasque en un movimiento.

Usage:
drivetrain.set_timeout(value, units)

Parámetros

Descripción

value

La cantidad de tiempo que el robot puede intentar terminar un movimiento. Esto puede ser un integer o decimal (float).

units

La unidad de tiempo: SECONDS o MSEC (milisegundos).

def main():
    # Turn right after driving forward
    drivetrain.set_timeout(1, SECONDS)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    drivetrain.turn_for(RIGHT, 90)

# VR threads — Do not delete
vr_thread(main)

set_drive_velocity#

set_drive_velocity le dice al robot qué tan rápido conducir. Un porcentaje más alto hace que el robot conduzca más rápido y un porcentaje más bajo hace que el robot conduzca más lento.

Cada proyecto comienza con el robot conduciendo al 50% de la velocidad por defecto.

Nota: Una velocidad más alta hace que el robot conduzca más rápido, pero puede ser menos preciso. Una velocidad más baja hace que el robot conduzca más lento, pero puede ser más preciso.

Usage:
drivetrain.set_drive_velocity(velocity, units)

Parámetros

Descripción

velocity

La velocidad para conducir va del 0% al 100%. Esto puede ser un integer o decimal (float).

units

La unidad de velocidad: PERCENT.

def main():
    # Drive forward at different velocities
    # Default velocity
    drivetrain.drive_for(FORWARD, 150, MM)
    wait(1, SECONDS)
    # Drive slower
    drivetrain.set_drive_velocity(20, PERCENT)
    drivetrain.drive_for(FORWARD, 150, MM)
    wait(1, SECONDS)
    # Drive faster
    drivetrain.set_drive_velocity(100, PERCENT)
    drivetrain.drive_for(FORWARD, 150, MM)

# VR threads — Do not delete
vr_thread(main)

set_turn_velocity#

set_turn_velocity le dice al robot qué tan rápido debe girar. Un porcentaje más alto hace que el robot gire más rápido y un porcentaje más bajo hace que el robot gire más lento.

Cada proyecto comienza con el robot girando a una velocidad del 50% por defecto.

Nota: Una velocidad más alta hace que el robot gire más rápido, pero puede ser menos preciso. Una velocidad más baja hace que el robot gire más lento, pero puede ser más preciso.

Usage:
drivetrain.set_turn_velocity(velocity, units)

Parámetros

Descripción

velocity

La velocidad para girar es de 0% a 100%. Esto puede ser un integer o decimal (float).

units

La unidad de velocidad: PERCENT.

def main():
    # Turn at different velocities
    # Default velocity
    drivetrain.turn_for(RIGHT, 120, DEGREES)
    wait(1, SECONDS)
    # Turn slower
    drivetrain.set_turn_velocity(20, PERCENT)
    drivetrain.turn_for(RIGHT, 120, DEGREES)
    wait(1, SECONDS)
    # Turn faster
    drivetrain.set_turn_velocity(100, PERCENT)
    drivetrain.turn_for(RIGHT, 120, DEGREES)

# VR threads — Do not delete
vr_thread(main)

Getters#

encabezado#

Un rumbo es la dirección hacia la que mira el robot, medida en grados. El heading devuelve el rumbo actual del robot de 0 a 359,99 grados.

El rumbo inicial del robot es de 0 grados.

Usage:
drivetrain.heading(units)

Parámetros

Descripción

units

La unidad de encabezado: DEGREES.

def main():
    # Display the heading after turning
    drivetrain.turn_for(RIGHT, 450, DEGREES)
    brain.screen.print("Heading: ")
    brain.screen.print(drivetrain.heading(DEGREES))

# VR threads — Do not delete
vr_thread(main)

rotación#

La rotación es cuánto ha girado el robot, medida en grados. Al comienzo de un proyecto, el valor de rotación se establece en 0 grados. La rotation devuelve la rotación actual del robot.

Girar a la derecha aumenta la rotación y girar a la izquierda disminuye la rotación. Por ejemplo, hacer dos giros completos a la derecha devolverá una rotación de 720 grados.

Usage:
drivetrain.rotation(units)

Parámetros

Descripción

units

La unidad de rotación: DEGREES.

def main():
    # Display the rotation after turning
    drivetrain.turn_for(RIGHT, 450, DEGREES)
    brain.screen.print("Rotation: ")
    brain.screen.print(drivetrain.rotation(DEGREES))

# VR threads — Do not delete
vr_thread(main)

is_done#

is_done devuelve si el robot ha terminado de moverse, como un valor booleano. Esto se puede utilizar para controlar el tiempo de otros comportamientos basados en el movimiento del robot.

  • True : el robot ha terminado de moverse.

  • False : el robot todavía se está moviendo.

Este método funciona junto con los siguientes métodos de transmisión que tienen el parámetro wait: drive_for, turn_for, turn_to_heading y turn_to_rotation.

Usage:
drivetrain.is_done()

Parámetros

Descripción

Este método no tiene parámetros.

is_moving#

is_moving devuelve si el robot se está moviendo, como un valor booleano. Esto se puede utilizar para controlar el tiempo de otros comportamientos basados en el movimiento del robot.

  • True : el robot se está moviendo.

  • False — El robot no se mueve.

Usage:
drivetrain.is_moving()

Parámetros

Descripción

Este método no tiene parámetros.

velocidad#

velocity devuelve la velocidad a la que conduce el robot, como un porcentaje de -100% a 100%.

Usage:
drivetrain.velocity(units)

Parámetros

Descripción

units

La unidad de velocidad: PERCENT.

Ejemplo

def main():
    # Display the velocity after driving
    drivetrain.drive_for(FORWARD, 150, MM)
    brain.screen.print("Velocity: ")
    brain.screen.print(drivetrain.velocity(PERCENT))

Movimiento#

Swish utiliza el motor de admisión para recoger las bolas y moverlas a la catapulta. El grupo motor de la catapulta baja y libera el brazo de la catapulta para lanzar las bolas.

Cada motor y grupo motor tiene su propio comportamiento de dirección. Las descripciones de las direcciones explican cómo cada dirección mueve ese motor o grupo de motores en Swish.

Acciones#

girar#

El giro spin motores seguirá girando hasta que se le dé otra acción, como girar en una dirección diferente o detenerse.

Uso:
Se puede utilizar uno de los dos objetos de motor o grupo de motores disponibles con este método, como se muestra a continuación:

motor

Comando

intake_motor

intake_motor.spin(direction) — Motor de admisión

catapult_group

catapult_group.spin(direction) — Grupo de catapultas

Parámetros

Descripción

direction

Dirección de giro del motor o grupo motor:

  • FORWARD — Gira el motor de admisión en la dirección de admisión o baja el grupo catapulta.
  • REVERSE — Gira el motor de admisión en la dirección de salida o libera el grupo catapulta.

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)

spin_for#

spin_for hace girar un motor o grupo de motores para una distancia específica. El giro es relativo a la posición actual del motor o grupo de motores. El proyecto esperará hasta que el motor o grupo de motores termine de girar antes de que se ejecute la siguiente línea de código.

Uso:
Se puede utilizar uno de los dos objetos de motor o grupo de motores disponibles con este método, como se muestra a continuación:

motor

Comando

intake_motor

intake_motor.spin_for(direction, distance, units, wait=True) — Motor de admisión

catapult_group

catapult_group.spin_for(direction, distance, units, wait=True) — Grupo de catapultas

Parámetros

Descripción

direction

Dirección de giro del motor o grupo motor:

  • FORWARD — Gira el motor de admisión en la dirección de admisión o baja el grupo catapulta.
  • REVERSE — Gira el motor de admisión en la dirección de salida o libera el grupo catapulta.

distance

La distancia que gira el motor o grupo de motores. DEGREES usar números enteros. TURNS puede usar números enteros o decimales.

units

Opcional. La unidad de distancia: DEGREES (predeterminado) o TURNS.

wait

Opcional.

  • wait=True (predeterminado) — Hace que el proyecto espere hasta que el motor o grupo de motores termine de girar antes de que se ejecute la siguiente línea de código.
  • wait=False — Hace que la siguiente línea de código se ejecute de inmediato.

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)

spin_to_position#

spin_to_position hace girar un motor o grupo de motores a una posición específica.

La posición de un motor o grupo motor es la distancia a la que ha girado, medida en DEGREES o TURNS. Un giro equivale a 360 grados. Al comienzo de un proyecto, la posición del motor o grupo de motores se establece en 0 grados. La posición del motor o del grupo de motores también se puede configurar utilizando el método set_position.

Los valores de posición son absolutos. Esto significa que la dirección del giro depende de la posición actual del motor o del grupo de motores.

Por ejemplo, si el motor o grupo de motores arranca a 0 grados y gira a una posición de 720 grados, girará hacia adelante dos vueltas. Si luego gira a una posición de 360 grados, girará en reversa una vuelta, porque 360 es menos de 720.

Uso:
Se puede utilizar uno de los dos objetos de motor o grupo de motores disponibles con este método, como se muestra a continuación:

motor

Comando

intake_motor

intake_motor.spin_to_position(angle, units, wait=True) — Motor de admisión

catapult_group

catapult_group.spin_to_position(angle, units, wait=True) — Grupo de catapultas

Parámetros

Descripción

angle

El valor de posición al que girará el motor o grupo de motores. DEGREES usar enteros. TURNS puede usar enteros o decimales.

units

Opcional. La unidad de posición: DEGREES (predeterminado) o TURNS.

wait

Opcional.

  • wait=True (predeterminado) — Hace que el proyecto espere hasta que el motor o grupo de motores termine de girar antes de que se ejecute la siguiente línea de código.
  • wait=False — Hace que la siguiente línea de código se ejecute de inmediato.

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 detiene el giro de un motor o grupo de motores.

Uso:
Se puede utilizar uno de los dos objetos de motor o grupo de motores disponibles con este método, como se muestra a continuación:

motor

Comando

intake_motor

intake_motor.stop() — Motor de admisión

catapult_group

catapult_group.stop() — Grupo de catapultas

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#

set_position#

La posición de un motor o grupo motor es la distancia a la que ha girado, medida en DEGREES o TURNS. Un giro es igual a 360 grados. set_position cambia la posición actual del motor o del grupo de motores a un nuevo valor.

Por ejemplo, si un motor o grupo de motores ha girado a 180 grados, establecer la posición en 0 grados restablecerá esa posición de 180 a 0 grados. Luego, el motor o grupo motor puede girar a posiciones basadas en ese nuevo valor.

Uso:
Se puede utilizar uno de los dos objetos de motor o grupo de motores disponibles con este método, como se muestra a continuación:

motor

Comando

intake_motor

intake_motor.set_position(position, units) — Motor de admisión

catapult_group

catapult_group.set_position(position, units) — Grupo de catapultas

Parámetros

Descripción

position

El valor de posición que se establecerá para el motor o grupo de motores. DEGREES usar números enteros. TURNS puede usar números enteros o decimales.

units

Opcional. La unidad de posición: DEGREES (predeterminado) o TURNS.

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)

set_velocity#

set_velocity le dice a un motor o grupo de motores qué tan rápido girar. Un porcentaje más alto hace que el motor o grupo motor gire más rápido y un porcentaje más bajo hace que el motor o grupo motor gire más lento.

Cada proyecto comienza con cada motor o grupo de motores girando a una velocidad del 50% por defecto.

Nota: Una velocidad más alta hace que el motor o el grupo de motores giren más rápido, pero puede ser menos preciso. Una velocidad más baja hace que el motor o el grupo de motores giren más lentamente, pero puede ser más preciso.

Uso:
Se puede utilizar uno de los dos objetos de motor o grupo de motores disponibles con este método, como se muestra a continuación:

motor

Comando

intake_motor

intake_motor.set_velocity(velocity, units) — Motor de admisión

catapult_group

catapult_group.set_velocity(velocity, units) — Grupo de catapultas

Parámetros

Descripción

velocity

La velocidad para girar es de -100% a 100%. Esto puede ser un integer o decimal (float).

units

La unidad de velocidad: PERCENT.

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)

set_timeout#

set_timeout establece cuánto tiempo un motor o grupo de motores intentará terminar un movimiento. Si el motor o grupo de motores no puede terminar en ese tiempo, dejará de intentarlo y pasará a la siguiente línea de código. Esto evita que el motor o grupo motor se atasque en un movimiento.

Uso:
Se puede utilizar uno de los dos objetos de motor o grupo de motores disponibles con este método, como se muestra a continuación:

motor

Comando

intake_motor

intake_motor.set_timeout(value, units) — Motor de admisión

catapult_group

catapult_group.set_timeout(value, units) — Grupo de catapultas

Parámetros

Descripción

value

La cantidad de tiempo que el motor o grupo motor puede intentar terminar un movimiento. Esto puede ser un integer o decimal (float).

units

La unidad de tiempo: SECONDS o MSEC (milisegundos).

def main():
    # Limit how long the Catapult waits to reach its target
    catapult_group.set_timeout(2, SECONDS)
    catapult_group.spin_for(FORWARD, 2160, DEGREES)

# VR threads — Do not delete
vr_thread(main)

Getters#

is_done#

is_done devuelve si el motor o grupo de motores ha terminado de moverse, como un valor booleano. Esto se puede utilizar para controlar el tiempo de otros comportamientos basados en el movimiento del grupo motor o motor.

  • True : el motor o grupo motor ha terminado de moverse.

  • False — El motor o grupo de motores todavía está en movimiento.

Este método funciona junto con los siguientes métodos de movimiento que tienen el parámetro wait: spin_for y spin_to_position.

Uso:
Se puede utilizar uno de los dos objetos de motor o grupo de motores disponibles con este método, como se muestra a continuación:

motor

Comando

intake_motor

intake_motor.is_done() — Motor de admisión

catapult_group

catapult_group.is_done() — Grupo de catapultas

Parámetros

Descripción

Este método no tiene parámetros.

is_spinning#

is_spinning devuelve si el motor o grupo de motores está girando, como un valor booleano. Esto se puede utilizar para controlar el tiempo de otros comportamientos basados en el movimiento del grupo motor o motor.

  • True : el motor o grupo motor está girando.

  • False — El motor o grupo motor no está girando.

Este método funciona junto con los siguientes métodos de movimiento que tienen el parámetro wait: spin_for y spin_to_position.

Uso:
Se puede utilizar uno de los dos objetos de motor o grupo de motores disponibles con este método, como se muestra a continuación:

motor

Comando

intake_motor

intake_motor.is_spinning() — Motor de admisión

catapult_group

catapult_group.is_spinning() — Grupo de catapultas

Parámetros

Descripción

Este método no tiene parámetros.

cargo#

La posición de un motor o grupo motor es la distancia a la que ha girado, medida en DEGREES o TURNS. Un giro equivale a 360 grados. La position devuelve la posición actual del motor o grupo de motores.

Al comienzo de un proyecto, la posición del motor o grupo de motores se establece en 0 grados. Si el motor o grupo de motores gira una vuelta completa hacia adelante, la posición será de 360 grados o 1 vuelta. Si el motor o grupo de motores gira en la otra dirección, la posición será negativa.

Uso:
Se puede utilizar uno de los dos objetos de motor o grupo de motores disponibles con este método, como se muestra a continuación:

motor

Comando

intake_motor

intake_motor.position(units) — Motor de admisión

catapult_group

catapult_group.position(units) — Grupo de catapultas

Parámetros

Descripción

units

La unidad para devolver el motor o la posición del grupo motor en: DEGREES o TURNS.

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 devuelve qué tan rápido está girando el motor o el grupo de motores.

Un valor positivo significa que el motor o grupo de motores está girando hacia adelante. Un valor negativo significa que el motor o grupo de motores está girando en reversa.

Uso:
Se puede utilizar uno de los dos objetos de motor o grupo de motores disponibles con este método, como se muestra a continuación:

motor

Comando

intake_motor

intake_motor.velocity(units) — Motor de admisión

catapult_group

catapult_group.velocity(units) — Grupo de catapultas

Parámetros

Descripción

units

La unidad de velocidad a devolver: PERCENT.

def main():
    # Print the current Catapult velocity
    brain.screen.print(catapult_group.velocity(PERCENT))

# 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 consola también pueden mover el cursor a una nueva fila, borrar la consola y agregar variables o valores de sensor a la pestaña Monitor.

Imprimir#

brain.screen.print#

brain.screen.print muestra texto, números o valores de variables en la Consola utilizando la posición actual del cursor. Se comporta como print en la página de la API de la consola.

Use brain.screen.next_row cuando desee que el siguiente valor impreso comience en una nueva fila.

Usage:
brain.screen.print(value)

Parámetros

Descripción

value

El texto, el número o el valor de la 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)

Se muestra la consola VEXcode, que muestra la consola y el texto "¡Hola, robot!".

brain.screen.next_row#

brain.screen.next_row mueve el cursor a la columna 1 en la siguiente fila de la Consola. El siguiente valor impreso aparecerá en esa fila.

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)

La consola VEXcode, que muestra la consola y el texto "Fila 1" que se muestra en la primera línea y "Fila 2" en la segunda línea.

brain.screen.clear_screen#

brain.screen.clear_screen borra todas las filas de la consola y mueve el cursor a la fila 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#

monitor_variable#

monitor_variable agrega una o más variables predefinidas a la pestaña Monitor en VEXcode. Esto le permite ver el cambio de valor de una variable mientras se ejecuta un proyecto.

Las variables deben ser globales para que monitor_variable las monitoree con éxito. Proporcione cada nombre de variable como una cadena.

Usage:
monitor_variable(“variable”)
monitor_variable(“variable1”, “variable2”)

Parámetros

Descripción

variable

El nombre de una variable global predefinida para monitorear, dada como una cadena. Para monitorear más de una variable, separe cada nombre de variable con una coma.

def main():
    # Monitor the amount of loops
    global loops
    monitor_variable("loops")

    # Drive in a square 3 times
    for loops in range(12):
        drivetrain.turn_for(RIGHT, 90, DEGREES)
        drivetrain.drive_for(FORWARD, 150, MM)

# VR threads — Do not delete
vr_thread(main)

monitor_sensor#

monitor_sensor agrega uno o más valores de sensor a la pestaña Monitor en VEXcode. Esto le permite ver cómo cambian los valores del sensor mientras se ejecuta un proyecto.

Proporcione cada valor del sensor como una cadena.

Usage:
monitor_sensor(“sensor”)
monitor_sensor(“sensor1”, “sensor2”)

Parámetros

Descripción

sensor

El valor del sensor que se va a monitorizar, especificado como una cadena de texto. Para monitorizar más de un valor de sensor, sepárelos con una coma. Los identificadores de sensor admitidos incluyen:

  • Cerebro
    • brain.timer.time
  • Tren motriz
    • drivetrain.is_done
    • drivetrain.is_moving
    • drivetrain.heading
    • drivetrain.rotation
    • drivetrain.velocity_rpm
    • drivetrain.velocity_percent
  • Motor del brazo
    • arm_motor.is_done
    • arm_motor.is_spinning
    • arm_motor.position_degrees
    • arm_motor.position_turns
    • arm_motor.velocity_rpm
    • arm_motor.velocity_percent
  • Grupo de motores del brazo
    • arm_motor_group.is_done
    • arm_motor_group.is_spinning
    • arm_motor_group.position_degrees
    • arm_motor_group.position_turns
    • arm_motor_group.velocity_rpm
    • arm_motor_group.velocity_percent
  • Motor de admisión
    • intake_motor.is_done
    • intake_motor.is_spinning
    • intake_motor.position_degrees
    • intake_motor.position_turns
    • intake_motor.velocity_rpm
    • intake_motor.velocity_percent
  • Intake Motor Group
    • intake_motor_group.is_done
    • intake_motor_group.is_spinning
    • intake_motor_group.position_degrees
    • intake_motor_group.position_turns
    • intake_motor_group.velocity_rpm
    • intake_motor_group.velocity_percent
  • Motor de catapulta
    • catapult_motor.is_done
    • catapult_motor.is_spinning
    • catapult_motor.position_degrees
    • catapult_motor.position_turns
    • catapult_motor.velocity_rpm
    • catapult_motor.velocity_percent
  • Motor de tensión de la catapulta
    • catapult_tension_motor.is_done
    • catapult_tension_motor.is_spinning
    • catapult_tension_motor.position_degrees
    • catapult_tension_motor.position_turns
    • catapult_tension_motor.velocity_rpm
    • catapult_tension_motor.velocity_percent
  • Parachoques
    • intake_bumper.pressing
    • bumper.pressing
  • Sensor de distancia frontal
    • front_distance.is_object_detected
    • front_distance.object_distance_mm
    • front_distance.object_distance_inches
  • Sensor óptico frontal
    • front_optical.is_near_object
    • front_optical.color
    • front_optical.brightness
    • front_optical.hue
  • Sensor
  • color
    • color.is_near_object
    • color.color
    • color.brightness
    • color.hue

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#

Óptico#

is_near_object#

is_near_object devuelve un booleano que indica si el sensor óptico detecta o no un objeto dentro del alcance.

  • True : el sensor óptico detecta un objeto.

  • False – El sensor óptico no detecta un objeto.

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 devuelve una instancia de una clase Color , basada en el valor de tono detectado. Estos se pueden comparar con objetos Color predefinidos para crear declaraciones condicionales.

Los colores posibles son:

  • NONE

  • RED - Un valor de tono entre 340° - 20°

  • GREEN - Un valor de tono entre 80° - 140°

  • BLUE - Un valor de tono entre 200° - 240°

  • YELLOW - Un valor de tono entre 40° - 60°

  • ORANGE - Un valor de tono entre 20° - 40°

  • PURPLE - Un valor de tono entre 240° - 280°

  • CYAN - Un valor de tono entre 140° - 200°

Nota: El sensor óptico está buscando rangos de tonalidad que coincidan con el color especificado. Para detectar rangos de tonalidad específicos, consulte hue.

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#

el brightness devuelve la cantidad de luz reflejada desde el objeto como un decimal (float) que representa un porcentaje.

Un porcentaje más alto significa que se refleja más luz al sensor óptico. Un porcentaje más bajo significa que se refleja menos luz.

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 devuelve el valor de tono del color detectado como un decimal (float) de 0 a 359.

El tono es una forma de describir el color usando números alrededor de una rueda de color.

Una rueda de color circular que muestra un espectro completo de tonos etiquetados con valores de grado alrededor del perímetro, aumentando en incrementos de 30 grados de 0 grados en la parte superior a 360 grados.

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)

object_detected#

object_detected registra una función que se llamará cada vez que el sensor óptico detecte un nuevo objeto.

Usage:
intake_optical.object_detected(callback, arg)

Parámetros

Descripción

callback

Una función previamente definida que se ejecuta cuando el sensor óptico detecta un nuevo objeto.

arg

Opcional. Una tupla que contiene argumentos para pasar a la función de devolución de llamada. Consulte Uso de funciones con parámetros para obtener más información.

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)

object_lost#

object_lost registra una función que se llamará cada vez que el sensor óptico pierda un objeto detectado.

Usage:
intake_optical.object_lost(callback, arg)

Parámetros

Descripción

callback

Una función previamente definida que se ejecuta cuando el sensor óptico pierde un objeto detectado.

arg

Opcional. Una tupla que contiene argumentos para pasar a la función de devolución de llamada. Consulte Uso de funciones con parámetros para obtener más información.

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)