Skip to main content

Lección 2: Resumen posterior al proyecto

El bloque [If then else] se utiliza para que el robot VR pueda tomar una decisión. Si la condición booleana es VERDADERA, entonces se ejecutarán los bloques dentro de la rama ‘If Then’. Si la condición booleana es FALSA, se ejecutarán los bloques dentro de la rama ‘Else’.

Un diagrama que indica el flujo del proyecto del bloque if then else dentro del bucle forever. Cuando se inicia el proyecto, se comprueba el estado del sensor de distancia. Si se encuentra un objeto, esa condición es verdadera, entonces se ejecuta el bloque Drive Forward. Si no se encuentra ningún objeto, esa condición informa falso, de lo contrario se ejecuta el bloque de giro a la derecha. Todo esto se repite continuamente dentro del bucle Forever.

En este proyecto, el robot VR se dirigió hacia un edificio cuando el sensor de distancia detectó un objeto y el <Distance found object> bloque se informó como VERDADERO. Esto dio instrucciones a la rama ‘If Then’ del proyecto para que se ejecutara. Esta rama incluye el bloque [Drive]. El robot de realidad virtual se salta la rama ‘Else’ del proyecto.

El proyecto está a la izquierda con un resaltado verde que muestra el flujo del proyecto de la rama if then en ejecución. A la derecha, se muestra la vista de arriba hacia abajo del patio de recreo, con una flecha y un cuadro rojo que resalta el castillo u objeto detectado por el sensor de distancia en este caso.

Debido a que el bloque [If then else] se coloca dentro de un bloque [Forever], el proyecto vuelve a la parte superior del bloque [Forever] para verificar el estado del bloque [If then else]. Este bucle continuará para siempre, dando instrucciones al robot de realidad virtual para que compruebe continuamente la condición [If then else] cientos de veces por segundo.

Tenga en cuenta que los bloques [Drive] y [Turn] dentro del bloque [If then else] son bloques que no están en espera. Los bloques que no están en espera no detienen el flujo de un proyecto mientras se están ejecutando.  Un comportamiento de no espera que se ejecuta en un bloque [If then else] (como avanzar si se detecta un objeto) continuará mientras se comprueba la condición y solo cambiará cuando cambie la condición.

El mismo proyecto VEXcode VR con flechas que se mueven desde la parte inferior del bloque Forever hasta la parte superior para indicar que el proyecto fluye de regreso a la parte superior del bucle Forever para repetir todos los comandos dentro de él.

Si el <Distance found object> bloque se informa como FALSO, se ejecuta la rama ‘Else’ del proyecto. La rama ‘Else’ incluye el bloque [Turn].

El proyecto está a la izquierda con un resaltado rojo que muestra el flujo del proyecto de la rama else en ejecución. A la derecha se muestra la vista de arriba hacia abajo del patio de recreo, con flechas curvas alrededor del robot VR que indican el giro para detectar un objeto, ya que no hay uno directamente frente al sensor de distancia.

Para su información

Los bloques [If then else] se utilizan para garantizar que solo se ejecute una rama en el proyecto cuando se comprueba la condición. Solo una instancia o condición puede ser verdadera en cualquier momento. Esto hace que el proyecto sea más eficiente.

Un diagrama que indica el flujo del proyecto del bloque if then else dentro del bucle forever. Cuando se inicia el proyecto, se comprueba el estado del sensor de distancia. Si se encuentra un objeto, esa condición es verdadera, entonces se ejecuta el bloque Drive Forward. Si no se encuentra ningún objeto, esa condición informa falso, de lo contrario se ejecuta el bloque de giro a la derecha. Todo esto se repite continuamente dentro del bucle Forever.

Comparar el proyecto actual con el proyecto creado en la Unidad 7.  El proyecto de la Unidad 7 utiliza cuatro bloques [If then].

Un diagrama del flujo del proyecto de un proyecto de muestra de la Unidad 7 con cuatro bloques If en secuencia. En cada caso, el parámetro If utiliza el sensor de ojo frontal para detectar un color específico y realizar un comportamiento basado en el color detectado. Si se detecta el color, ese If then es verdadero, y el bloque dentro de él se ejecutará, y esto sucederá repetidamente para cada sección del código.

Cuando se ejecuta un proyecto con múltiples bloques [If then], podría ser posible que múltiples condiciones informen TRUE y el proyecto se ejecute a través de los comandos en el bloque [Forever]. En este proyecto, ambas condiciones pueden ser CIERTAS durante el mismo bucle [Forever]. Conflictos como este podrían hacer que el proyecto deje de ejecutarse o se ejecute más lentamente.

Un diagrama del flujo del proyecto de dos bloques If then secuenciados dentro de un bucle Forever. Cuando se inicie, el proyecto comprobará primero la condición 1, el parámetro del primer bloque if then. Si eso es cierto, se ejecutará el giro a la derecha para el bloque 90 dentro de él. Si esa condición es falsa, el proyecto pasa al siguiente bloque if then para comprobar la condición 2. Si la condición 2 es verdadera, el accionamiento hacia adelante para el bloque de 200 mm dentro de él se ejecutará. Si es falso, el proyecto volverá a la parte superior del bucle Forever para repetir el proceso nuevamente.

Usar un bloque [If then else] evitaría errores como este porque solo una condición puede ser VERDADERA en un momento dado con este bloque.

Un diagrama del flujo del proyecto utilizando un bloque if then else dentro de un bucle forever. Cuando se inicie, se comprobará el estado de la rama if then. Si es cierto y la unidad se está moviendo, entonces el bloque dentro de la rama If se ejecutará y el robot girará 90 grados a la izquierda; de lo contrario, el robot avanzará 200 mm. Esta decisión de verificar una condición se tomará continuamente, ya que el proyecto está dentro de un ciclo perpetuo.

Preguntas

Seleccione un enlace a continuación para acceder al cuestionario de la lección.

Google Doc / .docx / .pdf