Skip to main content

Lección 3: Cuando se detecta el color rojo

No hay comandos para decirle al robot VR qué hacer una vez que detecta el color rojo. Para evitar el borde rojo, el robot VR debe dar marcha atrás y girar una vez que detecte el color rojo, como lo hace en este video.

Archivo de vídeo
  • Agregue un comentario al final del bucle mientras para indicar qué debe suceder cuando el sensor de ojo hacia abajo detecta el borde rojo. Tu proyecto ahora debería verse así:

    def main():
    	# Busca edificios mientras el borde rojo no se detecta
    	mientras no está 	abajo.detect_eye.detect (RED):
    		# ¿El sensor de distancia detecta un castillo?
    		
    		if front_distance.found_object():
    			# Crash castle detected by Distance Sensor drivetrain.drive
    			(FORWARD)
    		
    		else:
    			# Girar para encontrar un castillo usando el sensor de distancia drivetrain.turn
    			(RIGHT)
    			
    		wait(5, MSEC)
    		
    	# Revertir y girar cuando se detecte un borde rojo
  • Añada un drive_for y turn_for a los comandos debajo del comentario para permitir que el VR Robot invierta y gire una vez que el Down Eye Sensor detecte el color rojo.

    def main():
    	# Busca edificios mientras el borde rojo no se detecta
    	mientras no está 	abajo.detect_eye.detect (RED):
    		# ¿El sensor de distancia detecta un castillo?
    		
    		if front_distance.found_object():
    			# Crash castle detected by Distance Sensor
    			drivetrain.drive(FORWARD)
    		
    		else:
    			# Girar para encontrar un castillo usando el sensor de distancia
    			drivetrain.turn(RIGHT)
    			
    		wait(5, MSEC)
    		
    	# Revertir y girar cuando el borde rojo
    	detecta 	drivetrain.drive_for (REVERSE, 300, MM)
    	drivetrain.turn_for(RIGHT, 90, DEGREES)
  • Abra el Dynamic Castle Crasher Playground si aún no está abierto y ejecute el proyecto. ¿El robot VR se comporta como pretendías?
  • Cuando se ejecuta este proyecto, hay dos condiciones que se comprueban. La primera es la condición del Sensor de Ojos Abajo que detecta el color rojo dentro del bucle mientras Tenga en cuenta que el flujo del proyecto pasa a la siguiente condición de un objeto que se detecta SÓLO si el Sensor de Ojos Abajo no ve el color rojo. Si el sensor Down Eye detecta rojo, el flujo del proyecto omite la instrucción if else y pasa a conducir en reversa y girando.
    El código del proyecto Python de esta lección con un diagrama que muestra el flujo del proyecto en el lateral. Se lee Primera condición verificada: el sensor ocular inferior detecta rojo en naranja, lo que representa el inicio del bucle. Hay un bucle de flecha roja para cuando el sensor de abajo del ojo detecta rojo, que informará de verdadero y el proyecto saldrá de la mirada que se repite. Si informa falso, el código se moverá a la instrucción if then y continuará repitiéndose hasta que el sensor Down Eye detecte rojo.
 
  • La segunda condición que se verifica es la instrucción if else. Mientras el sensor Down Eye no detecte el rojo, el proyecto continuará en el bucle mientras para verificar el estado del sensor de distancia. El robot VR utilizará los datos del sensor de distancia para tomar la decisión de conducir hacia adelante o girar a la derecha. El código del proyecto Python de esta lección con un diagrama que muestra el flujo del proyecto en el lateral. Se lee Segunda condición verificada: el sensor de distancia detecta el objeto. Muestra lo que sucede si se comprueba la segunda condición, y si informa true, el VR Robot avanzará, y si la segunda condición informa false, el VR Robot girará a la derecha.
  • Sin embargo, una vez que el sensor Down Eye detecta el color rojo, el robot VR se moverá en reversa, girará y luego se detendrá, ya que ese es el final del flujo del proyecto. No se utiliza ningún bucle para repetir los comportamientos de nuevo.

    Una vista de arriba hacia abajo del patio de recreo Dynamic Castle Crashed que muestra algunos de los castillos derribados, con el robot VR dando marcha atrás y dando la vuelta después de pasar el borde rojo, por lo que se enfrenta al centro del patio de recreo de nuevo.

Añadiendo un bucle infinito while

  • Se necesita un bucle infinito mientras que para que los comportamientos se repitan en un bucle. Arrastre o escriba a mientras en el bucle en la parte superior del proyecto y configure la condición en Verdadero para crear un bucle infinito. Luego, copie y pegue el código anterior dentro del bucle infinito while . Asegúrese de que los comandos estén correctamente sangrados bajo los encabezados correctos, de lo contrario es posible que el proyecto no se ejecute como se esperaba. Tu proyecto ahora debería verse así:

    def main():
    
    	while True:
    		# Busque la construcción mientras el borde rojo no se detecta
    		mientras no down_eye.detect (RED):
    			# ¿El sensor de distancia detecta un castillo?
    		
    			if front_distance.found_object():
    				# Crash castle detected by Distance Sensor
    				drivetrain.drive(FORWARD)
    		
    			else:
    				# Girar para encontrar un castillo usando el sensor de distancia
    				drivetrain.turn(RIGHT)
    			
    			wait(5, MSEC)
    		
    		# Revertir y girar cuando el borde rojo
    		detecta 		drivetrain.drive_for (REVERSE, 300, MM)
    		drivetrain.turn_for(RIGHT, 90, DEGREES)
    
  • Abra el Dynamic Castle Crasher Playground si aún no está abierto y ejecute el proyecto. ¿El robot VR se comporta como pretendías? 
  • Cuando se ejecute este proyecto, el robot VR conducirá hacia un castillo detectado y girará a la derecha si no se informa de castillos. Una vez que el sensor Down Eye detecta el color rojo, el robot VR se mueve en reversa, gira y continúa conduciendo hacia otro castillo.

    Una vista de arriba hacia abajo del patio de recreo Dynamic Castle Crasher que muestra que el robot VR se ha derrumbado sobre varios castillos en el patio de recreo y ahora se está moviendo hacia el último castillo en pie.

Preguntas

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

Google Doc / .docx / .pdf