Índice:

O LEGO Robot passa por um labirinto: 9 etapas
O LEGO Robot passa por um labirinto: 9 etapas
Anonim
Image
Image
Base do Robô
Base do Robô

Este é um robô simples e autônomo projetado para dirigir por um labirinto até a saída. É construído usando LEGO Mindstorms EV3. O EV3 Software é executado em um computador e gera um programa, que é então baixado para um microcontrolador chamado EV3 Brick. O método de programação é baseado em ícones e de alto nível. É muito fácil e versátil.

PEÇAS

  1. Conjunto LEGO Mindstorms EV3
  2. Sensor ultrassônico LEGO Mindstorms EV3. Não está incluído no conjunto EV3.
  3. Papelão ondulado para o labirinto. Duas caixas devem ser suficientes.
  4. Um pequeno pedaço de papelão fino para ajudar a estabilizar alguns cantos e paredes.
  5. Cole e prenda com fita adesiva para unir os pedaços de papelão.
  6. Um envelope de cartão vermelho para identificar a saída do labirinto.

FERRAMENTAS

  1. Faca para cortar papelão.
  2. Régua de aço para auxiliar no processo de corte.

MÉTODO DE SOLUÇÃO DE LABIRINTO

Existem vários métodos de navegar em um labirinto. Se você estiver interessado em estudá-los, eles são descritos muito bem no seguinte artigo da Wikipedia:

Eu escolhi a regra do seguidor de parede do lado esquerdo. A ideia é que o robô mantenha uma parede em seu lado esquerdo, tomando as seguintes decisões ao passar pelo labirinto:

  1. Se for possível virar à esquerda, faça isso.
  2. Caso contrário, siga em frente, se possível.
  3. Se não puder ir para a esquerda ou em linha reta, vire à direita, se possível.
  4. Se nenhuma das opções acima for possível, isso deve ser um beco sem saída. Inversão de marcha.

Um cuidado é que o método pode falhar se o labirinto tiver um loop. Dependendo da localização do loop, o robô pode continuar dando voltas e mais voltas. Uma possível solução para esse problema seria o robô alternar para a regra do seguidor de parede à direita se percebesse que estava em um loop. Não incluí esse refinamento em meu projeto.

PASSOS PARA CONSTRUIR O ROBÔ

Embora o LEGO Mindstorms EV3 seja muito versátil, ele não permite mais do que um de cada tipo de sensor conectado a um Brick. Dois ou mais Bricks podem ser encadeados, mas eu não queria comprar outro Brick, então usei os seguintes sensores (em vez de três sensores ultrassônicos): sensor infravermelho, sensor de cor e sensor ultrassônico. Funcionou bem. Os pares de fotos abaixo mostram como construir o robô. A primeira foto de cada par mostra as peças necessárias e a segunda foto mostra as mesmas peças conectadas entre si.

Etapa 1: Base do Robô

Base do Robô
Base do Robô

O primeiro passo é construir a base do robô, usando as peças mostradas. A base do robô é mostrada de cabeça para baixo. A pequena parte em forma de L na parte traseira do robô é um suporte para as costas. Ele desliza conforme o robô se move. Isso funciona bem. O kit EV3 não tem uma peça do tipo bola rolante.

Etapa 2: Parte superior da base

Topo da Base
Topo da Base
Topo da Base
Topo da Base
Topo da Base
Topo da Base

As próximas 3 etapas são para o topo da base do robô, o sensor de cores e os cabos, que são todos cabos de 10 polegadas (26 cm)

Etapa 3: Sensores infravermelhos e ultrassônicos

Sensores infravermelhos e ultrassônicos
Sensores infravermelhos e ultrassônicos
Sensores infravermelhos e ultrassônicos
Sensores infravermelhos e ultrassônicos

Em seguida, estão o sensor infravermelho (à esquerda do robô) e o sensor ultrassônico (à direita). Além disso, os 4 pinos para prender o Brick na parte superior.

Os sensores infravermelhos e ultrassônicos estão localizados verticalmente em vez da horizontal normal. Isso fornece uma melhor identificação dos cantos ou extremidades das paredes.

Etapa 4: cabos

Cabos
Cabos

Anexe o Brick e conecte os cabos da seguinte maneira:

  • Porta B: motor grande esquerdo.
  • Porta C: motor grande direito.
  • Porta 2: sensor ultrassônico.
  • Porta 3: sensor de cores.
  • Porta 4: sensor infravermelho.

Etapa 5: Etapa final na construção do robô: decoração

Etapa final na construção do robô: decoração
Etapa final na construção do robô: decoração
Etapa final na construção do robô: decoração
Etapa final na construção do robô: decoração
Etapa final na construção do robô: decoração
Etapa final na construção do robô: decoração

As asas e barbatanas são apenas para decoração.

Etapa 6: Pseudocódigo para o Programa

  1. Espere 3 segundos e diga “Vá”.
  2. Comece o robô movendo-se em frente.
  3. Se for possível virar à esquerda (ou seja, se o sensor infravermelho não detectar um objeto próximo), diga "Esquerda" e vá para a esquerda.
  4. Avance cerca de 15 cm (6 polegadas) para evitar uma curva falsa à esquerda. A razão é que, depois que o robô girou, o sensor veria o longo espaço de onde acabou de sair e o robô pensaria que deveria virar à esquerda, o que não é a coisa certa a fazer. Volte para a etapa 2.
  5. Se não for possível virar à esquerda, verifique o que o sensor de cores vê à frente do robô.
  6. Se não houver cor (ou seja, nenhum objeto), volte para a etapa 2.
  7. Se a cor for vermelha, esta é a saída. Pare o robô, faça uma fanfarra e pare o programa.
  8. Se a cor for marrom (ou seja, papelão marrom à frente), pare o robô.

    1. Se for possível virar à direita (ou seja, se o sensor ultrassônico não detectar um objeto nas proximidades), diga "Direita" e vá para a direita. Volte para a etapa 2.
    2. Se não for possível virar à direita, diga “Uh-oh”, recue cerca de 5 polegadas (12,5 cm) e vire-se. Volte para a etapa 2.

Etapa 7: Programa

Programa
Programa

LEGO Mindstorms EV3 possui um método de programação baseado em ícones muito conveniente. Os blocos são mostrados na parte inferior da tela do computador e podem ser arrastados e soltos na janela de programação para criar um programa. A captura de tela mostra o programa para este projeto. Os blocos são descritos na próxima etapa.

Não consegui descobrir como configurar o download do programa para vocês, então os Blocos são descritos na próxima etapa. Cada bloco possui opções e parâmetros. É muito fácil e versátil. Não deve demorar muito para você desenvolver o programa e / ou alterá-lo para atender às suas necessidades. Como sempre, é uma boa ideia salvar o programa periodicamente ao desenvolvê-lo.

O EV3 Brick pode ser conectado ao computador por um cabo USB, Wi-Fi ou Bluetooth. Quando está conectado e ligado, isso é indicado em uma pequena janela no canto inferior direito da janela EV3 no computador. O “EV3” no lado direito fica vermelho. Quando este display é definido como Port View, ele mostra em tempo real o que cada sensor está detectando. Isso é útil para experimentar.

Ao construir este programa, eu sugeriria trabalhar da esquerda para a direita e de cima para baixo, e aumentar o Loop e Switch Blocks antes de arrastar outros blocos para dentro. Tive problemas complicados ao tentar inserir blocos adicionais dentro antes de ampliar.

Etapa 8: Blocos do programa

  1. Começando no lado esquerdo do programa, o bloco inicial está presente automaticamente quando um programa está sendo desenvolvido.
  2. O próximo é um Bloco de Espera, para nos dar 3 segundos para colocar o robô na entrada do labirinto, após iniciar o programa.
  3. Um bloco de som faz o robô dizer "Vá".
  4. Um bloco de loop contém a maior parte do programa. A exibição deve ser ampliada 4 ou 5 vezes e este bloco de loop deve ser ampliado quase até a borda direita da tela de programação antes de você começar a inserir blocos. Posteriormente, pode ser reduzido.
  5. O primeiro bloco dentro do circuito é um bloco de direção de movimento com a direção definida para zero e a potência definida para 20. Isso faz com que os motores funcionem em linha reta em baixa velocidade. Uma velocidade mais rápida faria com que o robô se movesse muito longe quando ele continuasse em frente enquanto falava nas etapas subsequentes.
  6. Um bloco de comutação no modo de proximidade do sensor infravermelho verifica se há algum objeto mais distante do que um valor de 30. Isso é equivalente a aproximadamente 9 polegadas (23 cm) para papelão marrom. Se o valor for maior que 30, os blocos 7, 8 e 9 são executados, caso contrário, o programa vai para o bloco 10 abaixo.
  7. Um bloco de som faz o robô dizer "Esquerda".
  8. Um bloco de direção de movimento com a direção definida para -45, a potência definida para 20, as rotações definidas para 1,26 e o freio no final definido como verdadeiro. Isso faz com que o robô vire à esquerda.
  9. Um bloco de direção de movimento com a direção definida como zero, a potência definida como 20, as rotações definidas como 1,2 e o freio no final definido como verdadeiro. Isso faz com que o robô avance cerca de 15 cm (6 polegadas) para evitar uma curva falsa à esquerda.
  10. Um bloco de alternância no modo de medição de cor do sensor de cor verifica qual cor está à frente do robô. Se não houver cor (ou seja, nenhum objeto), o programa vai para o final do loop. Se a cor for vermelha, os blocos 11, 12 e 13 serão executados. Se a cor for marrom, o programa vai para o Bloco 14 abaixo.
  11. Um bloco de direção de movimento no modo desligado para parar os motores.
  12. Um bloco de som joga uma fanfarra.
  13. Um bloco de interrupção de loop sai do loop.
  14. Um bloco de direção de movimento no modo desligado para parar os motores.
  15. Um bloco de comutação no modo de comparação de polegadas de distância do sensor ultrassônico verifica se há algum objeto a mais de 20 cm (8 polegadas). Se tiver mais de 8 polegadas, os Blocos 16 e 17 são executados, caso contrário, o programa vai para o Bloco 18 abaixo.
  16. Um bloco de som faz o robô dizer "Certo".
  17. Um bloco de direção de movimento com a direção definida para -55, a potência definida para -20, as rotações definidas para 1,1 e o freio no final definido como verdadeiro. Isso faz com que o robô vire à direita.
  18. Um bloco de som faz o robô dizer "Uh-oh".
  19. Um bloco de movimento do tanque com a energia para a esquerda definida como -20, a energia para a direita definida como -20, as rotações como 1 e o freio no final definido como verdadeiro. Isso faz com que o robô recue cerca de 12,5 cm para abrir espaço para se virar.
  20. A Move Tank Block com Power Left definido como -20, Power Right definido como 20, Rotations definido como 1,14 e Brake at End definido como True. Isso faz o robô se virar.
  21. Na saída do Loop está um Bloco de Programa de Parada.

Etapa 9: CONSTRUA um LABIRINTO

CONSTRUA UM LABIRINTO
CONSTRUA UM LABIRINTO
CONSTRUA UM LABIRINTO
CONSTRUA UM LABIRINTO
CONSTRUA UM LABIRINTO
CONSTRUA UM LABIRINTO

Duas caixas de papelão ondulado devem ser suficientes para o labirinto. Eu fiz as paredes do labirinto com 5 polegadas (12,5 cm) de altura, mas 4 polegadas (10 cm) deve funcionar tão bem se você estiver com falta de papelão ondulado.

Primeiro, cortei em volta das paredes das caixas, a 25 cm do fundo. Em seguida, cortei as paredes a 5 centímetros do fundo. Isso fornece várias paredes de 5 polegadas. Além disso, cortei em volta do fundo das caixas, deixando cerca de 1 polegada (2,5 cm) presas às paredes para estabilidade.

As várias peças podem ser cortadas e coladas ou coladas onde for necessário para formar o labirinto. Deve haver um espaço de 12 polegadas (30 cm) entre as paredes em qualquer caminho com um beco sem saída. Essa distância é necessária para que o robô se vire.

Alguns dos cantos do labirinto podem precisar ser reforçados. Além disso, algumas paredes retas precisam ser impedidas de dobrar se incluírem um canto de papelão endireitado. Pequenos pedaços de papelão fino devem ser colados no fundo nesses locais, como mostrado.

A saída possui uma barreira vermelha composta por meio envelope de cartão comemorativo vermelho e uma base feita de 2 pedaços de papelão fino, conforme mostrado.

Um cuidado é que o labirinto não deve ser grande. Se as curvas do robô estão em um pequeno ângulo em relação ao apropriado, as discrepâncias se somam após algumas curvas. Por exemplo, se uma curva à esquerda estiver 3 graus fora, então, após 5 curvas à esquerda, o robô estará 15 graus fora. Um grande labirinto teria mais curvas e um caminho mais longo do que um pequeno, e o robô poderia correr contra as paredes. Tive que mexer várias vezes com as configurações de Rotações das curvas para conseguir uma direção bem-sucedida até mesmo no pequeno labirinto que fiz.

MELHORIAS FUTURAS

Um projeto de acompanhamento óbvio é tornar o robô capaz de determinar um caminho direto através do labirinto enquanto o navega e, em seguida, conduzir esse caminho direto (evitando becos sem saída) logo em seguida.

Isso é muito mais complicado do que o projeto atual. O robô deve lembrar o caminho que percorreu, remover becos sem saída, armazenar o novo caminho e seguir o novo caminho. Eu pretendo trabalhar neste projeto em um futuro próximo. Espero que seja possível realizar com LEGO Mindstorms EV3 usando Array Operations Blocks e alguns blocos relacionados à matemática.

OBSERVAÇÃO FINAL

Este foi um projeto divertido. Espero que você também ache interessante.

Recomendado: