ROBÔ SEGUIDOR DE LINHA

Olá! Nós somos Alice Aguiar e Victor Montandon, e vamos mostrar a vocês como construímos um robô autônomo seguidor de linha usando o Arduino UNO para a disciplina de “Eletrônica Industrial” na Universidade Federal de Minas Gerais.

O nosso robô foi construído em base na própria placa de ensaio (protoboard) que usamos para a montagem dos circuitos elétricos, onde acoplamos os outros componentes necessários para criar o nosso "carrinho". Ele seguirá a sua trajetória ao longo de uma fita isolante preta sobre uma superfície branca. Modificações em sua rota se darão pela detecção de luz pelos sensores ópticos reflexivos, ou seja, quando estiver fora da faixa preta, e o código do Arduino comandará o sentido de giro dos motores acoplados às rodas.

Nos próximos passos deste Instructable iremos detalhar cada etapa do nosso projeto. Esperamos que gostem.

Step 1: Vídeo De Funcionamento

Step 2: Lista De Materiais

Podemos dizer que o orçamento aproximado para a construção do nosso robô é de R$200,00. No entanto, todos os materiais que utilizamos foram disponibilizados pelo laboratório de eletrônica da universidade para a execução do projeto, então não tivemos gastos.

O powerbank não foi mostrado nas imagens, uma vez que sua função era apenas de fornecer energia para o projeto, e para permitir a visualização da montagem dos componentes na protoboard. O rodízio foi construído a partir de uma sucata de mouse e adaptado ao projeto, com o objetivo de auxiliar passivamente a direção do veículo.

Step 3: Diagrama Esquemático Da Montagem Elétrica E Eletrônica

Step 4: Código-fonte Do Micro-controlador

int IN1 = 6;

int IN2 = 7;

int IN3 = 8;

int IN4 = 9;

void setup()

{

pinMode(IN1, OUTPUT); //positivo do motor direito

pinMode(IN2, OUTPUT); //negativo do motor direito

pinMode(IN3, OUTPUT); //positivo do motor esquerdo

pinMode(IN4, OUTPUT); //negativo do motor esquerdo

Serial.begin(115200);

}

void loop()

{

Serial.println(analogRead(A0));

if(analogRead(A0)<500 && analogRead(A1)<500)

//sensores fora da fita

//as duas rodas giram para trás, voltando reto

{

digitalWrite(IN1, LOW);

digitalWrite(IN2, HIGH);

digitalWrite(IN3, LOW);

digitalWrite(IN4, HIGH);

}

else if(analogRead(A0)<500)

//sensor direito sai da fita

//roda direita gira para frente e esquerda para trás, virando para a esquerda

{

digitalWrite(IN1, HIGH);

digitalWrite(IN2, LOW);

digitalWrite(IN3, LOW);

digitalWrite(IN4, HIGH);

}

else if(analogRead(A1)<500)

//sensor esquerdo sai da fita

//roda direita gira para trás e esquerda para frente, virando para a direita

{

digitalWrite(IN1, LOW);

digitalWrite(IN2, HIGH);

digitalWrite(IN3, HIGH);

digitalWrite(IN4, LOW);

}

else

//sensores na fita

//as duas rodas giram para frente, indo reto

{

digitalWrite(IN1, HIGH);

digitalWrite(IN2, LOW);

digitalWrite(IN3, HIGH);

digitalWrite(IN4, LOW);

}

}

Step 5: Princípio De Funcionamento

Usando a protoboard como base, fixamos dois sensores virados para o chão, um em cada lado da placa. Em condições normais de trajetória, os sensores detectam a ausência de luz quando estão sobre a fita isolante preta. Porém, quando estão fora da fita, os sensores detectam a presença de luminosidade na superfície branca, alterando o sentido de giro das rodas de forma a corrigir a trajetória como se deseja.

Assim, quando o sensor da esquerda encontra-se sobre uma região fora da faixa, é preciso realizar uma manobra à direita. Dessa forma, pelos comandos do código do Arduino, o motor da direita, acoplado a uma roda, começa a girar no sentido contrário. A manobra surge da diferença entre os sentidos de giro de cada roda. Quando o sensor da esquerda volta a detectar a faixa preta, o motor do lado oposto retorna a girar para frente.

Porém, quando o sensor da direita encontra-se sobre uma região fora da faixa, quem gira em sentido contrário é o motor da esquerda, de forma a corrigir à trajetória para esse lado, realizando processo análogo ao descrito para o outro sensor.

Quando os dois sensores estão sobre a superfície branca, ambas as rodas passam a girar para trás, de forma que o carrinho realiza uma manobra de ré até reencontrar a faixa preta.

Step 6: Observações Finais

Inicialmente, planejávamos construir o nosso robô sobre uma placa de apoio maior, onde se acoplasse a protoboard e os outros equipamentos externamente. A ideia era fazer com que o carrinho seguisse sua trajetória em condição normal detectando luminosidade e realizasse manobras para corrigir a rota quando detectasse a faixa preta. No entanto, conseguimos otimizar a construção usando a própria protoboard como placa de base, de forma que o peso do carrinho ficou menor, tornando os motores mais eficazes para o caso, e os sensores ficaram mais próximos ao chão, tendo mais sensibilidade à luminosidade. Os sensores também ficaram mais próximos entre si, o que nos levou a mudar o princípio de funcionamento final do robô: seguir sua trajetória sobre a faixa preta detectando ausência de luz e realizar manobras de correção quando detectar a luminosidade da superfície branca da pista construída.

A maior dificuldade para a realização do projeto do robô seguidor de linha foi, então, definir qual princípio ele seguiria, mudando a rota quando detectasse a superfície branca ou a fita isolante. Enquanto experimentávamos ambos os jeitos, baseados na construção do carrinho que fizemos, conseguimos determinar qual a melhor escolha para o nosso caso.

Outra dificuldade que encontramos foi na parte construtiva do carrinho, pois o rodízio não estava virando adequadamente de acordo com a movimentação do robô, devido ao atrito no mancal de seu suporte. Bastou lubrificar esse componente para resolver o problema.

Step 7: Referências Bibliográficas E Projetos Similares

Share

    Recommendations

    • Trash to Treasure

      Trash to Treasure
    • Arduino Contest 2019

      Arduino Contest 2019
    • Tape Contest

      Tape Contest

    Discussions