Skip to main content

Lección 3: Entrada de sensor múltiple

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 proyecto VEXcode VR de la lección anterior que utiliza el sensor de distancia en el robot para detectar castillos y luego conducir para estrellarlos, se muestra a la izquierda. A la derecha está la ventana del patio de recreo que muestra un proyecto en curso, con varios castillos estrellados, pero el robot de realidad virtual a punto de salir 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 lateral del robot de realidad virtual en el Dynamic Castle Crasher Playground, empujando un pedazo de un castillo hacia un lado y a punto de salirse del borde.

Se necesita otro sensor para que el robot VR pueda determinar si está cerca del borde del patio de recreo o no. Los comportamientos de conducir hacia adelante y girar solo necesitan repetirse hasta que se detecte el borde rojo. Por lo tanto, el bloque [Forever] se puede reemplazar con el bloque [Repeat until], para repetir los comportamientos de conducir hacia adelante y girar hasta que se cumpla la condición de detectar el borde rojo. 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.

Un bloque de detección de color VEXcode VR lee ¿Down Eye detecta rojo?.
  • Cargue el proyecto Unit9Lesson2 de la lección anterior.
El Proyecto de la Lección 2 de la Unidad 9. El proyecto comienza con un bloque When started con un bloque Forever adjunto. Dentro del bloque Forever hay un bloque If then con la distancia frontal encontrada un objeto como parámetro. La rama If then tiene un comentario que dice Knock over the building found using the Distance Sensor and a Drive forward block. La rama else tiene un comentario que dice Gira para encontrar un edificio usando el sensor de distancia y un bloque de giro a la derecha.
  • Cambie el nombre del proyecto Unit9Lesson3.
El cuadro de nombre del proyecto en el centro de la barra de herramientas VEXcode VR, resaltado con un cuadro rojo, a la izquierda del botón Seleccionar parque infantil. El nombre del proyecto dice Unidad 9 Lección 3.
  • Se necesita un bloque para comprobar continuamente el sensor ocular inferior. El robot VR deberá repetir estos comportamientos hasta que el sensor Down Eye detecte el color rojo. Primero, elimina el bloque [Forever].
Una descripción general de cómo eliminar el bloque Forever del proyecto. El nuevo proyecto se mueve del bloque When started al bloque If then else, sin que esté presente el bucle Forever.
  • Añade un bloque [Repeat until].
Una descripción general de la adición del bloque Repetir hasta alrededor de la totalidad del bloque If then else. El nuevo proyecto comienza con un bloque When Started, luego tiene un bloque Repeat until con el parámetro abierto. Dentro de la C del bloque Repetir hasta está el bloque If then else.
  • Añada un <Color sensing> bloque dentro del bloque [Repetir hasta] y establezca los parámetros en ‘DownEye’ detecta ‘rojo’.
El mismo proyecto con el ajuste rojo Down Eye Detects como parámetro del bloque Repetir hasta.

Se utiliza un bloque [Repetir hasta] en lugar de un bloque [Esperar hasta] en este proyecto. Esto se debe a que un bloque [Esperar hasta] es un bloque de espera que detendrá el flujo del proyecto hasta que se cumpla la condición. Si se utiliza un bloque [Wait until], el bloque [If then else] no se ejecutaría hasta que se cumpla la condición de [Wait until] y el bloque [If then else] solo se ejecutaría una vez.

Un diagrama del flujo del proyecto si se usó un bloque Esperar hasta en lugar de un bucle Repetir hasta. El proyecto se mantendría en espera hasta el bloque, hasta que la condición se informara como verdadera, y solo entonces pasaría al bloque If then else.

Al usar un bloque [Repeat until], la condición [If then else] se verifica y ejecuta constantemente.

Un diagrama del flujo del proyecto con el bloque Repetir hasta, que muestra que la condición del bloque If then else se verifica continuamente y se ejecuta en función de si el objeto se encuentra (Verdadero) o no se encuentra (falso).
  • Añade un comentario para indicar el propósito de usar el bloque [Repetir hasta].
El mismo proyecto que se construyó anteriormente, con un bloque Comment añadido entre el bloque When started y el bloque Repeat until. El comentario dice "Busca edificios hasta que se detecte el borde rojo".
  • Abre el Dynamic Castle Crasher Playground y ejecuta el proyecto.
  • Cuando se ejecuta este proyecto, el robot VR se dirigirá hacia un objeto detectado y girará a la derecha de lo 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 de la ventana del patio de recreo Dynamic Castle Crasher mientras se ejecuta el proyecto, con varios castillos estrellados y el robot VR conduciendo por el borde superior derecho del patio de recreo en busca de una pieza del castillo.

Una vez que se cumpla la condición del bloque [Repetir hasta], el flujo del proyecto se ejecutará fuera del bloque [Repetir hasta].

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