Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROGRAMANDO UM ROBÔ SEGUIDOR DE LINHA UTILIZANDO LEGO MINDSTORMS EV3 Centro de Referência em Educação a Distância INSTITUTO FEDERAL Mato Grosso do Sul Cread João Couto Leandro de Jesus Marcia Ferreira Cristaldo Instituto Federal de Mato Grosso do Sul - Campus Aquidauana Autores Estudante Egresso do Curso Técnico Integrado em Informática João Couto joao.couto@estudante.ifms.edu.br Professora Dra. Marcia Ferreira Cristaldo marcia.cristaldo@ifms.edu.br Professor Dr. Leandro de Jesus leandro.jesus@ifms.edu.br Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 3 Centro de Referência em Tecnologias Educacionais e Educação a Distância - Cread Indicação de Ícones Atenção! DicaFique de Olho Guarde Bem Isto Link Leitura Complementar Vídeo/Áudio Para Refletir... Download Você Sabia? Saiba Mais Subseções de Estudo Revisando... GlossárioObjetivos de Aprendizagem Exercícios de Fixação Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso do Sul - IFMS 4 Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 5 Centro de Referência em Tecnologias Educacionais e Educação a Distância - Cread Sumário Seção 1 - Introdução ................................................................................. 7 1.1 Instalação do Software ........................................................................................... 7 Seção 2 - Primeiros Passos ....................................................................... 11 2.1 Interface do Software .............................................................................................. 11 2.2 Blocos: Ação ............................................................................................................ 12 2.3 Blocos: Controle de Fluxo ...................................................................................... 15 2.4 Blocos: Sensor ......................................................................................................... 17 2.5 Blocos: Operação de Dados .................................................................................. 18 Seção 3 - Seguindo Linha .......................................................................... 19 3.1 Definindo Uma Estratégia ..................................................................................... 19 3.2 Implementando a Estratégia ................................................................................. 20 3.3 Tratando Erros ........................................................................................................ 28 Seção 4 - Detectando Obstáculos ............................................................ 31 Seção 5 - Intersecções Marcadas em Verde ........................................... 33 5.1 Para a Esquerda ...................................................................................................... 33 5.2 Para a Direita ........................................................................................................... 36 5.3 Meia Volta ................................................................................................................ 37 Referências ................................................................................................ 39 Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso do Sul - IFMS 6 Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 Download O programa completo do Seguidor de Linha que será estudado no curso: https://www.mediafire.com/file/b3ar92ihq213wns/Projeto.ev3/file Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 7 Centro de Referência em Tecnologias Educacionais e Educação a Distância - Cread Seção 1 - Introdução A programação de robôs seguidores de linha utilizando o kit edu- cacional LEGO Mindstorms EV3 com foco na Olimpíada Brasileira de Robótica (OBR) pode ser feita de diversas maneiras. Nesta apostila, abordaremos a utilização do software baseado em blocos que acompa- nha o kit da Lego para desenvolver um algoritmo que seja capaz de fa- zer um robô seguir linha, desviar de obstáculos e detectar as marcações em verde presentes na etapa prática da OBR. 1.1 Instalação do Software Acesse a página oficial de download do LEGO Mindstorms EV3, disponível em https://education.lego.com/en-us/downloads/retiredpro- ducts/mindstorms-ev3-lab/software, e clique em “Download”. Após o download do arquivo, execute-o e siga as instruções do instalador. Figura 1. Página de download EV3 Lab Software. https://education.lego.com/en-us/downloads/retiredproducts/mindstorms-ev3-lab/software https://education.lego.com/en-us/downloads/retiredproducts/mindstorms-ev3-lab/software Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso do Sul - IFMS 8 Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 Figura 2. Instalação Mindstorms EV3. No passo 5, você deve escolher entre a versão para estudantes ou para professores do software. Você conseguirá reproduzir todos os exemplos dessa apostila em ambas versões. Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 9 Centro de Referência em Tecnologias Educacionais e Educação a Distância - Cread Figura 3. Instalação Mindstorms EV3. Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso do Sul - IFMS 10 Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 Figura 4. Finalização da instalação. Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 11 Centro de Referência em Tecnologias Educacionais e Educação a Distância - Cread Seção 2 - Primeiros Passos Nesta seção, percorreremos as principais funcionalidades do sof- tware, aprendendo tudo que é necessário para montar um seguidor de linha. Vamos lá! 2.1 Interface do Software A imagem a seguir mostra a página inicial do programa, onde estão localizados atalhos para as funcionalidades do software. Vamos criar um primeiro projeto, para isso, clique no botão “+” ou em “New pro- ject” (veja na imagem). Figura 5. Página inicial Mindstorms EV3. Com um novo projeto criado, já podemos começar a criar nossos primeiros programas. Tenha em mente que um projeto abriga vários programas, os quais podem ser “chamados” dentro de outros progra- mas desse mesmo projeto. Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso do Sul - IFMS 12 Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 Figura 6. Projeto em branco. Descrição das seções do programa: 1. Aba de programas. Escolha um para trabalhar; 2. Área de trabalho. Posicione os blocos logo após o botão de play para criar a sua lógica. 3. Blocos. Eles ditam as ações do robô; 4. Conexão e portas. Aqui você consegue fazer a conexão com o brick e ver o status dos sensores e motores; 5. Execução. Utilize o primeiro botão para carregar o seu programa para o brick, o segundo para carregar e executar. 2.2 Blocos: Ação Figura 7. Seção inferior - Ação. Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 13 Centro de Referência em Tecnologias Educacionais e Educação a Distância - Cread Esses blocos são responsáveis por controlar atuadores como moto- res médios e grandes, bem como as luzes, o display e os sons emitidos pelo brick. Da esquerda para a direita, temos: • Motor médio; • Motor grande; • Mover direção; • Mover tanque; • Display; • Som; • Luz do brick; Figura 8. Bloco de motor médio. Se arrastarmos um desses blocos para a frente do botão de play na área de trabalho, poderemos ver suas opções. No caso, o bloco de mo- tor médio foi escolhido. Veja na Figura 8: Em 1, temos a possibilidade de selecionar a forma que queremos trabalhar com esse motor, seja em rotações, segundos, angulação etc. Em 2, escolhemos a quantidade de energia que que- remos fornecer para esse motor, podendo variar de 1 até 100. Em 3, definimos a quantidade de rotações ou otempo em segundos para o motor realizar a ação (este campo se modifica de acordo com a seleção em 1). Em 4, escolhemos se o motor irá travar o movimento ou não ao finalizar a execução do bloco. Por fim, em 5, escolhemos em qual porta está conectado o motor. Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso do Sul - IFMS 14 Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 Figura 9. Opções de funcionamento do bloco de motor médio. Na Figura 9, temos as opções possíveis para a execução do bloco. Você pode escolher entre fazer com que o motor desligue (1), ligue por tempo indeterminado (2), ligue durante alguns segundos (3), ligue até que atinja determinada angulação (4), ou ligue por rotações (5). Antes de prosseguirmos, vamos dar uma olhada mais a fundo nos blocos: mover direção e mover tanque. Figura 10. Blocos de controle de direção e tanque. Eles trabalham em conjunto de dois motores, partindo da ideia de que você quer controlar ambos simultaneamente. Na esquerda, está o bloco mover direção e o mover tanque está na direita. Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 15 Centro de Referência em Tecnologias Educacionais e Educação a Distância - Cread Em 1, escolhemos quais motores queremos controlar (atente-se para o posicionamento real deles, coloque o motor da esquerda como a primeira letra e o motor da direita como a segunda). Em 2, defi- nimos qual a direção que queremos que o robô se mova. Em 3 e 4, respectivamente, escolhemos a energia dos motores esquerdo e direito. 2.3 Blocos: Controle de Fluxo Eles são os responsáveis por ditar a forma com que o nosso progra- ma é executado. Figura 11. Seção inferior - Controle de Fluxo. Na Figura 11, da esquerda para a direita: • Play: Marca o início de todos os programas que desenvolvemos; • Esperar: Pausa a execução do código durante algum tempo; • Ciclo: Repete tudo que está no seu interior sob alguma condição; • Comutação: Faz uma verificação e então executa algo com base nela; • Interromper ciclo: Interrompe um ciclo; Figura 12. Bloco de Ciclo. Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso do Sul - IFMS 16 Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 Na Figura 13, temos o bloco de comutação. Definimos, em 1, o que queremos verificar, seja o estado de um sensor, motor etc. Em 2, definimos o valor para verificação. Caso ele seja igual ao estado do sensor, por exemplo, os blocos contidos em 5 serão executados, caso o estado seja diferente do valor definido, os blocos contidos em 6 serão executados. Ainda devemos definir a porta na qual este sensor/ motor está conectado, por meio do campo indicado em 4. Podemos, ainda, alterar a visualização desse bloco clicando no botão 7 (veja a Figura 14). Vamos arrastar o bloco de ciclo para o nosso programa. Nele, deve- mos definir a condição para sua execução (1). No exemplo da Figura 12, o ciclo estará ativo infinitamente, mas poderíamos definir sua exe- cução para um intervalo de tempo, por exemplo. Figura 13. Bloco de Comutação. Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 17 Centro de Referência em Tecnologias Educacionais e Educação a Distância - Cread Figura 14. Bloco de Comutação Condensado. Nesse caso, o escopo para as condições de verdadeiro e falso podem ser acessados pelos botões indicados em 1 e 2, respectivamente. 2.4 Blocos: Sensor Nesta seção, encontramos os blocos responsáveis pela leitura e controle dos sensores, veja Figura 15. Na versão do Mindstorms para professores, existem alguns blocos de sensores a mais, no entanto, utilizaremos apenas os disponíveis na versão de estudantes para os exemplos desta apostila. Figura 15. Seção inferior - Sensores. Da esquerda para a direita: • Botões do brick. • Sensor de cor. • Giroscópio. • Infravermelho. • Rotação do motor. • Temperatura. • Timer. • Sensor de toque. • Ultrassônico. • Medidor de energia. • Sensor de som NXT. Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso do Sul - IFMS 18 Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 2.5 Blocos: Operação de Dados Os blocos desta seção permitem a criação e manipulação de dados dentro de um projeto, veja a Figura 16. Figura 16. Seção inferior - Operação de dados. Da esquerda para a direita: • Variável: Armazena um valor, seja um número texto etc.; • Constante: Armazena um valor da mesma forma que a variável, porém, este só pode ser lido e não alterado; • Operações com Arrays: Um array é um conjunto de variáveis, o qual pode ser definido através do bloco de variável; • Operações lógicas: Permite o uso de operadores booleanos AND, OR, NOT; • Operações matemáticas: Permite a execução de operações aritmé- ticas das variáveis; • Arredondar: Arredonda um valor; • Comparar: Se um valor é maior, menor ou igual a outro; • Intervalo: Verifica se um valor está dentro ou fora de um intervalo; • Texto: Realiza operações de texto (união); • Aleatório: Sorteia um valor. Ainda existem mais duas seções na aba inferior do software: Avan- çado e Meus Blocos. Não iremos utilizar os blocos da seção avançada, no entanto, a seção Meus Blocos abrigará os blocos personalizados que iremos construir. Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 19 Centro de Referência em Tecnologias Educacionais e Educação a Distância - Cread Seção 3 - Seguindo Linha Chegou a hora de construirmos o nosso primeiro algoritmo de seguimento de linha, e, para isso, utilizaremos (além do Brick): dois sensores de cor RGB e dois motores grandes. 3.1 Definindo Uma Estratégia Antes de qualquer coisa, vamos definir uma disposição base para o nosso robô. Ela será a seguinte: Figura 17. Sensores e motores do robô. Note que A, B, 1 e 2 são as portas em que os componentes devem ser ligados no Brick, veja Figura 17 acima. Com isso em mente, já podemos começar a elencar as dificuldades que o robô encontrará na pista. Para isso, no Quadro 1, seguem as regras da Olimpíada Brasilei- ra de Robótica (OBR). Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso do Sul - IFMS 20 Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 Caso Leitura Ação 1 Sensor 1: Branco Sensor 2: Branco Seguir em frente 2 Sensor 1: Preto Sensor 2: Preto Seguir em frente 3 Sensor 1: Branco Sensor 2: Preto Virar para direita 4 Sensor 1: Preto Sensor 2: Branco Virar para esquerda Quadro 1. Regras da OBR. Quando os sensores detectarem branco, o robô deve estar com a linha centralizada entre eles ou deve estar passando por uma falha na linha, logo deve andar para frente (caso 1). Quando os sensores detec- tarem preto, ele também deve seguir em frente, pois estará passando por uma intersecção de linhas. Já quando apenas o sensor da direita detectar a cor preta, o robô deverá rotacionar para direita, tendo em vista que essa detecção indica que a linha preta está debaixo do sensor da direita. O mesmo ocorre para o sensor da esquerda. 3.2 Implementando a Estratégia Agora, implementaremos o que elaboramos no passo anterior. Para isso, arraste uma comutação para frente do bloco de Play, veja Figura 18. Figura 18. Comutação. Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 21 Centro de Referência em Tecnologias Educacionais e Educação a Distância - Cread Em seguida, altere a condição para Sensor de Cor > Medir > Cor (Figura 19). Figura 19. Configuração da Comutação. Altere a porta de leitura para 1 (Figura 20), pois verificaremos pri- meiro o sensor de cor da esquerda. Faça a alteração, também, das cores de leitura para preto e branco. Dessa forma, determinado bloco de código deverá ser executado apenas na detecção de preto ou branco. Figura 20. Comutação em Cores. Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso do Sul - IFMS 22 Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 Agora, precisamosverificar a leitura do sensor da direita. Para isso, duplique duas vezes o bloco de comutação que configuramos ante- riormente e altere as portas para 2, veja a Figura 21. Depois, coloque -os dentro do escopo da comutação principal, cada um em uma seção. Figura 21. Aninhamento de Comutações. Devemos entender o que está acontecendo neste ponto do proje- to. Primeiro, uma comutação verifica a cor que está sendo lida pelo sensor da esquerda. Depois, ocorre a verificação do sensor da direita. Com isso, já conseguimos detectar os casos de nossa estratégia (veja na Figura 21), só faltando implementar as ações do robô. Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 23 Centro de Referência em Tecnologias Educacionais e Educação a Distância - Cread Figura 22. Bloco mover direção. Para uma melhor visualização, clique no botão de abas da comuta- ção principal. Veja a Figura 22. Depois, para fazer o robô seguir em frente, arraste um bloco “Mo- ver direção” para dentro do caso onde a leitura dos sensores é: preto no sensor da esquerda e preto no sensor da direita. Não se esqueça de trocar as portas para A e B, definir a potência para 30 e alternar o modo do bloco para “manter ligado” (Figura 22). Vamos escolher o modo “manter ligado” para todos os blocos de ação que adicionarmos nas comutações, pois não sabemos por quanto tem- po o robô executa cada caso. Veja a Figura 23 e adicione, também, um bloco “mover direção” para o caso de leitura: branco no sensor da esquerda, branco no sen- sor da direita. Assim, já conseguimos cobrir os casos em que o robô seguirá em frente. Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso do Sul - IFMS 24 Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 Figura 23. Bloco mover direção. Na Figura 24 vamos adicionar um bloco “mover tanque” para den- tro do seguinte caso de leitura dos sensores: preto no sensor da esquer- da, branco no sensor da direita. Nesse caso, o robô deve rotacionar para esquerda, tendo em vista que a leitura do sensor 1 indica uma curva para esquerda. Figura 24. Rotação para a esquerda. Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 25 Centro de Referência em Tecnologias Educacionais e Educação a Distância - Cread Mude as portas para A e B, altere a potência do motor esquerdo para-30 e a do motor direito para 30 (veja a Figura 25). Dessa forma, o robô rotacionará em seu próprio eixo. Não se esqueça de marcar o bloco com a opção “manter ligado”. Figura 25. Rotação para a direita. Arraste outro bloco “mover tanque” para dentro do caso: bran- co no sensor da esquerda, preto no sensor da direita. Veja na Figura 26. Quando isso acontecer, o robô deve rotacionar para direita. Logo, configure o bloco “mover tanque” da mesma maneira feita para o caso anterior, mas mude a potência do motor esquerdo para 30 e a do mo- tor direito para -30. Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso do Sul - IFMS 26 Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 Figura 26. Resultado. Feito isso, podemos ter uma visão geral do algoritmo de seguimen- to de linha do robô. Agora na Figura 27 vamos condensar todas essas comutações em um único bloco. Para isso, selecione todos os blocos que estamos tra- balhando e clique no menu Tools/Ferramentas > My Block Builder/ Meu Construtor de Bloco. Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 27 Centro de Referência em Tecnologias Educacionais e Educação a Distância - Cread Figura 27. Criar um bloco personalizado. Na caixa de diálogo que se abrir, defina um nome para o bloco. Na Figura 28, foi utilizado “SeguirLinha”. Clique em Finish/Finalizar. Figura 28. Construtor de Bloco. Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso do Sul - IFMS 28 Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 Com isso, as comutações foram reduzidas ao bloco “SeguirLinha” (Figura 29). Se clicarmos duas vezes nele, seremos direcionados para uma aba com o programa referente a ele na qual podemos fazer altera- ções na lógica. Também podemos encontrar nosso bloco personaliza- do na aba da seção inferior chamada de “Meus blocos”. Figura 29. Bloco personalizado. Figura 30. Ciclo/Loop. Por fim, na Figura 30 vamos colocar esse nosso bloco dentro de um ciclo que se repetirá infinitamente. Dessa forma, já temos um progra- ma capaz de fazer o nosso robô seguir linha. 3.3 Tratando Erros Durante a execução do projeto que criamos anteriormente, você po- derá notar que nossa lógica é incapaz de cobrir todos os casos de leitura dos sensores, dado em função das alterações de luz do ambiente, dentre outras coisas. Isso pode fazer com que o robô fique travado na pista. Va- mos fazer uma verificação simples para manter o nosso robô rodando. Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 29 Centro de Referência em Tecnologias Educacionais e Educação a Distância - Cread Figura 31. Verificação de motores. Como mostrado na Figura 31, adicione duas comutações no modo de verificação de potência de motor. Defina em uma delas para verifi- car o motor na porta A e na outra para verificar a porta B. Por fim, adi- cione um bloco “mover direção”, com a opção “manter ligado” com a potência de 20 para fazer o robô progredir lentamente na pista. Figura 32. Programa principal. Finalmente, transforme essas comutações em um bloco personali- zado, veja como ficou na Figura 32, da mesma forma como foi feito para o “SeguirLinha”, e adicione-o dentro do ciclo principal. Agora o nosso robô não ficará travado quando não souber o que fazer. Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso do Sul - IFMS 30 Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 31 Centro de Referência em Tecnologias Educacionais e Educação a Distância - Cread Seção 4 - Detectando Obstáculos Para que o robô seja capaz de identificar e desviar de obstáculos presentes na pista, é necessária a utilização de um sensor ultrassôni- co ou infravermelho. Utilizaremos um sensor infravermelho para este exemplo, contudo o código pode ser alterado para o funcionamento com o sensor ultrassônico. Conforme a Figura 33, faça o seguinte procedimento arraste o blo- co de comutação para o projeto, altere a condição para: Sensor infra- vermelho > Comparar > Proximidade. Em seguida, clique no botão de visualização em abas para deixar o bloco mais compacto. Figura 33. Verificação de proximidade. Figura 34. Lógica de desvio. Veja como fica a estrutura de Lógica de desvio na Figura 34. Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso do Sul - IFMS 32 Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 Figura 35. Desvio do robô. Agora, vamos implementar as ações de desvio (veja a Figura 34). Nos blocos, da esquerda para direita, temos: 1. Recuar uma rotação após detectar o obstáculo; 2. Rotacionar em 90° para direita (a quantidade de rotações varia de robô para robô, nesse caso foi utilizado 1,5 rotações); 3. Avançar por 1 rotação, para sair do caminho do obstáculo; 4. Rotacionar 90° para esquerda; 5. Seguir em frente até atravessar o obstáculo; 6. Rotacionar 90° para esquerda; 7. Seguir em frente até passar a linha; 8. Rotacionar 90° para direita, alinhando com a linha; Figura 36. Ciclo do programa principal. Na Figura 35 estão representados os passos citados na lista anteriormente. Novamente, vamos transformar essa verificação em um bloco per- sonalizado (Figura 36). Faça isso e adicione-o dentro do ciclo principal. Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 33 Centro de Referência em Tecnologias Educacionais e Educação a Distância - Cread Seção 5 - Intersecções Marcadas em Verde As indicações em verdes presentes na pista da OBR indicam o lado o qual o robô deve seguirem caso de intersecção. Nesta parte da apos- tila, vamos tratar dos possíveis casos. 5.1 Para a Esquerda Conforme a Figura 37, adicione uma comutação, altere o modo para “Sensor de cor > Medir > Cor”, clique no botão para alternar para a visualização de abas, troque a cor para verde, mude a porta para 1 e adicione um bloco “mover direção” para dentro. Quando o robô detectar a cor verde no sensor da esquerda, ele deve verificar se existe linha após a marcação em verde para fazer a virada, por isso adicio- namos o “mover direção”. Coloque o número de rotações suficiente para o robô tirar o sensor da marca em verde e parar em cima da linha preta. Não se esqueça de alterar as portas. Figura 37. Comutação do verde. Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso do Sul - IFMS 34 Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 Figura 38. Comutação do verde. Figura 39. Variável “meiaVolta”. (Na Figura 38) Após isso, vamos verificar a existência de linha pre- ta. Adicione uma comutação, alterne a visualização para abas, confi- gure “Sensor de cor > Comparar > Cor” e mude a porta para 1. Essa porta é a mesma da verificação passada. Antes de fazermos a validação da virada, vamos verificar se existe outra marcação em verde no sensor 2, o que caracteriza uma meia volta. Vamos utilizar essa abordagem pois evita ela evita problemas na detecção de meia volta. Então, adicione um bloco de variável antes da comutação (Figura 39), defina o bloco como “Escrever > Lógica” e marque a caixa como falso (X). Não se esqueça de definir o nome como “meiaVolta”. Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 35 Centro de Referência em Tecnologias Educacionais e Educação a Distância - Cread Figura 40. Comutação da esquerda. Na sequência, vamos entender o que está acontecendo até o mo- mento, acompanhe a Figura 40. O robô verifica a existência do verde no sensor da esquerda, avança um pouco e verifica se existe a cor preta (linha) após a marcação em verde. Após isso, ele deve recuar e verificar a presença do verde no sensor de cor oposto (sensor 2). Como queremos alterar o estado de uma variável durante esse processo, vamos arrastar um ciclo para dentro da comutação do preto. Coloque um bloco mover direção com potência de-30 e marque a opção “ligado”. Em seguida, marque no bloco de ciclo o tempo de 0.4. Esse tempo deve ser o suficiente para que o robô recue até voltar para a posição em que o sensor detectou verde, então procure um valor que melhor se adapte ao seu robô. Arraste uma comutação para dentro do ciclo de 0.4s e marque-a para verificar se o sensor na porta 2 encontrou verde. Em caso afirma- tivo, o valor da variável “meiaVolta” deve se alterar para verdadeiro. Visualize a Figura 41, caso a cor verde não seja detectada no sensor da direita, o robô deve avançar até chegar no centro da intersecção e realizar uma rotação para a esquerda. Feito isso, ele pode voltar a exe- cutar a lógica de seguimento de linha. Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso do Sul - IFMS 36 Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 Figura 41. Comutação da esquerda. Figura 42. Comutação da direita. 5.2 Para a Direita Na figura 42, a lógica para as marcações em verde do lado direito é a mesma, logo, vamos copiar e colar tudo o que fizemos na etapa anterior. Mudaremos apenas a porta da primeira verificação do verde para 2, a da verificação do preto para 2 e a última verificação do verde para 1. Não se esqueça de alterar a rotação do robô para a direita (30 e -30) na última comutação. Está pronto. Posicione toda a estrutura da Figura 42 após a verificação do verde da esquerda que construímos antes. Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 37 Centro de Referência em Tecnologias Educacionais e Educação a Distância - Cread Figura 43. Meia volta. Figura 44. Visão geral. 5.3 Meia Volta Por fim, temos a meia volta, veja a Figura 43. Já tratamos de sua detecção nas etapas anteriores, logo só nos resta implementar a ação. Para isso, arraste um bloco de variável, altere seu modo para Ler > Lógica. Acrescente uma comutação no modo Lógica e ligue o bloco de variável à ela. Adicione um bloco “mover tanque” com o número de rotações necessárias para fazer o seu robô rotacionar 180º, no caso apresentado foi utilizado o valor 3. Não se esqueça de transformar todas as verificações do verde em um bloco só por meio do “Meu construtor de bloco”, veja a Figura 44 como foi finalizada. Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso do Sul - IFMS 38 Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3 39 Centro de Referência em Tecnologias Educacionais e Educação a Distância - Cread Referências Lego Mindstorms Ev3. Disponível em:<https://education.lego.com/>. Acesso em: 01 de março de 2021. OBR (Olimpíada Brasileira de Robótica). Disponível em:<www.obr. org.br>. Acesso em: 03 de junho de 2021. www.obr.org.br www.obr.org.br Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso do Sul - IFMS 40 Programando um robô seguidor de linha utilizando LEGO Mindstorms EV3
Compartilhar