Skip to main content

Lección 2: Conducir a discos verdes y luego azules

Conducir a discos verdes y luego azules

  • En el proyecto anterior, el robot VR gira a la derecha cuando el sensor del ojo frontal detecta un disco verde. Ahora, cree un proyecto en el que el robot VR se dirija a cuatro discos en el Disk Maze Playground.
  • El objetivo es crear un patrón consistente en el que el robot VR gire a la derecha cuando el sensor de ojo frontal detecte un disco verde y a la izquierda cuando el sensor de ojo frontal detecte un disco azul.

    Una vista de arriba hacia abajo del patio de recreo del Laberinto de discos, con una flecha que muestra la trayectoria prevista del robot de realidad virtual. El robot debe conducir hacia adelante desde la plataforma de inicio para llegar al primer disco verde y girar a la derecha antes de girar a la izquierda en dos discos azules.
  • Añada el siguiente bloque al proyecto existente para indicarle al robot de realidad virtual que avance después de girar a la derecha.

    El VEXcode VR bloquea el proyecto desde antes, con bloques adicionales de Comentario y Avance. Todo el proyecto ahora se lee cuando se inicia, seguido de un comentario que dice "conducir al primer disco (verde), luego girar a la derecha". A continuación, conduzca hacia adelante,  espere hasta que el ojo delantero detecte verde y luego gire a la derecha 90 grados. A continuación hay un bloque de comentarios que dice "conducir al siguiente disco (azul), luego girar a la izquierda". Por último, sigue adelante.
  • Agregue otro [Espere hasta] con el <Color sensing> bloque configurado para detectar ‘azul’, ya que el siguiente disco que encontrará el Robot VR es azul.

    El VEXcode VR bloquea el proyecto desde antes, con un bloque Wait Until añadido después del último bloque Drive Forward. Todo el proyecto ahora se lee cuando se inicia, seguido de un comentario que dice "conducir al primer disco (verde), luego girar a la derecha". A continuación, conduzca hacia adelante,  espere hasta que el ojo delantero detecte verde y luego gire a la derecha 90 grados. A continuación hay un bloque de comentarios que dice "conducir al siguiente disco (azul), luego girar a la izquierda". Por último, conduzca hacia adelante y espere hasta que el ojo delantero detecte azul.
  • Añada un bloque [Turn for] y establezca el parámetro en 'left'.

    El VEXcode VR bloquea el proyecto desde antes, con un bloque Girar a la izquierda durante 90 grados añadido después del último bloque Esperar hasta. Todo el proyecto ahora se lee cuando se inicia, seguido de un comentario que dice "conducir al primer disco (verde), luego girar a la derecha". A continuación, conduzca hacia adelante,  espere hasta que el ojo delantero detecte verde y luego gire a la derecha 90 grados. A continuación hay un bloque de comentarios que dice "conducir al siguiente disco (azul), luego girar a la izquierda". A continuación, conduzca hacia adelante y espere hasta que el ojo delantero detecte azul antes de girar a la izquierda 90 grados.
  • Ejecuta el proyecto para ver cómo se mueve el robot de realidad virtual a través del patio de juegos del laberinto de discos.

    Una vista de arriba hacia abajo del patio de recreo del Laberinto de discos, con una flecha que muestra la trayectoria prevista del robot de realidad virtual. El robot debe avanzar desde la plataforma de inicio para llegar al primer disco verde y girar a la derecha antes de girar a la izquierda en el primer disco azul.
  • Observe que el robot VR gira a la derecha cuando el sensor del ojo delantero detecta un disco verde y gira a la izquierda cuando el sensor del ojo delantero detecta un disco azul.
  • Continúe construyendo este proyecto para conducir el Robot VR a dos discos más en el Disk Maze Playground utilizando el Sensor de Ojo Delantero. Añada los siguientes bloques para navegar por el Robot VR a los siguientes dos Discos y luego deténgase:

    VEXcode VR bloquea el fragmento para añadirlo al final de nuestro proyecto para llegar al tercer y cuarto disco azul. Para conducir a la tercera unidad de disco hacia adelante, espere hasta que el ojo delantero detecte azul y gire a la izquierda 90 grados. Al lado de conducir al cuarto disco, conduzca hacia adelante, espere hasta que el ojo delantero detecte azul y luego gire a la izquierda 90 grados. Por último, deja de conducir.
    El fragmento de bloques VEXcode para llegar al tercer y cuarto disco ahora se añade a la parte inferior de nuestro proyecto. Todo el proyecto ahora llega a cuatro discos, primero un disco verde primero y luego tres discos azules. Utilice la siguiente sección de código para cada disco: Drive Forward, Waits Until Front Eye detecta el color del disco, luego gire a la derecha 90 grados si es verde y gire a la izquierda 90 grados si es azul. Repitiendo esa sección de tres bloques cuatro veces podemos llegar a cuatro discos, primero un disco verde girando a la derecha y luego tres azules girando a la izquierda. Después de estos 12 bloques y comentarios adicionales que marcan cada sección, deje de conducir.
  • Observa que hay un patrón. Hay una serie de bloques que se repiten tres veces en el proyecto. Esta sección del código se puede condensar utilizando un bloque [Repeat].

    Ahora usaremos un bloque Repetir para simplificar y acortar nuestro código. Un cuadro rojo resalta las tres secciones utilizadas para llegar a los discos azules, ya que este es el mismo código tres veces, podemos añadirlo a un bloque de repetición configurado para repetir 3 veces en su lugar. Ahora, el proyecto lee When Started, Drive Forward y Wait Until Front Eye detecta verde antes de girar a la derecha 90 grados. A continuación, repita el código para llegar a un disco azul tres veces: Conduzca hacia adelante, espere hasta que el ojo delantero detecte el azul y luego gire a la izquierda 90 grados. Después de cerrar el bucle de repetición, deje de conducir.
  • Abra el Disk Maze Playground si aún no está abierto y ejecute el proyecto.
  • Observa cómo el robot VR navega a cuatro discos en el Disk Maze Playground.

    La vista de arriba hacia abajo del parque infantil Disk Maze de antes, con una flecha que muestra la ruta prevista del robot VR. El robot debe conducir hacia adelante desde la plataforma de inicio para llegar al primer disco verde y girar a la derecha antes de girar a la izquierda en dos discos azules y detenerse en el tercero. Un recuadro rojo indica que el robot se detiene en el tercer disco azul.
  • En este proyecto, el robot VR avanza hasta que el sensor del ojo frontal detecta el color verde.
    • El robot VR gira a la derecha 90 grados y vuelve a avanzar hasta que se detecta el color azul.
    • El robot VR gira a la izquierda y avanza hasta que el sensor del ojo delantero detecta azul. Una vez que se detecta el color azul, el robot VR vuelve a girar a la izquierda.
    • Finalmente, el robot VR avanza hasta que el sensor del ojo frontal detecta azul y luego se detiene.
  • Observe el patrón que cuando el sensor del ojo delantero detecta verde, el robot VR gira a la derecha. Cuando el sensor del ojo frontal detecta azul, el robot VR gira a la izquierda en este proyecto.

Uso de bloques de interruptores

Hasta ahora, ha creado un proyecto para conducir al disco verde y luego a los tres discos azules.

La siguiente imagen muestra todo el proyecto utilizando bloques VEXcode, con los comportamientos repetidos utilizados para conducir a los tres discos azules en rojo.

El proyecto de bloques VEXcode VR en el que hemos estado trabajando, con el bloque Repetir tres veces resaltado en rojo. El proyecto lee When Started, Drive Forward y Wait Until Front Eye detecta verde antes de girar a la derecha 90 grados. A continuación, repita el código para llegar a un disco azul tres veces usando un bloque de repetición: Conduzca hacia adelante, espere hasta que el ojo delantero detecte el azul y luego gire a la izquierda 90 grados. Después de cerrar el bucle de repetición, deje de conducir.

El siguiente proyecto muestra estos mismos bloques de VEXcode convertidos en múltiples bloques de Switch.

proyecto central

Este último proyecto muestra los mismos comandos de bloque de Switch convertidos en comandos de Python dentro de un bloque de Switch.

Los bloques de VEXcode VR se proyectan para llegar a los primeros cuatro discos, pero con todo el bucle de repetición convertido en bloques de conmutación de Python. Todo el proyecto lee Cuando se inicia, avance y espere hasta que el ojo delantero detecte verde antes de girar a la derecha 90 grados. A continuación, se encuentra el bloque de interruptores que contiene el siguiente código Python: 'for repeat_count in range(3): DRIVETRAIN.DRIVE (FORWARD) while not front_eye.detect (BLUE): wait(5, MSEC)drivetrain.turn_for (LEFT, 90, DEGREES)'. Ahora, fuera del bloque de interruptores, finalmente deja de conducir.

El for repeat_count en el rango(3): es el comando de Python que le dice al robot que las siguientes líneas de código con sangría deben repetirse tres veces. Tenga en cuenta que debe incluir dos puntos (:) después del bucle for. 

Las siguientes líneas de código son los comportamientos que se repetirán. Tenga en cuenta que estos comportamientos tienen sangría en un valor predeterminado de 4 espacios. 

Además, tenga en cuenta que el condicional incluye el comando wait (5, MSEC) En VEXcode VR, un comando wait siempre se agrega con el bucle for. El propósito del comando wait es garantizar que VEXcode VR pueda ejecutar correctamente el proyecto según lo previsto, debido a la naturaleza basada en web de la plataforma VEXcode VR. El comando wait nunca debe eliminarse cuando se utiliza un bucle for, o su proyecto podría no ejecutarse como se espera. 

La línea, wait (5, MSEC) está sangrada debajo del comando while not front_eye.detect(BLUE) porque el sensor ocular frontal verificará el color azul, deteniéndose 5 MSEC entre cada verificación.

Seleccione el botón Siguiente para continuar con el resto de esta lección.