Skip to main content

Lección 3: Uso de enunciados if

Navegación por el laberinto de discos con las instrucciones If 

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 se alinea con un comportamiento diferente que debe realizar el robot de realidad virtual.

Para su información

La declaración if solo acepta condiciones booleanas. 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 Verdadero o Falso.

if condition: 
	aprobado

La declaración if 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 de la instrucción if: gire a la derecha 90 grados. Si no se detecta un objeto verde, el proyecto pasará al siguiente comando.

def main():
    if front_eye.detect(GREEN):
        transmisión.turn_for(RIGHT, 90, DEGREES)
    transmisión.stop()
  • Inicie un nuevo proyecto y seleccione Disk Maze Playground cuando se le solicite. Mosaico de selección de Disk Maze Playground en VEXcode VR.
  • Nómbralo Unit7Lesson3.Barra de herramientas en VEXcode VR con el cuadro de nombre del proyecto. El nombre del proyecto dice Unidad 7 Lección 3.

     

  • Agregue comentarios para describir la intención de los comportamientos del robot de realidad virtual durante cada sección siguiente del proyecto. 
def main():
    # Si el ojo delantero detecta verde, gire a la derecha

    # Si el ojo delantero detecta azul, gire a la izquierda
  • Arrastre o escriba la declaración if debajo del primer comentario.
def main():
    # Si el ojo delantero detecta verde, gire a la derecha
    si la condición: 
    	pasa

    # Si el ojo delantero detecta azul, gire a la izquierda
  • Establezca la condición de la instrucción if en el  comando front_eye.detect y establezca el parámetro en 'GREEN'.
def main():
    # Si el ojo delantero detecta verde, gire a la derecha
	si front_eye.detect(VERDE): 
    	pass
    	
    # Si el ojo delantero detecta azul, gire a la izquierda
  • Arrastre o escriba un comando turn_for dentro de la declaración if , para reemplazar 'pass'. Configure los parámetros para que giren 90 grados a la derecha. Ahora, si el sensor del ojo frontal detecta 'VERDE', el robot VR girará 90 grados a la derecha.
def main():
    # Si el ojo delantero detecta verde, gire a la derecha
	si front_eye.detect(VERDE): 
    	drivetrain.turn_for(DERECHA, 90, GRADOS)
    	
    # Si el ojo delantero detecta azul, gire a la izquierda
  • Seguiremos estos mismos pasos para agregar declaraciones si adicionales para los tres colores en el Laberinto de discos (verde, azul y rojo). Cada color está asociado con un comportamiento diferente. Los comandos dentro de las declaraciones if deberán coincidir con el comportamiento previsto. Agregue los siguientes comandos al proyecto debajo del segundo comentario, de modo que si el sensor del ojo frontal detecta el color 'AZUL', el robot VR girará 90 grados a la izquierda.
	# Si el ojo frontal detecta azul, gire a la izquierda
	si FRONT_EYE.DETECT (AZUL 
    	):     	drivetrain.turn_for (IZQUIERDA, 90 GRADOS)
  • Cuando el robot VR llega al final del laberinto, el sensor del ojo frontal detectará el color ‘ROJO’.

    Una vista de cerca del robot de realidad virtual que llega al disco rojo al final del laberinto de discos y se detiene frente a él.
  • Para detener el robot VR, se debe agregar otra declaración si con instrucciones sobre qué hacer si el sensor ocular frontal detecta "ROJO". Añade el siguiente comentario y comandos al proyecto para que el robot VR deje de conducir si detecta 'ROJO'. 
	# Si el ojo delantero detecta rojo, deténgase
	si front_eye.detect(ROJO): 
    	drivetrain.stop()

Si no se detecta ninguno de los colores

El robot de realidad virtual también puede tomar una decisión si no ve un color utilizando el valor "ninguno". Por ejemplo, en el punto de inicio del laberinto de discos, el sensor de ojo frontal 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 agregar otra declaración si  para indicarle al robot VR qué hacer cuando no se detecta ningún color. 

  • Agregue el siguiente comentario y comandos al proyecto, de modo que si el sensor del ojo frontal no detecta ningún color, el robot VR avanzará.
	# Si el ojo delantero no detecta ninguno, entonces conduzca hacia adelante
	si front_eye.detect (NONE) 
    	:     	drivetrain.drive (FORWARD)
  • El robot VR ahora tiene instrucciones para cada color detectado por el sensor ocular frontal.
    • Si el sensor del ojo delantero detecta 'VERDE' – Gire a la derecha 90 grados
    • Si el sensor del ojo delantero detecta ‘AZUL' –  Gire a la izquierda 90 grados
    • Si el sensor del ojo delantero detecta ‘ROJO’ – Deje de conducir
    • Si el sensor del ojo delantero detecta ‘NINGUNO’ – Conduzca hacia adelante
  • Abra la ventana del patio de recreo si aún no está abierta. Asegúrese de que Disk Maze Playground se abra y ejecute el proyecto. Todo el proyecto debería verse así: 
def main():
    # Si el ojo delantero detecta verde, entonces gire a la derecha
    si front_eye.detect (VERDE)
        : drivetrain.turn_for (DERECHA, 90, GRADOS)

    # Si el ojo delantero detecta azul, entonces gire a la izquierda
    si front_eye.detect (AZUL)
        : drivetrain.turn_for (IZQUIERDA, 90, GRADOS)

    # Si el ojo delantero detecta rojo, entonces pare
    si front_eye.detect (ROJO): 
        drivetrain.stop ()

    # Si el ojo delantero no detecta ninguno, entonces conduzca hacia adelante
    si front_eye.detect (NINGUNO) 
        : drivetrain.drive (ADELANTE)
  • ¿El robot VR se comporta como pretendías? ¿Por qué sí o por qué no? En la página siguiente de la lección, aprenderemos más sobre este proyecto.

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