Skip to main content
Portal del profesor

Conexión de la competencia: punto de inflexión - Python

Turning Point VEX Robotics Competition Field con elementos de juego y zonas de puntuación en las posiciones de salida para el inicio del partido. A lo largo de la pared posterior hay una red con una serie de banderas abatibles frente a ella. Campo de punto de inflexión
VRC 2018-2019

Capacidades del robot

El punto de inflexión del juego VEX Robotics Competition 2018 - 2019 requería que los jugadores alternaran las banderas entre otros elementos del juego. Había nueve banderas en total: tres banderas inferiores que podían ser activadas por el robot y las seis banderas altas que solo podían ser activadas golpeándolas con piezas de juego de pelota de competición. Los equipos de competencia necesitaban encontrar una manera de golpear las banderas más altas usando un lanzador de bolas. Si se puede imaginar, programar el robot para que golpee las banderas usando piezas de juego de pelota midiendo puede no ser siempre preciso. Si el robot hace un giro incorrecto durante el período autónomo, existe la posibilidad de que ninguna de las banderas sea golpeada porque los cálculos estarían apagados. Del mismo modo, para el desafío de habilidades de conducción, puede ser difícil para los equipos alinear manualmente el robot lo suficiente como para lanzar la pelota correctamente. Por lo tanto, equipos expertos programarían el robot utilizando el sensor de visión para detectar banderas y luego alinearían el robot correctamente para realizar tomas precisas.

Amplía tu icono de aprendizaje Amplíe su aprendizaje

Para ampliar esta actividad, pídales a sus estudiantes que diseñen y describan un proyecto en el que el robot se mueva hacia los objetos amarillos detectados que podrían usar para este juego de competencia.
Pídales a sus estudiantes que hagan lo siguiente:

  • Abra el proyecto de ejemplo de plantilla Clawbot (transmisión, 2 motores, sin giroscopio).

    Ejemplo de selección de proyecto VEXcode V5 con el filtro de plantilla seleccionado en la parte superior y el icono de proyecto sin giroscopio del motor Clawbot Drivetrain 2 resaltado en un cuadro rojo.

  • Utilice el proyecto de ejemplo Detección de objetos (Visión) como referencia al programar el sensor de visión. Utilice el proyecto de ejemplo Detección de objetos (Visión) como referencia al programar el sensor de visión (Google Doc / .v5python).
  • Agregue el sensor de visión a la configuración del Clawbot (transmisión, 2 motores, sin giroscopio) y luego configure el sensor de visión para detectar objetos rojos y azules. Consulte el artículo Configuración del sensor de visión para obtener más información.

    Ventana de dispositivos VEXcode V5 abierta con las opciones para añadir un dispositivo que se muestran. La ventana dice Seleccionar un dispositivo y la opción Visión se resalta con un cuadro rojo. Otras opciones incluyen controlador, transmisión, motor y 3 cables.

  • Programa el Clawbot para que se mueva hacia el objeto detectado. ¡El Clawbot incluso se puede programar para levantar el brazo como si fuera a alternar una bandera!
  • Descargue y ejecute el proyecto para observar si el sensor de visión puede detectar objetos amarillos como las bolas amarillas en el juego VRC Turning Point. Si el sensor de visión puede detectar objetos, ¿se mueve el robot en función de esos objetos detectados? Para obtener ayuda para descargar y ejecutar un proyecto, consulta este artículo.
  • Si el tiempo lo permite, configure un campo de juego similar al campo Turning Point. ¡Practique el uso del sensor de visión para permitir que el robot se mueva y gane puntos!

Vea la solución de muestra a continuación:

# Library imports
from vex import *

# Begin project code

check_yellow = Event()

def check_yellow_callback():
    brain.screen.set_font (FontType.MONO40)
    brain.screen.clear_row (3)
    brain.screen.set_cursor (3, 1)
    vision_5_objects = vision_5.take_snapshot (vision_5__ YELLOWBOX)

    if (vision_5_objects):
        arm_motor.spin_for (FORWARD, 300, DEGREES)
        claw_motor.spin_for (FORWARD, 100, DEGREES)
        drivetrain.drive_for (FORWARD, 12, INCHES
        ) arm_motor.spin_for (REVERSE, 300, DEGREES
        ) claw_motor.spin_for (REVERSE, 100, DEGREES)
    
    else
        : brain.screen.print ("No Yellow Object")

# system event handlers
check_yellow(check_yellow_callback)

# small delay to ensure that the event handlers are ready to be used
wait(15, MSEC)

# se ejecuta constantemente para verificar los datos nuevos
mientras se
    verifica el sensor
    : True check_blue_blcast_and_wait (105)