Robô Segue Linha
Programe um robô seguidor de linha em Arduino
Neste projeto iremos montar um robô autônomo seguidor de linha usando apenas 2 sensores de linha, a Base Boarduino (placa da Circuitar compatível com Arduino Nano) e os Nanoshields.
Você precisará de um caminho com fundo claro e linha escura para realizar o teste com o robô. Para isto você pode criar um caminho no chão com fita isolante (preta) ou baixar e imprimir nosso caminho na sessão de downloads.
Materiais utilizados
Veja abaixo os componentes necessários para o projeto:
- 1x Chassi robô com motor e rodas (como este ou este)
- 2x Parafusos Philips cabeça redonda M2.5 x 5cm
- 4x Arruelas de pressão
- 2x Arruelas lisa
- 6x Porcas sextavadas M2.5
- 2x Cabo 3 pinos fêmea 15cm
- 1x Base Boarduino
- 1x Nanoshield Motor
- 1x Nanoshield Wire A
- 2x Sensor de Linha
- 4x Pilhas AA 1.5V
- 1x Chave liga/desliga
Além disso você vai precisar de uma chave Philips e uma chave de porca para fixar os sensores.
Montagem
Com o chassi pronto conectar os Nanoshields Wire A e Motor na Base Boarduino.
Configurando o Nanoshield Wire A
Precisamos agora ligar os sensores de linha ao robô. O Arduino possui 8 entradas analógicas (de A0 a A7). Vamos usar as entradas A0 e A1 neste tutorial. Conecte o sensor da esquerda no shield Pino A0 e o sensor da direita no pino A1, conforme figura abaixo.
Certifique-se da posição do conector no shield: os fios branco, vermelho e preto correspondem às entradas A, e do Shield.
Configurando o Nanoshield Motor
Jumpers
Para comandar os dois motores ao mesmo tempo e independentemente, feche os jumpers do Shield nomeados M2B, M2A, M1B e M1A, conforme figura abaixo:
Motores
Os motores são ligados ao módulo através do borne de parafuso verde. O motor 1 é controlado pelos pinos 3 e 5 do Arduino e o motor 2 pelos pinos 6 e 9. Conecte os fios do motor da esquerda no terminais indicado por M1 e os fios do motor da direita nos terminais indicado por M2. Conforme figura abaixo:
Observação: Como controlamos a direção dos motores pelo programa do Arduino, podemos ligar os motores ao shield independente das cores dos fios A questão da direção dos motores será tratada no tópico Testando os motores (a baixo).
Alimentação e chave liga/desliga
O shield do motor possui 2 opções para alimentar o projeto:
- Pino VIN - Entrada que aceita tensões de 4V a 18V e alimenta somente o shield motor.
- Pino VCC - Entrada que aceita tensões de 4V a 6V e alimenta tanto o Arduino quanto o shield motor.
Neste projeto estamos utilizando 4 pilhas Alcalinas (1,5V) ou 4 pilhas recarregáveis de NiMh (1,2V) em série. Portanto vamos selecionar o pino VCC, utilizando a chave liga/desliga. Conecte os pinos da chave liga/desliga no VCC e ao pino ao lado, e os fios da pilha no borne azul do shield, lembrando de sua polarização vermelho no e preto no , conforme figura a baixo:
A montagem do robô está pronta!
Testando os Motores
Agora que seu robô está montado precisamos certificar que o comando do Arduino de ir para frente realmente está fazendo o robô andar para frente. Isto pode acontecer pois não sabemos ao certo a polarização correta do motores.
Para corrigir este problema fizemos um programinha de teste simples que utiliza os mesmos comandos de direção do motor que o código do programa principal para seguir a linha.
Baixe este programa teste e o programa seguidor-de-linha na cessão de downloads e primeiramente utilize o Arduino IDE para gravar o programa TESTE no robô. Lembre-se de escolher a board (placa) e porta correta no ambiente Arduino IDE.
Se você estiver utilizando o Boarduino indicado neste projeto, selecione a placa: Arduino Nano w/ ATmega328
.
Caso haja alguma dúvida na programação acesse nossa página de tutoriais.
Após gravado coloque o robô no chão e ligue-o. Observe a direção que ele irá andar por um breve período de tempo.
Se o robô não andou para frente, e sim para outra direção, abra o programa SEGUIDOR-DE-LINHA e siga os procedimentos abaixo para corrigir seu código: Se o robo, ao inves de andar para frente:
- Virou para ESQUERDA: Inverta os números 3 e 5 do #define do motor 1 (Esquerda) no código seguidor-de-linha;
- Virou para DIREITA: Inverta os números 9 e 6 do #define do motor 2 (Direita) no código seguidor-de-linha;
- Andou para TRÁS: Inverta os números dos dois #defines do motor 1 (Esquerda) e motor 2 (Direita) no código seguidor-de-linha.
Após fazer as devidas correções grave, da mesma forma que o programa teste, o programa seguidor-de-linha.
Pronha seu robô na linha e liga a chave liga/desliga. Seu robô está pronto para ação!
Nosso robô realizou o caminho de 170cm em 12 segundos. E o seu, em quanto tempo consegue fazer?
Ardublock
Criado para ajudar à quem não tem muito conhecimento em programação, o Ardublock é um ferramenta para programação em linguagem de blocos. Para o robô seguidor de linha foi criado também o programa em linguagem de blocos, disponível na seção de downloads abaixo.
Para mais informações e como instalar o Ardublock no seu computador acesse nosso tutorial do Ardublock.
Downloads
- Programa Teste
- Programa Seguidor de Linha
- Programa em ArduBlock
- Caminho para o Robô - Versão para folha A1 (PNG)
- Caminho para o Robô - Versão para folhas A4 (PDF)