Skip to main content

Lección 3: Uso de bloques [If then]

En el Desafío del Laberinto de Discos, el Robot de RV está verificando el estado del Sensor del Ojo Frontal para ver qué color se está informando. Cada uno de los colores coincide con un comportamiento diferente que debe realizar el robot de realidad virtual.

VEXcode VR If Then C block con un parámetro booleano de 'Front Eye detecta rojo?'.
  • Inicie un nuevo proyecto y llámelo Unit7Lesson3.

    Barra de herramientas VEXcode VR con el botón 'Project Name' resaltado en un cuadro rojo, a la izquierda del botón Select Playground. El nombre del proyecto es Unidad 7 Lección 3.
  • Arrastre un bloque [If then] al espacio de trabajo y adjúntelo al bloque [When started].

    VEXcode VR bloquea el programa con un bloque When Started y un bloque If Then C vacío.

    Para su información

    El bloque [If then] es un bloque C que acepta bloques informadores booleanos como entrada. Usando los patrones observados mientras se resuelve el Laberinto de Discos en la Lección 2, se puede crear un proyecto en el que el Robot VR tome una decisión si la condición informa como VERDADERA o FALSA.

    Bloque VEXcode VR If Then C con un recuadro rojo que resalta el espacio de parámetros booleanos.

    El bloque [If then] se ejecutará una vez en un proyecto. En este ejemplo, el sensor de ojo frontal informará VERDADERO si se detecta un objeto verde y ejecutará el comando dentro del bloque C: gire a la derecha 90 grados. Si no se detecta un objeto verde, el proyecto pasará al siguiente comando de la pila.

    VEXcode VR bloquea el proyecto que gira a la derecha si el ojo frontal detecta el color verde. El proyecto dice: Cuando se inicia, si el ojo delantero detecta verde, gire a la derecha 90 grados. Fuera de la declaración if hay un bloqueo para detener la conducción.

    Uso de bloques de interruptores 


    La imagen a continuación muestra el enunciado de bloque Switch [If then] para el proyecto de ejemplo de esta lección. 

    El mismo proyecto de bloques VEXcode VR, pero con bloques de interruptores incluidos, gira a la derecha si el ojo frontal detecta el color verde. El proyecto comienza con un bloque When started y es seguido por un bloque C switch versión de un bloque If Then. El código Python dice 'if front_eye.detect(GREEN): drivetrain.turn_for(RIGHT, 90, DEGREES)'. Fuera de la declaración if hay un bloqueo para detener la conducción.

    El siguiente proyecto incluye los mismos comandos convertidos en un bloque Switch.  

    La primera línea de código, si front_eye.detect(VERDE): es el bucle condicional que comprueba si el sensor de ojo frontal detecta el color verde. Tenga en cuenta que debe haber dos puntos (:) al final de esta línea. 

    La segunda línea de código, drivetrain.turn_for (DERECHA, 90, GRADOS) le dice al robot que gire a la derecha 90 grados cuando el sensor del ojo delantero detecta el color verde. Esta línea tiene sangría en un valor predeterminado de 4 espacios porque este es el comportamiento específico que se realizará si el sensor de ojo frontal detecta verde. 

    El mismo proyecto de bloques VEXcode VR, pero con bloques de interruptores incluidos, gira a la derecha si el ojo frontal detecta el color verde. El proyecto comienza con un bloque When started y es seguido por un bloque C switch versión de un bloque If Then. El código Python dice 'if front_eye.detect(GREEN): drivetrain.turn_for(RIGHT, 90, DEGREES)'. Fuera de la declaración if hay un bloqueo para detener la conducción.

  • Arrastre un <Color sensing> bloque al espacio de trabajo en la entrada hexagonal del bloque [If then].

    VEXcode VR bloquea el proyecto que utiliza una instrucción if para detectar el color de un disco. Comienza con un bloque When Started y luego un bloque de comentarios que dice "si Front Eye detecta verde, gire a la derecha". Por último, hay un bloque If Then vacío con un parámetro booleano de un bloque de detección de color que dice "¿El ojo delantero detecta rojo?".
  • Cambie el parámetro del <Color sensing> bloque a ‘verde’.

    VEXcode VR bloquea el proyecto que utiliza una instrucción if para detectar un disco verde. Comienza con un bloque When Started y luego un bloque de comentarios que dice "si Front Eye detecta verde, gire a la derecha". Por último, hay un bloque If Then vacío con un parámetro booleano de un bloque de detección de color que dice "¿El ojo delantero detecta verde?". El menú desplegable de color está abierto para cambiar el color de rojo a verde.
  • Cuando el sensor del ojo frontal detecta un disco verde, el robot VR deberá girar 90 grados a la derecha para comenzar a resolver el laberinto de discos. Arrastre un bloque [Turn for] al bloque [If then].

    VEXcode VR bloquea el proyecto que utiliza una instrucción if para detectar un disco verde y luego girar a la derecha. Comienza con un bloque When Started y luego un bloque de comentarios que dice "si Front Eye detecta verde, gire a la derecha". Por último, hay un bloque If Then con un parámetro booleano de un bloque de detección de color que dice '¿El ojo frontal detecta verde?' y un bloque Turn right for 90 degrees dentro del contenedor If que se activará si el booleano es verdadero.
  • Siga estos mismos pasos para añadir otro bloque [If then] para los tres colores del Laberinto de discos (verde, azul y rojo). Cada color está asociado con un comportamiento diferente. Los bloques dentro del bloque [If then] deberán coincidir con el comportamiento previsto. Añade los siguientes bloques al proyecto. Cuando el robot VR detecta el color ‘azul’, el robot VR girará 90 grados a la izquierda.

    El mismo VEXcode VR bloquea el proyecto desde antes, pero con una instrucción if añadida para girar a la izquierda si hay un disco azul. Comienza con un bloque When Started y luego hay un bloque If Then con un parámetro booleano de un bloque Color Sensing que dice '¿El ojo frontal detecta verde?' y un bloque Turn right for 90 degrees dentro del contenedor If. Por último, hay lo mismo si bloquea y gira la pila de bloques, pero cambia a girar a la izquierda 90 grados si se detecta el color azul.
  • Cuando el robot VR llega al final del laberinto, el robot VR detectará el color ‘rojo’.

    Robot de realidad virtual en el patio de recreo del laberinto de discos de realidad virtual, el robot se detiene y mira hacia un disco rojo.
  • Para detener el Robot VR, se debe añadir otro bloque [If then] con instrucciones sobre qué hacer cuando el Robot VR detecta ‘rojo’. Añade los siguientes bloques al proyecto.

    El mismo VEXcode VR bloquea el proyecto desde antes, pero con una instrucción if añadida para dejar de conducir si hay un disco rojo. Comienza con un bloque When Started y luego hay un bloque If Then con un parámetro booleano de un bloque Color Sensing que dice '¿El ojo frontal detecta verde?' y un bloque Turn right for 90 degrees dentro del contenedor If. A continuación, hay la misma pila de bloques si se bloquea y se gira, pero se cambia a girar a la izquierda 90 grados si se detecta el color azul. Por último, lo mismo si se utiliza la pila de bloque y bloque de giro, pero se cambia a Detener conducción si se detecta el color rojo.
  • El robot de realidad virtual también puede tomar una decisión si no ve un color utilizando el valor "ninguno". En el punto de inicio del Disk Maze, el VR Robot no detecta ningún color.

    La vista del patio de recreo de realidad virtual con el tablero abierto y un cuadro rojo que resalta los valores de detección del ojo frontal del robot. El valor actual de 'Objeto' es falso y el valor actual de 'Color' es ninguno.
  • Debido a que el sensor de ojo frontal no detecta un color al comienzo del laberinto de discos, el robot VR deberá avanzar hasta que detecte el disco verde. Se puede añadir otro bloque [If then] para indicar al robot VR qué hacer cuando no se detecta ningún color.

    Bloque de detección de color VEXcode VR, que dice "¿El ojo frontal no detecta ninguno?". Hay un menú desplegable abierto para mostrar cómo el usuario puede cambiar el color objetivo a ninguno.
  • Añade los siguientes bloques al proyecto. Cuando el robot VR no detecta ningún color, el robot VR avanzará.

    El mismo VEXcode VR bloquea el proyecto desde antes, pero con una instrucción if añadida para avanzar si no se detecta ningún disco. Comienza con un bloque When Started y luego hay un bloque If Then con un parámetro booleano de un bloque Color Sensing que dice '¿El ojo frontal detecta verde?' y un bloque Turn right for 90 degrees dentro del contenedor If. A continuación, hay la misma pila de bloques si se bloquea y se gira, pero se cambia a girar a la izquierda 90 grados si se detecta el color azul. A continuación, se utiliza el mismo bloque si se utiliza la pila de bloques de giro, pero se cambia a Detener conducción si se detecta el color rojo. Por último, lo mismo si se utiliza la pila de bloques de bloque y giro, pero se cambia a Conducir hacia adelante si no se detecta ningún color.
  • El robot VR ahora tiene instrucciones para cada color detectado por el sensor ocular.
    • El sensor de ojo frontal detecta ‘¿verde?’
      • Gire a la derecha 90 grados
    • El sensor de ojo frontal detecta ‘¿azul?’
      • Gire a la izquierda 90 grados
    • El sensor del ojo delantero detecta ‘¿rojo?’
      • Dejar de conducir
    • El sensor de ojo frontal detecta ‘¿ninguno?’
      • Conducir hacia adelante
  • Abra el Disk Maze Playground y ejecute el proyecto.

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