Você está na página 1de 15

ROBÔ SEGUIDOR DE LINHA

Microprocessadores

Marabá – PA
Maio/2019
Elias dos Santos Sales Júnior
Jair Kléber Dias Silva Júnior
Jean Charles Côrtes Ferreira
José Vinícius Pereira Alves
Ramon Felipe Farias Pacheco
Sara Alves de Azevedo
Weslley da Silva Oliveira

ROBÔ SEGUIDOR DE LINHA


Microprocessadores

Relatório entregue ao professor Mes. Pedro


Baptista Fernandes, na Universidade Federal do
Sul e Sudeste do Pará – Campus II, como parte
dos requisitos necessários para obtenção de nota
parcial na disciplina de Microprocessadores.

Marabá – PA
Maio/2019
RESUMO
Os primeiros robôs da era moderna foram desenvolvidos com enfoque no ramo
industrial, sendo o primeiro deles o braço robótico Unimate que era amplamente utilizado no
setor automotivo. A partir do desenvolvimento destes modelos ocorreu o surgimento e
aperfeiçoamento de novas tecnologias no ramo da robótica, possibilitando assim uma gama
mais ampla de aplicações. Com isso os robôs passaram a fazer parte de nosso cotidiano, sendo
possível desenvolver seu próprio robô com um custo relativamente acessível.

Este projeto consiste na construção de um robô autônomo que seja capaz de seguir uma
linha da cor preta a partir da utilização de sensores ópticos reflexivos. Para isso, será utilizado
uma das mais populares plataformas de software e hardware livre (open source), o arduino,
além de outros componentes eletrônicos que serão descritos posteriormente.
Sumário

1. INTRODUÇÃO ............................................................................................................................. 4
2. METODOLOGIA ......................................................................................................................... 4
2.1 Materiais Utilizados .............................................................................................................. 4
2.2 Construção do Protótipo....................................................................................................... 5
3. RESULTADOS E DISCUSSÕES ................................................................................................ 7
4. CONCLUSÕES ............................................................................................................................. 9
5. REFERÊNCIAS .......................................................................................................................... 10
ANEXO I .............................................................................................................................................. 11
ANEXO II ............................................................................................................................................ 14
4

1. INTRODUÇÃO
A robótica é uma área de estudo multidisciplinar que se apoia nos conhecimentos de
mecânica, eletrônica, física, matemática, biologia, informática e inteligência artificial. Tem por
objetivo “automatizar tarefas através de técnicas de programação e algoritmos orientados à
construção de robôs” (SILVA, 2009).
Hoje já se fala em robôs que interagem com os seres humanos, facilitam a sua vida,
proporcionam diversão e comodidade, tomam decisões não pré-programadas, aprendem com
movimentos, erros e acertos e exploram ambientes desconhecidos. Um dos grandes avanços
das técnicas de controle aplicadas à robótica foi a criação de máquinas autônomas, as quais têm
simplificado fortemente a vida de grande parte das pessoas evitando situações perigosas e
trazendo lazer e comodidade.
Nos tempos atuais, percebe-se um crescente aumento no uso de controladores
automáticos aplicados a engenharia, fato que vem diminuindo cada vez mais a mão-de-obra
humana para o manuseio de equipamentos e maquinários, considerados, muitas das vezes,
perigosos. Por meio da automação, o controle de sistemas busca minimizar o tempo de
produção, como também o índice de erros durante a mesma, erros esses considerados como
algo indesejável para o sistema (NUNES et al, 2012).
O protótipo desenvolvido, robô seguidor de linha, pode ser caracterizado de forma
superficial como um robô que tem a capacidade de detectar através de sensoriamento e seguir
uma linha desenhada no chão por meio do contraste entre a cor desta linha e a cor do restante
do piso, por isso estes robôs são conhecidos como veículos guiados automaticamente onde é
utilizado em larga escala, principalmente nas indústrias.
Portanto, a robótica se configura numa área de crescente desenvolvimento. Isto decorre
dos inúmeros recursos que os sistemas de microcomputadores vêm oferecendo. Grandes centros
de tecnologia se ocupam incansavelmente da criação de novas tecnologias, criando robôs
capazes de lidar com tomadas de decisão cada vez mais complexas.

2. METODOLOGIA
2.1 Materiais Utilizados
Para a montagem deste projeto foi utilizados os seguintes materiais:

➢ 1 Arduino UNO;
➢ 1 Ponte H dupla L298N;
➢ 3 Sensores óptico reflexivo Tcrt5000;
5

➢ 1 Kit chassi 2WD (2 rodas) robô para Arduino:


o 1 Chassi em acrílico;
o 2 Motores DC (3~6V);
o 2 Rodas emborrachadas;
o 1 Roda boba;
o 1 Jogo de parafusos
➢ 2 Baterias 9V;
➢ 1 Mini chave gangorra kcd11 on/off;
➢ Resistores de 0.56kΩ e 1kΩ;
➢ Cabos de cobre 0,5mm²;

2.2 Construção do Protótipo

O primeiro passo a ser tomado foi a montagem da base do veículo autônomo, utilizando
o chassi em acrílico, no qual já contém os locais para que sejam fixados os pneus do carrinho.
São eles, os dois pneus emborrachados nos quais terão os motores DC acoplados para que seja
feito o controle dos torques aplicados, e a roda boba, que garantirá mais mobilidade ao
protótipo.

Figura 1 - Chassi em acrílico Figura 2 - Kit chassi montado

Além do Arduino UNO (Figura 3), responsável por guardar a programação que guiará
o comportamento do robô, um outro elemento importante que será acoplado em cima da base
montada será a Ponte H (Figura 4). O módulo em questão, citado no item 2.1., é incumbido de
fazer o controle do sentido de rotação dos motores DC, utilizando dois pinos para cada motor,
nos quais determinarão a polaridade aplicada. Já para velocidade, há um pino destinado a cada
motor, que é ligado ao Arduino, onde há o envio de um sinal modulado por PWM (Pulse-Width
6

Modulation ou Modulação por Largura de Pulso), para que seja possível controlar a potência
enviada e consequentemente a velocidade de rotação.

Figura 3 - Arduino UNO Figura 4 – Ponte H

Para o sensoriamento do traçado a ser seguido, foi utilizado 3 sensores óptico reflexivos,
onde cada sensor é formado por um LED e um fotodiodo, ambos infravermelhos. O
posicionamento escolhido foi em linha na parte frontal do carrinho, onde cada conjunto foi
fixado por um pequeno suporte de acrílico junto a um parafuso longo para que seja possível
regular a distância a qual o sensor ficará do plano, como mostra a Figura 5. A luz emitida pelo
LED é refletida pela superfície analisada e atinge o fotodiodo, que gera uma tensão de saída
proporcional ao quantitativo refletido, sendo possível então, distinguir a linha (que possui cor
escura) do restante da superfície.

Figura 5 - Posicionamento do sensor óptico reflexivo

Há também o uso e acoplamento de duas baterias de 9V (Figura 6) no veículo, onde uma


ficará encarregada de alimentar os dois motores DC (Figura 7), e a outra alimentará o módulo
7

do Arduino. Para exemplificar melhor como se dá todas as ligações foi feito um esquemático,
como mostra a Figura X.

Figura 6 – Baterias de 9V
Figura 7 – Pneu com motor DC

Além disso, outros componentes essenciais como resistores e jumpers foram utilizados
para a construção do circuito que compõe o robô seguidor de linha.
Para o controle do robô, pode-se visualizar no Anexo I o código que foi escrito na IDE
do Arduino. A interação eficiente entre o sensoriamento e o controle das rodas foi de extrema
importância para que o funcionamento do protótipo pudesse ser alcançado de forma satisfatória,
por isso a programação possui uma atenção especial na construção do mesmo.

3. RESULTADOS E DISCUSSÕES
Após ter realizado a montagem dos equipamentos para a construção do hardware, como
mostra a Figura 8, iniciou-se a fase de teste para ter a certeza de que todos os equipamentos
estavam realmente funcionando.

A pista para que pudéssemos realizar os testes foi construída com fita isolante em um
local plano. Inicialmente, foram enfrentadas algumas dificuldades que de certa forma
acontecem em praticamente toda elaboração do projeto. No entanto, podemos destacar que a
diferença entre a característica construtiva do motor da roda esquerda para o motor da roda
direita foi o problema que levou um certo tempo para ser solucionado.
8

Figura 8: Robô seguidor de linha montado.

Figura 9: Robô desalinhado.

O motor da direita possui uma sensibilidade menor do que o motor da esquerda o que
ocasionava desestabilidade (Figura 9), principalmente nas curvas. Isso fez com que alguns
parâmetros fossem levados em consideração no momento da elaboração do programa de
controle do Arduino. A solução para isso foi regular a potência em cada uma das rodas, por
tentativa e erro, para que elas pudessem trabalhar de forma equivalente e suavizassem as curvas
realizadas pelo robô.
Uma outra problemática a ser solucionada foi a distância entre os sensores, como
mostrado na Figura 5 anteriormente. Essa distância ocasionava uma faixa de atuação e
consequentemente uma maior oscilação do sensoriamento na parte da frente do robô. Para não
alterar a parte construtiva do protótipo, foi aumentada a espessura da linha, pois isso diminuiu
o range de operação e a oscilação.
9

Resolvidos esses problemas, tivemos um resultado satisfatório. As Figuras 10 e 11, parte


superior e inferior respectivamente, mostram o robô seguidor de linha já montado, e o código
fonte presente no Anexo I carregado no Arduino.

Figura 10 – Parte superior do robô Figura 11 – Parte inferior do robô

4. CONCLUSÕES
O projeto descrito nesse relatório foi de grande valia para os envolvidos no mesmo, pois
proporcionou uma gama de conhecimentos que, a priori, ainda não possuíamos. Ficou claro
durante o desenvolvimento do protótipo que o Arduino é uma tecnologia que pode e irá trazer
muitos frutos aqueles interessados em desenvolver tecnologias inovadoras. Um equipamento
completo, open-source e o mais importante, uma ferramenta muito simples e poderosa.
Conceitos como controladores, novas ferramentas para desenvolvimento de robôs e
sistemas autônomos para controle de máquinas, foram explorados minuciosamente para que
tudo fosse feito de acordo com o que atual mercado tecnológico e científico exige, como
praticidade, processos automatizados, diminuir a exposição de humanos a perigos, dentre
outros.
10

5. REFERÊNCIAS

SILVA, A. F. da RoboEduc: uma metodologia de aprendizado com robótica educacional, 2009.


Tese (Doutorado). Universidade Federal do Rio Grande do Norte - Natal.
Nunes, L. F.; Oliveira, P. B. et al. Projeto e Desenvolvimento de um Robô Autônomo Seguidor
de Trilha, 2012. Universidade Federal de Uberlândia, Faculdade de Engenharia Elétrica,
Uberlândia – MG
GOMES, O. S. M. et al. Robô seguidor de linha para competições, 2014. Disponível em:
http://dx.doi.org/10.29069/forscience.2014v2n2.e122. Acessado em: 30 de maio de 2019.
11

ANEXO I

//PROJETO SEGUIDOR DE LINHA


//UNIVERSIDADE FEDERAL DO SUL E SUDESTE DO PARÁ
//CURSO DE ENGENHARIA ELÉTRICA

//MOTOR DIREITA
int Pdireita = 5;
int in1 = 7;
int in2 = 6;
//MOTOR ESQUERDA
int Pesquerda = 10;
int in3 = 9;
int in4 = 8;
int sensor1=A1; //Entradas analógicas dos sensores
int sensor2=A0;
int sensor3=A2;
int leitura1=0;
int leitura2=0;
int leitura3=0;
int const LIMITE1=4;
int const LIMITE2=4;
int const LIMITE3=4;
int aux=0;
int led1=11;
int led2=3;

void setup()
{

pinMode(Pdireita, OUTPUT);
pinMode(Pesquerda, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
Serial.begin(9600);
}
void frente()
{
// liga o motor da Direita

digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(Pdireita, 88);

//liga o motor da esquerda


12

digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(Pesquerda,91);
}

void esquerda()
{
digitalWrite(led1, HIGH); //LED DA DIREITA ACESO
digitalWrite(led2, LOW);

digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);

analogWrite(Pdireita,128);
analogWrite(Pesquerda,110);
}

void direita(){
digitalWrite(led1, LOW); //LED DA ESQUERDA ACESO
digitalWrite(led2, HIGH);

digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);

analogWrite(Pdireita,128);
analogWrite(Pesquerda,128);
}

void loop()
{
leitura1=analogRead(sensor1); //LÊ OS SENSORES
leitura2=analogRead(sensor2);
leitura3=analogRead(sensor3);
Serial.print(leitura1);
Serial.print(";");
Serial.print(leitura2);
Serial.print(";");
Serial.println(leitura3);
delay(10);

//----------QUANDO O CARRO ESTIVER ALINHADO NA FAIXA


if(leitura1>LIMITE1 && leitura2<LIMITE2 && leitura3>LIMITE3){

frente();

}
//-----------MOTOR MUITO À DIREITA
13

if(leitura1<LIMITE1 && leitura2>LIMITE2 && leitura3>LIMITE3


|| leitura1<LIMITE1 && leitura2<LIMITE2 && leitura3>LIMITE3 ){

esquerda();
aux=1;

}
//-----------MOTOR MUITO À ESQUERDA
if(leitura1>LIMITE1 && leitura2>LIMITE2 && leitura3<LIMITE3
|| leitura1>LIMITE1 && leitura2<LIMITE2 && leitura3<LIMITE3 ){

direita();
aux=2;

//-----------MOTOR TOTALMENTE ATRAVESSADO


if(leitura1<LIMITE1 && leitura2<LIMITE2 && leitura3<LIMITE3){

if(aux==1){ //OS VALORES AUXILIARES MOSTRAM O ESTADO


ANTERIOR
esquerda();
}
if(aux==2){
direita();
}
}
//------------SENSORES FORA DA FAIXA
if(leitura1>2*LIMITE1 && leitura2>2*LIMITE2 &&
leitura3>2*LIMITE3){

if(aux==1){ //OS VALORES AUXILIARES MOSTRAM O ESTADO


ANTERIOR
esquerda();
}
if(aux==2){
direita();
}
}
}
14

ANEXO II

Representação do Circuito do Carrinho seguidor de linha feito no Fritzing.

Diagrama do circuito feito no Fritzing.

Você também pode gostar