Skip to main content

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. O bloco de seleção Disk Mover Playground lê Disk Mover na parte inferior.
  • Nomeie o projeto como Unit8Lesson3.Barra de ferramentas VEXcode VR com a caixa de nome do projeto realçada. O nome do projeto diz Unidade 8 Lição 3.

     

  • 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.

    Vista traseira do Playground do Disk Mover, mostrando o Robô VR no local de início, e os três discos azuis em uma fileira esticavam o comprimento do Playground na frente do robô.
  • 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.

    Uma vista lateral do Robô VR no Playground no primeiro local de disco azul, com o Disco conectado ao Eletroímã.

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.
Um diagrama de fluxo de projeto do projeto acima, ilustrando o fluxo com o loop while. As duas primeiras seções do projeto são mostradas à esquerda e, à direita, a primeira seção tem uma seta cíclica vermelha ilustrando que, embora o olho para baixo não detecte um objeto, o robô avançará, pois a condição é relatada como falsa. Em seguida, uma seta verde para baixo ao lado do comando Stop indica que, quando o olho para baixo detecta um objeto, o projeto sai do loop e o robô para. Em seguida, uma segunda seta verde para baixo se alinha com a segunda seção do projeto, indicando que o eletroímã será então energizado.

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