Skip to main content

Lição 3: Usando Declarações If

Navegando no labirinto do disco utilizando instruções If 

No Desafio do Labirinto de Disco, o Robô de RV está verificando a condição do Sensor do Olho Frontal para ver qual cor está sendo relatada. Cada uma das cores se alinha a um comportamento diferente que o Robô VR deve executar.

Para sua informação

A instrução if apenas aceita condições booleanas. Usando os padrões observados ao resolver o Labirinto de Discos na Lição 2, um projeto pode ser criado onde o Robô de RV toma uma decisão se a condição relata como Verdadeiro ou Falso.

se condição: 
	aprovado

A instrução if será executada uma vez num projeto. Neste exemplo, o Sensor de Olho Frontal informará Verdadeiro se um objeto verde for detectado e executará o comando dentro da instrução if - vire à direita por 90 graus. Se um objeto verde não for detectado, o projeto passará para o próximo comando.

def main():
    if front_eye.detect(GREEN):
        drivetrain.turn_for(RIGHT, 90, DEGREES)
    drivetrain.stop()
  • Inicie um novo projeto e selecione o Disk Maze Playground quando solicitado. Bloco de seleção Disk Maze Playground no VEXcode VR.
  • Nomeie-o Unit7Lesson3.Barra de ferramentas no VEXcode VR com a caixa de nome do projeto chamada. O nome do projeto diz Unidade 7 Lição 3.

     

  • Adicione comentários para descrever a intenção dos comportamentos do Robô VR durante cada seção seguinte do projeto. 
def main():
    # Se o olho frontal detectar verde, vire à direita

    # Se o olho frontal detectar azul, vire à esquerda
  • Arraste ou digite a instrução if abaixo do primeiro comentário.
def main():
    # Se o olho frontal detectar verde, vire à direita
    se a condição: 
    	passar

    # Se o olho frontal detectar azul, vire à esquerda
  • Defina a condição da instrução if para o comando front_eye.detect e defina o parâmetro para 'GREEN.'
def main():
    # Se o olho frontal detectar verde, vire à direita
	se front_eye.detect(VERDE): 
    	passe
    	
    # Se o olho frontal detectar azul, vire à esquerda
  • Arraste ou digite um comando turn_for dentro da instrução if , para substituir o 'pass'. Defina os parâmetros para virar à direita 90 graus. Agora, se o Sensor do Olho Frontal detectar 'VERDE', o Robô VR girará 90 graus para a direita.
def main():
    # Se o olho frontal detectar verde, vire à direita
	se front_eye.detect(VERDE): 
    	drivetrain.turn_for(DIREITA, 90, GRAUS)
    	
    # Se o olho frontal detectar azul, vire à esquerda
  • Seguiremos os mesmos passos para adicionar instruções if adicionais para as três cores no Disk Maze (verde, azul e vermelho). Cada cor está associada a um comportamento diferente. Os comandos dentro das instruções if terão de corresponder ao comportamento pretendido. Adicione os seguintes comandos ao projeto abaixo do segundo comentário, para que, se o Sensor de Olho Frontal detectar a cor 'AZUL', o Robô VR vire à esquerda 90 graus.
	# Se o olho frontal detectar azul, vire à esquerda
	sefront_eye.detect (AZUL) 
    	:     	drivetrain.turn_for (ESQUERDA, 90, GRAUS)
  • Quando o Robô VR chegar ao final do labirinto, o Sensor do Olho Frontal detectará a cor ‘VERMELHO’.

    Uma visão de perto do Robô VR chegando ao disco vermelho no final do Labirinto de Discos e parou na frente dele.
  • Para parar o robô VR, é necessário adicionar outra instrução if com instruções sobre o que fazer se o sensor ocular frontal detetar 'VERMELHO'. Adicione o seguinte comentário e comandos ao projeto para que o Robô VR pare de dirigir se detectar 'VERMELHO'. 
	# Se o olho frontal detectar vermelho, pare
	se front_eye.detect(VERMELHO): 
    	drivetrain.stop()

Se nenhuma das cores for detectada

O Robô de RV também pode tomar uma decisão se não vir uma cor usando o valor "nenhum". Por exemplo, no ponto de partida do Labirinto de Discos, o Sensor do Olho Frontal não detecta nenhuma cor.

A visualização do playground de RV com o painel aberto e uma caixa vermelha destacando os valores de detecção do Olho Frontal do robô. O valor 'Object' atual é false e o valor 'Color' atual é none.

Como o Sensor de Olho Frontal não detecta uma cor no início do Labirinto de Discos, o Robô VR precisará avançar até detectar o disco verde. Pode ser adicionada outra instrução if  para instruir o robô VR sobre o que fazer quando não é detetada qualquer cor. 

  • Adicione o seguinte comentário e comandos ao projeto, para que, se o Sensor de Olho Frontal não detectar nenhuma cor, o Robô VR avance.
	# Se o olho frontal não detectar nenhum, então dirija para frente
	se front_eye.detect (NONE) 
    	:     	drivetrain.drive (FORWARD)
  • O Robô VR agora tem instruções para cada cor detectada pelo Sensor do Olho Frontal.
    • Se o Sensor de Olho Frontal detectar 'VERDE' – Vire à direita 90 graus
    • Se o sensor ocular frontal detectar ‘AZUL' –  Vire à esquerda 90 graus
    • Se o sensor ocular frontal detetar "VERMELHO" – Pare de conduzir
    • Se o Sensor de Olho Frontal detectar ‘NENHUM’ – Dirija para frente
  • Abra a janela do playground se ainda não estiver aberta. Certifique-se de que o Disk Maze Playground abre e execute o projeto. Todo o projeto deve ter esta aparência: 
def main():
    # Se o olho frontal detectar verde, vire à direita
    se front_eye.detect (VERDE):
        drivetrain.turn_for (DIREITA, 90, GRAUS)

    # Se o olho frontal detectar azul, vire à esquerda
    se front_eye.detect (AZUL):
        drivetrain.turn_for (ESQUERDA, 90, GRAUS)

    # Se o olho frontal detectar vermelho, pare
    se front_eye.detect (VERMELHO): drivetrain.stop ( 
        )

    # Se o olho frontal não detectar nenhum, dirija para frente
    se front_eye.detect (NENHUM): drivetrain.drive 
        (PARA FRENTE)
  • O robô de RV se comporta como você pretendia? Por que sim ou por que não? Na próxima página da Lição, aprenderemos mais sobre este projeto.

Selecione o botão Seguinte para continuar com o resto desta lição.