Skip to main content

Lección 2: Conducir al número '5'

¡En esta lección, el robot VR conducirá hasta el número ‘5‘ y volverá al número ‘1‘ en el patio de recreo del mapa de cuadrícula numérica!

Imagen de arriba hacia abajo del patio de recreo del Mapa de cuadrícula numérica. El robot VR se puede ver en la esquina inferior izquierda del número 1. Se puede ver una llamada en el centro de la fila inferior en el número 5.

Tenga en cuenta que el robot VR viajará a lo largo del eje X con valores X aumentando para moverse al número ‘5‘ en el patio de recreo del mapa de cuadrícula numérica.

Mapa de cuadrícula numérica del patio de recreo con el eje x superpuesto en el centro del patio de recreo. El centro de cada cuadrado está marcado con el valor del eje X, comenzando con -900 en el lado izquierdo y aumentando en 200 cada cuadrado hasta 900 en el lado derecho. Se puede ver un robot de realidad virtual en el número 1 en la esquina inferior izquierda con una flecha que apunta al número 5.

El robot VR conducirá hasta la ubicación del número ‘5‘ en el patio de recreo del mapa de cuadrícula numérica. Sin embargo, antes de que el Robot VR pueda navegar a ese número, se le debe decir al Robot VR dónde está la ubicación de ese número. Comenzando en el centro del patio de recreo, las coordenadas del número ‘5’ son (-100, -900).

Esquina inferior izquierda del patio de juegos del mapa de cuadrícula numérica de antes con los ejes x e y superpuestos. Se muestra una flecha desde -100 en el eje x hasta el número 5 y -900 en el eje y hasta el número 5. El robot VR todavía está en el número 1 con las coordenadas -900, -900 debajo del robot.

  • Para comenzar, el robot VR debe estar frente al número ‘5’. Arrastre o escriba un comando turn_for.
# Añadir código de proyecto en "main"
def main():
    drivetrain.turn_for(DERECHA, 90, GRADOS)
  • Arrastre un bucle while debajo del comando turn_for . Tu proyecto debería verse así:
# Add project code in "main"
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while condition:
        wait(5, MSEC)
  • Al igual que la unidad del sensor de distancia, este proyecto utilizará la condición de la posición del sensor de ubicación con un operador de comparación para navegar por el patio de juegos del mapa de cuadrícula numérica. Establezca la condición para el bucle while en la posición del comando en el eje X menor que -100 en milímetros (mm). Tu proyecto debería verse así:
# Add project code in "main"
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) < -100:
        wait(5, MSEC)
  • Arrastre o escriba el comando sin espera drive dentro del bucle while. Tu proyecto debería verse así:
# Add project code in "main"
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) < -100:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
  • Tenga en cuenta que se utiliza el operador menor que en lugar del operador mayor que porque el robot VR está conduciendo hacia la derecha desde el lado izquierdo del patio de recreo. El robot VR comienza con un valor X de -900 milímetros (mm). A medida que el robot VR avanza, los valores X aumentan y, por lo tanto, el robot seguirá avanzando mientras el valor X sea inferior a -100.

Esquina inferior izquierda del patio de juegos del mapa de cuadrícula numérica de antes con los ejes x e y superpuestos. Se muestra una flecha desde -100 en el eje x hasta el número 5 y -900 en el eje y hasta el número 5. El robot VR todavía está en el número 1 con las coordenadas -900, -900 debajo del robot.

Para su información

Deberá elegir qué operador de comparación utilizar en su proyecto, dependiendo de la dirección en la que desee que el robot VR viaje a lo largo del eje X o Y. Cuando el robot VR se dirige hacia un valor mayor, se utilizará el operador menor que (<) con un bucle while ; y cuando el robot VR se dirige hacia un valor menor, se utilizará el operador mayor que (>) con un bucle while .

Esto se alinea con los movimientos hacia la izquierda y hacia la derecha cuando se mira el patio de recreo. Si el robot VR se mueve de izquierda a derecha o de abajo hacia arriba (valores más grandes), el operador menor que se utiliza para conducir mientras la posición es menor que el valor objetivo. 

Dos vistas de arriba hacia abajo del patio de recreo del mapa de cuadrícula numérica. En la primera, el robot VR se muestra en el número 51 con una flecha que indica que el robot se moverá hacia la derecha hasta el número 60. El texto anterior dice "conducir mientras la posición es menor que". En el segundo, el robot VR se muestra en el número 6 con una flecha que indica que el robot se moverá hasta el número 96. El texto anterior dice "conducir mientras la posición es menor que".

Si el robot VR se mueve de derecha a izquierda o de arriba a abajo (valores más pequeños), el operador mayor que se utiliza para conducir mientras la posición es mayor que el valor objetivo.

Dos vistas de arriba hacia abajo del patio de recreo del mapa de cuadrícula numérica. En la primera, el robot VR se muestra en el número 60 con una flecha que indica que el robot se moverá hacia la izquierda hasta el número 51. El texto anterior dice "conducir mientras la posición es mayor que". En el segundo, el robot VR se muestra en el número 96 con una flecha que indica que el robot se moverá hacia abajo hasta el número 6. El texto anterior dice "conducir mientras la posición es mayor que".

Usando los operadores de comparación, el robot VR viajará mientras el valor informado por el sensor de ubicación sea mayor que (>) o menor que (<) el valor umbral. En este ejemplo, el robot VR navegará a 500 milímetros (mm) positivos en el eje X. El robot VR se moverá mientras la posición en el eje X esté entre 0 y 499 positivo. Cuando el sensor de ubicación informa que la posición es 501 o superior, el robot VR dejará de conducir. 

# Add project code in "main"
def main():
    monitor_sensor(location.position)
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) < 500:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()

Tenga en cuenta que el valor informado por el sensor de ubicación no es exactamente 500 milímetros (mm). Al igual que el sensor de distancia, los operadores de comparación se utilizan debido al tiempo que tarda el robot de realidad virtual en iterar a través del proyecto y los valores del informe.

  • Arrastre o escriba un comando stop fuera del bucle while. Tu proyecto debería verse así:
# Add project code in "main"
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) < -100:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()
  • Abra la ventana del patio de recreo  si aún no está abierta. Asegúrese de que se abra el mapa de cuadrícula de números Playground y ejecute el proyecto.
  • Mira la unidad VR Robot al número ‘5‘ en el patio de recreo del mapa de cuadrícula numérica.

Imagen de arriba hacia abajo del patio de recreo del Mapa de cuadrícula numérica. El robot VR se puede ver en la parte inferior del número 5.

  • En este proyecto, el robot VR conduce al número ‘5‘ en el patio de recreo del mapa de cuadrícula numérica. El bucle mientras se utiliza para que el robot VR continúe avanzando mientras el valor X sea menos que el valor X de la coordenada en la que se encuentra el número indicado.
  • Una vez que el valor X es mayor que -100, el proyecto pasa al siguiente comando fuera del bucle, que es un comando stop. Dado que el valor X del número ‘5’ es -100, el Robot VR dejará de funcionar una vez que el valor X sea mayor que -100.

Flujo del proyecto Python que se acaba de ejecutar. Una flecha indica que el robot se mueve al bucle while una vez que se completa el giro a la derecha de 90 grados. Una flecha cíclica está al lado del bucle while con el texto que dice 'x value less than negative 100 returns True, VR Robot drives forward.' Debajo de eso hay una flecha roja con texto que dice 'x valor mayor que -100, devuelve Falso. VR Robot deja de conducir.'

Para su información

Tenga en cuenta que el valor informado por el sensor de ubicación puede no ser exactamente -100 milímetros (mm). Al igual que el sensor de distancia, los operadores de comparación se utilizan debido al tiempo que tarda el robot de realidad virtual en iterar a través del proyecto y los valores del informe.

Panel de control en la ventana del patio de recreo ampliado para mostrar que el valor x informado del sensor de ubicación es negativo 90 milímetros.

En VEXcode VR Python, puede usar un operador de comparación mayor o igual que (>=) o menor o igual que (<=) en su proyecto para tener una precisión adicional en sus movimientos.

# Add project code in "main"
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) <= -100:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()

Dependiendo de la velocidad del robot VR y de qué tan rápido el proyecto itera a través del bucle, es posible que vea que el robot VR puede detenerse más cerca del valor umbral cuando se agrega o igual a (<= o >=) al operador.

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