Lição 3: Usando sensores e o eletroímã para captar um disco
Usando o sensor de olho para baixo com o eletroímã
Esta lição usará o feedback do sensor relatado para resolver o mesmo desafio da lição 2. O Robô VR irá pegar e mover o primeiro disco azul para a baliza azul.
- Inicie um novo projeto e selecione o Disk Mover Playground quando solicitado.

-
Nomeie o projeto como Unit8Lesson3.

-
Adicione quatro comentários ao projeto. Adicione comentários para cada uma das etapas necessárias para que o Robô VR dirija para o primeiro disco, pegue-o e retorne-o para a meta azul.
def main(): # 1. Dirija para o primeiro disco # 2. Pegue o primeiro disco # 3. Conduza para a meta # 4. Solte o disco na meta -
Arraste ou digite um ciclo while com uma condição not para o espaço de trabalho abaixo do primeiro comentário, para que o seu projeto fique assim:
def main(): #1. Dirija para o primeiro disco sem condição: aguarde(5, MS) # 2. Pegue o primeiro disco # 3. Conduza para a meta # 4. Solte o disco na meta -
O comando down_eye.near_object informa True quando o Down Eye Sensor no VR Robot detecta um disco colorido no Disk Mover Playground. Os discos estão no chão do Playground e não podem ser detectados pelo Front Eye Sensor, pelo que o Down Eye Sensor irá detectar os discos. Arraste ou digite o comando down_eye.near_object como a condição do ciclo while , para que a primeira secção do seu projeto fique assim:
def main(): #1. Dirija para o primeiro disco enquanto não estiver down_eye.near_object(): wait(5, MSEC) -
Os comandos dentro do ciclo e while serão executados quando o robô VR NÃO detetar um objeto. Para alcançar um dos discos, o Robô VR precisará avançar até que o disco seja detectado.

-
Arraste ou digite um comando drive dentro do ciclo do while , de modo a que a primeira secção de comentários do projeto fique assim:
#1. Dirija para o primeiro disco enquanto não estiverdown_eye.near_object (): drivetrain.drive(FORWARD) wait(5, MSEC) -
Quando um disco é detectado, o Robô VR precisará parar de dirigir para buscá-lo. Arraste ou digite um comando stop fora do ciclo while , de modo a que a primeira secção de comentários do projeto fique assim:
#1. Dirija para o primeiro disco enquanto não estiverdown_eye.near_object () : drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop() - Note que os comandos drive e wait estão indentados sob o cabeçalho do ciclo while , o que significa que os comandos estão dentro do ciclo . A linha cinza também pode ajudar a indicar quais comandos estão devidamente recuados e dentro de um loop. O comando stop está alinhado com o cabeçalho do ciclo, o que significa que o comando stop está fora do ciclo. Verifique se os comandos estão recuados corretamente ou se o projeto pode não ser executado conforme o esperado.
-
Agora, instrua o robô VR para pegar no disco com o eletroíman arrastando ou digitando um comando energize após o segundo comentário, para que a segunda secção do projeto fique assim:
# 2. Pegue o primeiro disco magnet.energize(BOOST) - Abra a janela do playground se ainda não estiver aberta. Certifique-se de que o Disk Mover Playground seja aberto e execute o projeto.
-
O robô VR avança até que o primeiro disco azul seja detectado pelo sensor de olho para baixo, para de dirigir e energiza o eletroímã para pegar o disco.

Fluxo do Projeto para Recolher o Primeiro Disco
Note como o ciclo while com uma condição e não utiliza o feedback do sensor para apanhar o primeiro disco com sucesso:
- O robô VR avança enquanto o sensor Down Eye não detecta um objeto.
- Assim que o sensor de olho para baixo no robô VR deteta um objeto, o projeto passa para o comando seguinte fora do ciclo while e deixa de conduzir.
- O projeto continua, então o Robô VR energiza o Eletroímã para pegar o disco.

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