Skip to main content

Lição 3: Usando o feedback do sensor relatado para colocar os discos na meta

Na Lição 2, o Robô VR dirigiu em sentido inverso de volta ao ponto de partida para soltar o disco. Isso exigia que o usuário calculasse a distância exata para o Robô VR percorrer. Isso nem sempre é possível. Em vez disso, o Robô VR pode usar valores de sensor relatados para pegar e soltar discos com precisão consistente. 

A lição 3 usa o feedback do sensor relatado para determinar onde o robô VR deve parar de dirigir ao retornar à meta. Ao usar o <Eye Sensor near object> bloco anteriormente nesta lição, não há necessidade de saber a distância da meta até cada disco.

Robô VR no Playground Disk Mover com o primeiro Disco azul acoplado ao Eletroímã.

O Robô VR voltará para a meta azul usando dados do Sensor de Distância para determinar onde parar de dirigir. Uma vez que o Robô de RV tenha parado dentro da meta azul, o Robô de RV soltará o disco azul.

  • Continuar a trabalhar no projeto Unit8Lesson3.
  • O Sensor de Distância mede a distância da frente do Robô VR até o objeto mais próximo. Por esse motivo, o robô VR precisará girar 180 graus antes de voltar para a meta azul.
  • O Robô VR usará o Sensor de Distância com a parede traseira do Playground para determinar onde soltar o disco. Por esse motivo, o robô VR precisará girar 180 graus antes de voltar para a meta azul.
  • O bloco [Turn to heading] pode ser usado para garantir que o robô VR gire para o cabeçalho correto.

    VEXcode VR Vire para o bloco de cabeçalho a partir da Caixa de Ferramentas. O bloco diz "Gire para 90 graus".

Usando Blocos de Interruptor 

Este é o bloco Switch [virar para o cabeçalho]. Você pode modificar o grau da curva alterando o valor numérico entre parênteses. Lembre-se de que o número deve ser escrito antes da unidade de medida (GRAUS), separados por uma vírgula. 

VEXcode VR Vire para o bloco Switch de cabeçalho, com o comando Python que lê o ponto do trem de força turn_to_heading (90, GRAUS).

Para sua informação

O bloco [Turn to heading] transforma o robô VR em um cabeçalho específico usando o sensor de giroscópio. A direção que o Robô VR irá girar (esquerda ou direita) é determinada com base no rumo atual do sensor Gyro. O bloco [Turn to heading] é usado para direcionar o robô VR para um cabeçalho específico, independentemente da posição do robô VR. À medida que você pega ou solta um disco, o Robô VR pode ficar fora do curso. Usar o bloco [Turn to heading] garante que o Robô VR gire para a posição absoluta em vez de uma posição em relação ao cabeçalho anterior.

Um diagrama dos locais de aproamento em graus do Robô VR. Há um círculo com uma vista de cima para baixo do robô VR no centro, com a frente do robô voltada para cima em direção ao rumo de 0 grau. No sentido horário, cada rumo subsequente de 90 graus é marcado como 90 graus, 180 graus e 270 graus.
  • Adicione um bloco [Turn to heading] abaixo do terceiro comentário.

    O mesmo projeto VEXcode VR da página anterior, com um bloco de cabeçalho adicionado abaixo do terceiro comentário. O projeto agora lê When Started, comment Drive to the first blue disk, with a Repeat until down eye is near object, drive forward, then stop driving. Em seguida, há um comentário para pegar o primeiro disco azul com um eletroímã de energização para impulsionar o bloco. O terceiro comentário lê drive to the blue goal e tem uma curva para o bloco de 90 graus em seguida.
  • Defina o bloco [Turn to heading] para 180 graus.

    O mesmo projeto VEXcode VR com o parâmetro do bloco Turn to heading alterado para 180 graus. Agora, na terceira secção de comentários do projeto lê-se Drive to the blue goal, Turn to heading 180 degrees.
  • Agora que o Robô VR está orientado para a posição inicial, o Robô VR precisará voltar para a meta azul. Adicione um bloco [Repeat until] abaixo do bloco [Turn to heading].

    O mesmo projeto VEXcode VR com um bloco Repeat until adicionado após o bloco Turn to heading. O parâmetro do bloco Repetir até que esteja vazio.
  • Para voltar à meta azul, o Robô VR usará dados do Sensor de Distância para determinar quando o Robô VR está dentro da meta azul. Conforme discutido na lição anterior, cada quadrado de grade no Playground Disk Mover mede 200 milímetros (mm) por 200 milímetros (mm).

    Uma vista aproximada de cima para baixo do canto inferior esquerdo do Playground Disk Mover com as dimensões de um quadrado de grade no Playground mostrado como 200 mm de altura por 200 mm de largura.
  • Usando essas medidas, o centro da meta azul pode ser determinado como estando a aproximadamente 200 milímetros (mm) da parede do Playground.

    Uma vista de perto, de cima para baixo, da baliza azul no canto inferior esquerdo do Disk Mover Playground, com a dimensão aproximada da parede ao centro da baliza rotulada como 200 mm.
  • O Robô VR deve parar de dirigir quando o Sensor de Distância informar que o Robô VR está a menos de 200 milímetros (mm) da parede do Playground. Adicione os seguintes blocos ao bloco [Repeat until].

    O mesmo projeto VEXcode VR com um bloco menor que o operador com um ninho Distância frontal em mm no parâmetro do bloco Repetir até. Agora, na terceira seção de comentários do projeto lê-se Drive to the blue goal; turn to heading 180 degrees; Repeat until Front Distance in mm is less than 50.
  • Altere o parâmetro no <Less than> bloco para 200.

    O mesmo projeto, com o parâmetro do bloco menor que alterado para 200. Agora, o bloco Repetir até diz 'Repetir até que a Distância Frontal em mm seja inferior a 200'.
  • Adicione um bloco [Drive] a este bloco [Repeat until]. Isso instruirá o Robô VR a avançar até que o Sensor de Distância relate uma distância inferior a 200 milímetros (mm).

    O mesmo projeto com um bloco Drive adicione dentro do C do bloco Repeat until. A terceira seção de comentários do projeto agora diz Drive to the blue goal; Turn to heading 180 degrees, Repeat until Front distance in mm is less than 200, drive forward.
  • Assim que o Robô VR atingir a meta azul (a 200 mm da parede), o Robô VR precisará parar de dirigir. Adicione um bloco [Stop driving] abaixo do bloco [Repeat until].

    O mesmo projeto com um bloco Stop driving adicionado após o bloco Repeat until. A terceira seção de comentários agora diz Drive to the blue goal; Repeat until front distance in mm is less than 200, Drive forward; then stop driving.
  • Agora que o robô VR está parado na meta azul, ele pode soltar o disco. Adicione um bloco [Energize Electromagnet] abaixo do quarto comentário e defina o bloco para ‘drop’.

    O mesmo projeto com um bloco Energize Electromagnet, com o parâmetro definido para cair, adicionado após o quarto comentário. A quarta seção de comentários agora diz Solte o disco azul na meta azul, Energize o ímã para soltar.
  • O robô VR terá de conduzir em marcha-atrás a uma curta distância para evitar derrubar ou colidir com quaisquer discos. Colidir com um disco pode potencialmente tirar o Robô VR do curso. Adicione os blocos a seguir para instruir o robô VR a dirigir em marcha à ré por 100 milímetros (mm) e voltar para um rumo de 0 graus.

    O mesmo projeto com um bloco Drive for e um bloco Turn to heading adicionado à parte inferior da pilha. Agora, o quarto comentário diz Solte o disco azul na meta azul; Energize o ímã para soltar; Dirija para trás por 100 mm, vire para 0 graus.
  • Abra o Playground do Disk Mover se ainda não estiver aberto e execute o projeto.
  • O robô VR avança, pega o primeiro disco e, em seguida, vira para um rumo de 180 graus para enfrentar a meta azul. O Robô VR então usa os valores do Sensor de Distância para determinar quando parar de dirigir e soltar o disco azul.

    Uma vista lateral de perto do Playground Disk Mover com o Disco Azul colocado na baliza azul e o Robô VR voltado para os discos restantes no Playground, na borda da baliza azul.
  • Observe como o segundo bloco [Repetir até] funciona nesta parte do projeto.
    • Quando o Sensor de Distância no Robô VR detecta que a parede do Playground está a menos de 200 milímetros (mm) de distância, o projeto passará para o próximo bloco na pilha abaixo do bloco [Repetir até].
    • Neste projeto, isso significou que o robô VR para de conduzir e deixa cair o eletroímã na baliza azul.

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