Skip to main content

Lección 3: Adición del sensor ocular inferior

En la lección anterior, el sensor de distancia se utilizó para determinar si el robot VR detectó un objeto o no y, de ser así, se dirigió hacia el objeto. Sin embargo, no se utilizaron valores de sensor para determinar si el robot VR estaba cerca del borde del patio de recreo para detenerlo. Detener el robot de realidad virtual cuando estaba cerca del borde del patio de recreo evitaría que se saliera del lado.El código del proyecto está en el lado izquierdo, y el patio de recreo se muestra en el lado derecho. El robot de realidad virtual está sobre el borde rojo del patio de recreo y ha dejado de moverse para que no se caiga del borde del patio de recreo.

 

Tal como está, el proyecto repite los comportamientos de conducir hacia adelante y girar, para siempre. Sin embargo, no hay ninguna condición para verificar el borde rojo alrededor del patio de recreo. Por lo tanto, el robot de realidad virtual puede caerse del patio de recreo cuando se conduce hacia adelante.

Una vista en ángulo del Dynamic Castle Crasher Playground que muestra al robot de realidad virtual empujando el bloque de un castillo. El robot VR se ha detenido antes de que el bloque del castillo haya sido empujado fuera del borde del patio de recreo.

Adición del sensor ocular inferior

Se necesita otro sensor para que el robot VR pueda determinar si está cerca del borde del patio de recreo o no. El sensor Down Eye se puede utilizar para determinar si el robot VR está cerca del borde del patio de recreo detectando el borde rojo alrededor del patio de recreo.Una vista de la parte inferior del Robot VR, con el Sensor Down Eye del Robot VR resaltado.

Los comportamientos de conducir hacia adelante y girar solo deben repetirse hasta que el sensor Down Eye informe que se detecta el borde rojo. De esta forma, el bucle infinito while se puede sustituir por un bucle while con una condición not , para repetir los comportamientos de avanzar y girar hasta que se cumpla la condición de detectar el borde rojo.

  • Cargue el proyecto Unit9Lesson2 de la lección anterior.

    def main():
    	while True:
    		# ¿El sensor de distancia detecta un castillo?
    		
    		if front_distance.found_object():
    			# Crash castle detected by Distance Sensor
    			drivetrain.drive(FORWARD)
    		
    		else:
    			# Gira para encontrar un castillo usando el Distance Sensor
    			drivetrain.turn(RIGHT)
    			
    		wait(5, MSEC)
  • Cambie el nombre del proyecto Unit9Lesson3.
    La barra de herramientas VEXcode VR que muestra los nombres del proyecto resaltados con un cuadro rojo. El nombre del proyecto es Unidad 9 Lección 3.
  • Agregue un comentario para indicar cómo se utilizará el bucle mientras que con el sensor de ojo hacia abajo. Tu proyecto ahora debería verse así:

    def main():
    	# Busca un edificio mientras no se detecta el borde rojo
    	mientras es 	Verdadero:
    		# ¿El sensor de distancia detecta un castillo?
    		
    		if front_distance.found_object():
    			# Crash castle detected by Distance Sensor
    			drivetrain.drive(FORWARD)
    		
    		else:
    			# Gira para encontrar un castillo usando el Distance Sensor
    			drivetrain.turn(RIGHT)
    			
    		wait(5, MSEC)
  •  Se necesita un comando para comprobar continuamente el sensor ocular inferior. El robot VR deberá repetir estos comportamientos mientras el sensor Down Eye no detecte el color rojo. Cambie la condición del bucle while colocando la palabra clave not delante de la condición. Tu proyecto ahora debería verse así:

    def main():
    	# Busca un edificio mientras el borde rojo no se detecta
    	mientras no es Verdadero:
    		# ¿El sensor de distancia detecta un castillo?
    		
    		if front_distance.found_object():
    			# Crash castle detected by Distance Sensor
    			drivetrain.drive(FORWARD)
    		
    		else:
    			# Gira para encontrar un castillo usando el Distance Sensor
    			drivetrain.turn(RIGHT)
    			
    		wait(5, MSEC)
  • A continuación, cambie la condición de Verdadero al  comando down_eye.detect. Establezca el parámetro en '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:
    			# Gira para encontrar un castillo usando el Distance Sensor
    			drivetrain.turn(RIGHT)
    			
    		wait(5, MSEC)
  • 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, el robot VR se dirigirá hacia un objeto detectado y girará a la derecha en caso contrario. Sin embargo, a pesar de que el sensor Down Eye está buscando el borde rojo, al robot VR no se le dice qué hacer una vez que detecta el rojo, por lo que continúa conduciendo y finalmente se cae del patio de recreo.

    Una vista de arriba hacia abajo del patio de recreo Dynamic Castle Crasher que muestra al robot de realidad virtual empujando un castillo fuera del borde del patio de recreo, pero sin caerse del patio de recreo también.

Una vez que se cumple la condición del bucle while , el flujo del proyecto se ejecutará fuera del bucle  while.

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