Robótica

Robô Seguidor de Linha – Tutorial Completo

Eletrogate 15 de julho de 2020

Introdução

O Arduino é uma plataforma amplamente utilizada na prototipagem eletrônica graças à sua facilidade de programação e implantação. Hoje faremos uso dessas características para desenvolver um robô seguidor de linha e entender na prática como essas máquinas amplamente utilizadas na indústria funcionam.

Robôs seguidores de linha em um pátio industrial

Robôs seguidores de linha são máquinas capazes de percorrer um determinado trajeto através de marcações no chão. Isso é possível graças à presença de sensores que identificam as diferenças de cor ao longo do percurso e informam ao microcontrolador esses dados recolhidos, permitindo que, em conjunto com a lógica de programação ali presente, o robô tome decisões e tenha “conhecimento” do caminho que deve seguir.

Suas aplicações são vastas e, como ilustrado acima, estão presentes principalmente nos ambientes industriais, transportando cargas por toda fábrica de forma autônoma. No post de hoje você aprenderá a montar um robô seguidor de linha usando o Arduino e um par de sensores: um incentivo para que você tenha ainda mais interesse pelo mundo da robótica e da programação. Veja só:


Montagem do Robô

Para montar seu robô seguidor de linha, você precisará de:

Além disso, você também precisará de ferramentas como chave Phillips e ferro de solda!

cta_cart

Com tudo em mãos, vamos dar início à montagem do chassi. Confira o passo a passo nas imagens à seguir:

IMPORTANTE

Antes de mais nada, precisamos salientar que nossos kits são todos confeccionados em acrílico. Os comercializamos com uma película protetora de papel craft para evitar danos durante a fabricação e transporte. Vamos mostrar o processo de montagem do kit com a película apenas para facilitar a visualização do processo, mas caso deseje o aspecto translúcido do acrílico em seu robô, basta retirar a película, conforme mostrado na imagem abaixo:

Dito isso, vamos à montagem:

Passo 1: posicione os 4 pilares de suporte para a roda boba conforme a imagem abaixo:

Passo 2: Parafuse-os no chassi e, em seguida, parafuse a roda boba sobre eles.

Passo 3: Solde os fios nos motores, conforme a imagem abaixo:

Passo 4: Posicione os suportes do motor e, em seguida, parafuse os mesmos, como ilustrado abaixo:

Passo 5: O próximo passo é fixar o suporte de pilhas e o interruptor no chassi. Veja a disposição dos mesmos à seguir:

Passo 6: Com o suporte e o interruptor posicionados, você deverá adicionar o interruptor em série com o suporte de pilhas. Para isso, basta cortar o fio vermelho (positivo) e soldá-lo no interruptor, conforme ilustrado abaixo:

Passo 7: Terminado isso, a parte física do seu chassi estará montada, restando agora posicionar os demais componentes eletrônicos ao longo do chassi. Nossa disposição ficou da seguinte forma:

Algumas observações sobre a fixação dos componentes no chassi:

1- Você pode usar fita dupla face emborrachada (VHB) ou cola quente para fixar o Arduino, a ponte H e a bateria de 9V no chassi;

2- A bateria de 9V foi fixada na parte inferior do chassi, como mostrado abaixo. Ela será a responsável por fornecer energia ao Arduino, enquanto as pilhas são exclusivamente para o acionamento dos motores.

3- Os sensores devem ser fixados próximo à roda boba. Para isso, recomendamos fortemente que seja utilizada cola quente e que estejam espaçados conforme a imagem a seguir:

Ao término dessa etapa, resta apenas a conexão dos fios e a programação do robozinho. Começando pela conexão, você pode seguir o diagrama abaixo:

Você também pode seguir a tabela de pinos abaixo:

IN1 -> D8
IN2 -> D9
IN3 -> D10
IN4 -> D11
Out_Sensor1 -> D6
Out_Sensor2 -> D7

IMPORTANTE:

É de suma importância manter os jumpers nos pinos Enable do módulo para que seus motores funcionem, conforme a imagem abaixo:


Programando o Arduino

Para programarmos o Arduino é necessário entender a lógica por trás do funcionamento do sensores, que serão manipulados pelo nosso código para que o carrinho se torne inteligente. Você pode conferir essa lógica de funcionamento na imagem a seguir:


Com isso em mente, podemos dar início à programação do robô.

Código

//Definição dos pinos de controle do motor
#define M1 9 // Pino_Velocidade 1º Motor ( 0 a 255)_ Porta IN2 ponte H;
#define M2 11 //Pino_Velocidade 2º Motor ( 0 a 255) _ Porta IN4 ponte H;
#define dir1 8 //Pino_Direção do 1º Motor: Para frente / Para trás (HIGH ou LOW)_ porta IN1 ponte H;
#define dir2 10 //Pino_Direção do 2º Motor: Para frente / Para trás (HIGH ou LOW)_ porta IN3 ponte H;

//Definição dos pinos dos sensores
#define pin_S1 7
#define pin_S2 6
bool Sensor1 = 0;
bool Sensor2 = 0;

//variável responsável por controlar a velocidade dos motores
int velocidade = 150;

void setup(){
//Setamos os pinos de controle dos motores como saída
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
pinMode(dir1, OUTPUT);
pinMode(dir2, OUTPUT);

//Setamos a direção inicial do motor como 0, isso fará com que ambos os motores girem para frente
digitalWrite(dir1, LOW);
digitalWrite(dir2, LOW);

//Setamos os pinos dos sensores como entrada
pinMode(pin_S1, INPUT);
pinMode(pin_S2, INPUT);
}

void loop(){
//Neste processo armazenamos o valor lido pelo sensor na variável que armazena tais dados.
Sensor1 = digitalRead(pin_S1);
Sensor2 = digitalRead(pin_S2);

//Aqui está toda a lógica de comportamento do robô: Para a cor branca atribuímos o valor 0 e, para a cor preta, o valor 1.
if((Sensor1 == 0) && (Sensor2 == 0)){ // Se detectar na extremidade das faixas duas cores brancas
analogWrite(M1, velocidade); // Ambos motores ligam na mesma velocidade
analogWrite(M2, velocidade);
}

if((Sensor1 == 1) && (Sensor2 == 0)){ // Se detectar um lado preto e o outro branco
analogWrite(M1, 0); // O motor 1 desliga
analogWrite(M2, velocidade); // O motor 2 fica ligado, fazendo assim o carrinho virar
}

if((Sensor1 == 0) && (Sensor2 == 1)){ // Se detectar um lado branco e o outro preto
analogWrite(M1, velocidade); //O motor 1 fica ligado
analogWrite(M2, 0); // O motor 2 desliga, fazendo assim o carrinho virar no outro sentido
}

}

Note que incluímos a variável velocidade no escopo do código. Essa variável é quem informa, num range de 0 a 255, qual a velocidade em que os motores serão acionados. Em nosso caso, o melhor valor foi 150, cerca de 60% de sua velocidade máxima. Caso deseje que seu robô ande mais rápido, basta alterar seu valor respeitando os limites informados.


O Resultado

Após ter seu robozinho montado e programado, chegou a hora de testar seu funcionamento. Para isso, você deverá desenhar o percurso usando fita preta em uma superfície branca. Você pode conferir no vídeo abaixo o resultado que obtivemos com esse projeto:


Conclusão

O Arduino serve de protótipo para projetos de várias dimensões. Hoje usando, alguns componentes simples (Ponte H, Sensor infravermelho) pudemos desenvolver e entender na prática o funcionamento de um robô largamente utilizado no ambiente industrial.

Esperamos que você tenha entendido e conseguido montar nosso projeto. Se curtiu, aprendeu e/ou desenvolveu o carrinho, poste nas redes sociais e nos marque no instagram: @eletrogate


Gostou? Deixe um curtir e compartilhe com seus amigos!  Ficou com alguma dúvida? Quer fazer um elogio?  Deixe um comentário!

Obrigado por nos acompanhar e ler até aqui.


Sobre o Autor


Samuel Martins
@samuel.martins192

Cursando Eletroeletrônica no SENAI CETEL. Fanático por eletrônica, automação, impressão 3D e afins, dedico meu tempo livre a pesquisas e projetos ligados às principais áreas de interesse, pratico aeromodelismo e sou curioso por astrofotografia.


Eletrogate

15 de julho de 2020

A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.

Conheça a Metodologia Eletrogate e Lecione um Curso de Robótica nas Escolas da sua Região!

Eletrogate Robô

Cadastre-se e fique por
dentro de novidades!