Lição 2: Dirija para o número '5'
Nesta lição, o robô de RV dirigirá para o número ‘5‘ e voltará para o número ‘1‘ no Playground do Mapa de Grade Numérica!

Observe que o Robô VR estará viajando ao longo do eixo X com os valores de X aumentando para se mover para o número ‘5’ no Playground do Mapa de Grade Numérica.

O Robô VR irá conduzir até ao local do número ‘5‘ no Playground do Mapa da Grade de Números. No entanto, antes que o Robô de RV possa navegar para esse número, o Robô de RV deve ser informado onde está a localização desse número. Começando no centro do Playground, as coordenadas do número ‘5’ são (-100, -900).

- Para começar, o robô VR precisa estar voltado para o número ‘5’. Arraste ou digite um comando turn_for.
# Adicione o código do projeto em "main"
def main()
:drivetrain.turn_for (RIGHT, 90, DEGREES)- Arraste um ciclo while sob o comando turn_for . O seu projeto deve ter este aspeto:
# Adicione o código do projeto em "main"
def main()
:drivetrain.turn_for (RIGHT, 90, DEGREES)
while condition:
wait(5, MSEC)- Assim como a Unidade do Sensor de Distância, este projeto usará a condição da posição do Sensor de Localização com um operador de comparação para navegar no Playground do Mapa de Grade Numérica. Defina a condição para o ciclo while para o comando posição no eixo X inferior a -100 em milímetros (mm). O seu projeto deve ter este aspeto:
# Adicione o código do projeto em "main"
def main()
:drivetrain.turn_for (RIGHT, 90, DEGREES)
whilelocation.position (X, MM) < -100:
wait(5, MSEC)- Arraste ou digite o comando drive sem espera dentro do ciclo while. O seu projeto deve ter este aspeto:
# Adicione o código do projeto em "main"
def main()
:drivetrain.turn_for (RIGHT, 90, DEGREES)
whilelocation.position (X, MM) < -100:
drivetrain.drive(FORWARD)
wait(5, MSEC)- Observe que o operador menor que é usado em vez do operador maior que porque o robô VR está dirigindo para a direita a partir do lado esquerdo do playground. O Robô VR começa com um valor X de -900 milímetros (mm). À medida que o robô VR avança, os valores X aumentam e, portanto, o robô continuará avançando enquanto o valor X for inferior a -100.

Para sua informação
Você precisará escolher qual operador de comparação usar no seu projeto, dependendo da direção em que deseja que o Robô VR se desloque ao longo do eixo X ou Y. Quando o robô VR se estiver a mover para um valor superior, o operador inferior a (<) será utilizado com um ciclo while ; e quando o robô VR estiver a viajar para um valor inferior, o operador maior que (>) será utilizado com um ciclo while .
Isso se alinha com os movimentos para a esquerda e para a direita ao olhar para o Playground. Se o Robô VR estiver se movendo da esquerda para a direita ou de baixo para cima (valores maiores), o operador menor que é usado para dirigir enquanto a posição é menor que o valor alvo.
Se o Robô VR estiver se movendo da direita para a esquerda ou de cima para baixo (valores menores), o operador maior que é usado para dirigir enquanto a posição é maior que o valor alvo.
Usando os operadores de comparação, o Robô VR se deslocará enquanto o valor relatado pelo Sensor de Localização for maior que (>) ou menor que (<) o valor limite. Neste exemplo, o Robô VR navegará para 500 milímetros (mm) positivos no eixo X. O robô VR será acionado enquanto a posição no eixo X estiver entre 0 e 499 positivo. Quando o Sensor de Localização informa que a posição é 501 ou superior, o Robô VR irá parar de conduzir.
# Adicione o código do projeto em "main"
def main():
monitor_sensor(location.position
)drivetrain.turn_for (RIGHT, 90, DEGREES)
whilelocation.position (X, MM) < 500:
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()Observe que o valor relatado pelo Sensor de Localização não é exatamente 500 milímetros (mm). Como o Sensor de Distância, os operadores de comparação são usados devido ao tempo que leva para o Robô VR iterar os valores do projeto e do relatório.
- Arraste ou digite um comando stop fora do ciclo while. O seu projeto deve ter este aspeto:
# Adicione o código do projeto em "main"
def main()
:drivetrain.turn_for (RIGHT, 90, DEGREES)
whilelocation.position (X, MM) < -100
:drivetrain.drive (FORWARD)
wait(5, MSEC)
drivetrain.stop()- Abra a janela do playground se ainda não estiver aberta. Certifique-se de que o Playground do Mapa de Grade Numérica seja aberto e execute o projeto.
- Assista ao robô VR dirigir para o número ‘5’ no Playground Number Grid Map.

- Neste projeto, o robô VR dirige para o número ‘5’ no Number Grid Map Playground. O ciclo while é utilizado para que o robô VR continue a avançar enquanto o valor X for menos do que o valor X da coordenada em que se encontra o número indicado.
- Quando o valor X for superior a -100, o projeto passa para o comando seguinte fora do ciclo, que é um comando stop. Como o valor X do número ‘5’ é -100, o Robô VR parará de dirigir assim que o valor X for maior que -100.

Para sua informação
Observe que o valor relatado pelo Sensor de Localização pode não ser exatamente -100 milímetros (mm). Como o Sensor de Distância, os operadores de comparação são usados devido ao tempo que leva para o Robô VR iterar os valores do projeto e do relatório.
No VEXcode VR Python, você pode usar um operador de comparação maior ou igual a (>=) ou menor ou igual a (<=) no seu projeto para ter uma precisão adicional nos seus movimentos.
# Adicione o código do projeto em "main"
def main()
:drivetrain.turn_for (RIGHT, 90, DEGREES)
whilelocation.position (X, MM) <= -100
:drivetrain.drive (FORWARD)
wait(5, MSEC)
drivetrain.stop()Dependendo da velocidade do Robô VR e da rapidez com que o projeto itera através do loop, você pode ver que o Robô VR é capaz de parar mais perto do valor limite quando o ou igual a (<= ou >=) é adicionado ao operador.
Selecione o botão Seguinte para continuar com o resto desta lição.