Buscar

ROBÔ DE COMPETIÇÃO CATEGORIA SEGUIDOR DE LINHA UTILIZANDO

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Mostra Nacional de Robótica (MNR) 1 
 
 
 
ROBÔ DE COMPETIÇÃO CATEGORIA SEGUIDOR DE LINHA UTILIZANDO 
ALGORITMO PID E PLATAFORMA ARDUINO 
Luan Marinho Morais Pereira
1
, Gabriel Sabino Oliveira
1
, Pablo Henrique Ribeiro Bezerra
1
, Flávio Alves 
dos Santos
1
, Francisco Marcelino Almeida de Araújo
2 
1LABIRAS, DEPARTAMENTO DE INDUTRIA, SEGURANÇA E PRODUÇÃO CULTURAL – DISPC IFPI 
Endereço: Praça da Liberdade, 1597. Bairro Centro. 
64000-040 –TERESINA–PI 
 
2 Universidade Estadual do Piauí – UESPI 
Endereço: Rua João Cabral, 2231. Bairro Pirajá. 
64002-150 –TERESINA– PI 
E-mail: marcelino@labiras.cc 
 
 
 
 
 
 
 
Resumo: Robôs Seguidores de Linha são robôs autônomos que 
tem a finalidade de seguir um trajeto descrito por uma linha 
desenhada sobre uma superfície de cor contrastante com a cor 
da linha. Em competições, vence o robô que finaliza o percurso 
em menor tempo seguindo o trajeto completamente. Com base 
nisso, foi desenvolvido um robô seguidor de linha e seu 
software utilizando a plataforma Arduino e controle com 
algoritmo PID, visando obter um melhor desempenho e mais 
precisão comparado ao método ON/OFF, que é muito 
impreciso quando a velocidade do robô é alta e as curvas são 
acentuadas. No sensoriamento da linha foi utilizada uma barra 
de sensores de refletância por infravermelho (IR). O software 
foi desenvolvido na linguagem C. Os parâmetros referentes ao 
PID foram ajustados através do método de tentativa e erro. Os 
testes foram feitos utilizando a técnica ON/OFF no robô, em 
seguida, foi utilizado o controle PID, levando em consideração 
o desempenho e o tempo para fazer todo um percurso, que foi 
projetado para os testes. Nos resultados, o controle PID 
mostrou-se mais eficiente, obtendo melhores resultados, além 
de a pesquisa poder servir de base para estudantes dos cursos 
técnicos e das engenharias, para entender como funcionam as 
técnicas de controle de processos na prática. 
Palavras Chaves: Robôs Seguidores de Linha, Controle PID, 
Arduino, Competição de Robótica. 
Abstract: Line follower robots are autonomous robots that 
have the finality of follow a way described by a line drawn on 
a surface of contrasting color with the line color. At 
competitions, wins the robot that finishes the route in less time, 
following the route completely. On this basis, was developed a 
line follower robot and your software using the Arduino 
platform and control by PID algorithm, in order to obtain a 
better performance and more precision compared to ON/OFF 
method, that is very inaccurate when the velocity is high and 
the bends are accentuated. In the sensing of the line was used a 
reflectance sensors array that uses infrared (IR). The software 
was developed in C language. The PID parameters were 
adjusted by trial and error method. The tests were made using 
the ON/OFF technique in the robot, then was used the PID 
control, considering the performance and the time to complete 
an entire route, that was projected to the tests. In results, the 
PID control proved to be more efficient; getting better results, 
beyond the research can serve as a basis for students of 
technical curses and engineering, to understand how to work 
the process control techniques in practice. 
Keywords: Line Follower Robots, PID Control, Arduino, 
Robotics Competition. 
1 INTRODUÇÃO 
O termo robótica refere-se ao estudo e utilização de robôs 
para diversas aplicações. Isaac Asimov, cientista e escritor, 
usou o termo pela primeira vez em 1942 em uma de suas obras 
chamada de “Runaround”. A criação de robôs surgiu da 
necessidade do homem de automatizar atividades industriais. 
Como consequência benéfica da revolução industrial surgiram 
máquinas cada vez melhores capazes de realizar e reproduzir 
diversas tarefas, de forma autônoma ou não [CITI, 2014]. 
Desde então, uso de robótica na indústria se tornou 
comum. Robôs têm sido úteis até mesmo para execução de 
atividades simples rotineiras das pessoas, ou até mesmo 
atividades que exijam certo grau de risco para as pessoas 
fazerem. Hoje, robôs são integrados de diversos sensores que 
permitem monitorar atividades e o meio em que o mesmo se 
encontra além de realimentar sistemas proporcionando a 
execução de tarefas de forma autônoma. Desta forma, pelo fato 
dos robôs executarem tarefas importantes, tem-se buscado cada 
vez mais desenvolver robôs com processamentos mais rápidos 
e cada vez mais precisos [IEEE SPECTRUM, 2010]. 
Hoje já existem diversas formas e artifícios para melhorar 
o desempenho e o tempo de realização das atividades. Uma das 
formas bem conhecidas no ramo industrial é através do 
algoritmo PID (Proporcional-Integral-Derivativo). “O sucesso 
dos controladores PID também é reforçado pelo fato de que 
muitas vezes representam o componente fundamental para os 
sistemas de controle mais sofisticados que podem ser 
implementados quando a lei básica de controle não é suficiente 
para obter os desempenhos requeridos [VISIOLI, 2006]”. 
Mostra Nacional de Robótica (MNR) 
Este artigo visa apresentar o desenvolvimento de um robô de 
competição na categoria seguidor de linha, utilizando a 
plataforma Arduino e algoritmo PID, aplicando o método das 
tentativas e erros para ajuste dos valores das constantes do 
controle PID. 
2 ARDUINO 
Arduino é uma plataforma de prototipagem eletrônica de 
código aberto, ele pode sentir o ambiente recebendo uma 
entrada de uma variedade de sensores e pode atuar ao seu 
arredor através do controle de luzes, motores, e outros 
atuadores [ARDUINO, 2014]. 
Ele comporta um microcontrolador e um conversor 
USB/Serial para ser possível comunicar o microcontrolador a 
um computador. Existem diversas versões da placa, mas a mais 
conhecida é o Arduino UNO R3. Estas placas possuem 
diversos pinos que podem ser utilizados como entrada ou saída 
de sinais (digitais ou analógicos), esses pinos permitem a 
comunicação com dispositivos externos como leds, LCDs 
(Liquid Crystal Display), sensores, relés, pontes “H”, pequenos 
motores, e demais dispositivos que podem indicar um status ou 
simplesmente atuar, modificando o processo. 
O microcontrolador da placa UNO R3 é o ATmega328P 
de 8bits, com 32 kbytes de memória flash, 2 kbytes de RAM 
(Random Access Memory). Pelo fato do Arduino UNO R3 
possuir apenas 6 entradas com conversor analógico digital e o 
projeto deste artigo requerer 8 entradas deste tipo, opto-se pelo 
uso de uma placa Arduino Mega 2560 R3. Este por sua vez, 
usa o microcontrolador ATmega2560 de 8 bits, com 256 kbytes 
de memória Flash, 8 kbytes de RAM, além de possuir 54 pinos 
digitais que podem ser usados como entrada ou saída (sendo 
que 15 possuem o recurso PWM) e 16 entradas analógicas 
[ATMEL CORPORATION, 2014]. 
O Arduino possui IDE (Integrated Development Environment) 
própria. O ambiente de código livre Arduino torna fácil 
escrever código e enviá-lo à placa I / O. A IDE é executável em 
Windows, Mac OS X, e Linux. O ambiente é escrito em Java e 
baseado em Processing, avr-gcc e outros softwares de código 
livre [ARDUINO, 2014]. 
2.1 IDE ARDUINO 
A linguagem de programação Arduino se baseia em Wiring, 
que por sua vez simplifica o uso da linguagem C/C++ no 
programa. Por ser código livre, hoje já existem na internet, 
gratuitamente, várias de bibliotecas escritas em C++ que 
podem ser incluídas no código fonte, de qualquer um que esteja 
programando, para diversas tarefas [ARDUINO, 2014]. 
2.2 ESTRUTURA DA LINGUAGEM 
A linguagem é bem simples, e é compostas por duas 
funções principais, a função setup() e a função loop(). Não 
somente estas funções, a linguagem também pode compor 
outras funções criadas pelo programador. Quando iniciado o 
Arduino, as funções são executadas linha por linha. 
A função setup() além de ser a primeira função a ser 
executada ao iniciar o programa, é executada apenas uma vez 
quando o Arduino é ligado ou quando for reiniciado. Énessa 
função que são configurados os pinos, além de iniciar/ativar a 
comunicação serial. 
A função loop() é a segunda função a ser executada, nela as 
instruções são executadas infinitamente, ou seja, ao executar a 
última linha dentro da função, o programa volta ao início do 
loop e é executado novamente. É no loop que são chamadas as 
funções de leitura de pinos, atuação dos pinos e porta serial, 
também é a parte do código onde é programada toda a lógica 
do processo. 
3 CONTROLE PID 
O PID é o algoritmo de controle mais usado na indústria e 
tem sido utilizado em todo o mundo para sistemas de controle 
industrial. A popularidade de controladores PID pode ser 
atribuída em parte ao seu desempenho robusto em uma ampla 
gama de condições de funcionamento e em parte à sua 
simplicidade funcional, que permite aos engenheiros operá-los 
de uma forma simples e direta [NATIONAL INSTRUMENTS, 
2011]. Para isto é necessário entender que no cotidiano 
existem variáveis que podem ser controladas e manipuladas, 
variáveis como pressão, vazão, temperatura, nível, são 
exemplos comuns. Para que estas variáveis possam ser 
mantidas sob controle dentro de um processo são utilizadas 
técnicas de controle que quando aplicadas buscam manter 
sempre constantes os valores desejados pelo usuário, por 
exemplo, um ar condicionado configurado para uma 
temperatura de 20°C possui um sistema de controle que 
monitora a temperatura ambiente e atua seu sistema de 
refrigeração para manter a temperatura de 20°C constante 
[FRANCHI, 2011]. 
O controle PID leva este nome por ser um sistema de 
controle Proporcional-Integrador-Derivativo, mais da metade 
dos controladores industriais utilizados atualmente empregam 
esquemas de controle PID ou PID modificado [OGATA, 
2003]. O controlador PID recebe o valor de uma variável do 
processo, que é obtido através de um sensor e compara este 
valor com um set-point/referência configurado, para calcular o 
valor de erro. A partir do valor deste erro são calculados os 
valores proporcionais, integrativos e derivados que são 
somados na saída resultando numa resposta para elementos 
finais de controle, como válvulas, por exemplo. O processo 
funciona em malha fechada, ou seja, o controlador recebe o 
feedback constante do sensor responsável pela leitura da 
variável, observe a figura 1. 
Figura 1 - Diagrama de blocos de um controlador PID em 
malha fechada. 
No diagrama de blocos acima é mostrado o fluxo do 
controle PID em uma malha fechada, onde e(t) é o erro 
calculado no tempo que é resultado do Set-point – f(t), s(t) é a 
saída do controlador PID que é o resultado da somatória dos 
valores proporcionais, integrador e derivativo, e f(t) é o sinal de 
feedback constante [CONTROL TUTORIALS, 2012]. 
Mostra Nacional de Robótica (MNR) 3 
O cálculo é realizado da seguinte forma no controlador: 
𝑃𝐼𝐷𝑣𝑎𝑙𝑢𝑒 = 𝐾𝑝 ∗ 𝑃 +𝐾𝑖 ∗ 𝐼 +𝐾𝑑 ∗ 𝐷 
Onde: 
Kp: ganho proporcional 
Ki: ganho integrativo 
Kd: ganho derivativo 
P: correção proporcional ao erro. A correção a ser 
aplicada ao processo deve crescer na proporção que cresce o 
erro entre o valor real e o desejado. I: correção proporcional ao 
erro x tempo. Erros pequenos, mas que existem há muito tempo 
requerem correção mais intensa. D: correção proporcional à 
taxa de variação do erro. Se o erro está variando muito rápido, 
esta taxa de variação deve ser reduzida para evitar oscilações 
[NOVOS, 2014]. 
O PID não é a solução para o controle de todo o tipo de 
processo. Uma vez que os requisitos de desempenho foram 
especificados, o próximo passo é analisar o sistema e 
selecionar um controle adequado. Na grande maioria das 
aplicações, um controle PID irá fornecer os resultados exigidos 
[NATIONAL INSTRUMENTS, 2011]. Quando sua aplicação 
é viável o controle PID é vantajoso por ser capaz de emitir um 
sinal de saída variável para o atuador, consequentemente a 
variável de processo será manipulada de forma mais precisa, 
suave e estável. Diferentemente do modo de controle ON/OFF, 
que liga e desliga o atuador, o PID pode modulá-lo de 0 a 
100%. Considerando o exemplo anterior do ar condicionado, se 
seu sistema de controle for ON/OFF ele liga e desliga o 
compressor para manter a temperatura constante, o PID 
consegue gerar uma saída que pode ser usada por um inversor 
de frequência para realizar a modulação desse compressor de 0 
a 100% da velocidade. 
4 O TRABALHO PROPOSTO 
O desafio do trabalho foi desenvolver um robô seguidor de 
linha que fosse capaz de seguir a linha sem sair do trajeto e que 
realizasse uma volta no percurso em menor tempo possível, o 
que fez com que o robô estivesse sendo sempre configurado 
para atingir níveis mais altos de desempenho. Para atingir 
níveis de desempenho satisfatórios trabalhou-se com a hipótese 
de que o robô sendo controlado por PID seria capaz de alcançar 
um melhor desempenho e que este método de controle faria 
com que o robô seguisse a linha de forma mais precisa e suave. 
O robô seguidor de linha é um robô construído para 
participar de competições onde o ganhador é o robô que 
consegue percorrer um trajeto com uma linha branca desenhada 
em fundo preto, ou uma linha preta desenhada em fundo 
branco, sem se perder no percurso nem utilizar atalhos. O robô 
do projeto foi construído sobre uma placa de MDF, utilizada 
como chassi. Sobre este chassi foi instalado um par de motores 
com rodas acopladas, uma placa Arduino MEGA, os sensores 
de refletâncias, uma ponte H, uma roda boba, e a bateria. 
O Arduino realiza o controle do processo, ele recebe a leitura 
dos sensores e executa o algoritmo PID para corrigir os erros, a 
saída é enviada para uma ponte H, que controla a velocidade e 
direção dos motores. 
 
Figura 2 – Funcionamento do Loop(). 
Todas estas atividades foram realizadas por quatro 
estudantes de engenharia mecânica, elétrica e técnico em 
eletrotécnica, que dividiram os trabalhos em construção do 
chassi, configuração eletrônica, estudo do processo e 
programação. Primeiramente foi elaborado um protótipo do 
chassi e definido todo o circuito eletrônico do robô, após estar 
feito, foi elaborado uma pista para executar os testes. O robô e 
a pista de testes produzida foram elaborados com base nas 
regras da competição de seguidores de linha da Robocore 
[ROBOCORE, 2014]. 
Figura 3 – Modelagem Conceitual da Versão Final do 
Robô. 
5 MATERIAIS E MÉTODOS 
Aqui serão mostrados quais materiais foram utilizados 
para construção do robô, e como decorreram os testes para 
ajustar constantes de ganho do PID. 
Figura 4 – Robô Seguidor de Linha Montado 
 
Mostra Nacional de Robótica (MNR) 
5.1 MATERIAIS 
O corpo do robô foi feito com MDF (Medium-Density 
Fiberboard), possui 2 micro motores com redução 30:1, 1 par 
de rodas pololu 60x8mm e uma grande esfera transferidora, 
além de alguns parafusos. Para o sensoriamento foi utilizado 
uma barra de sensores de refletância IR (QTR-8A – um 
conjunto de 8 sensores de saída analógica). E para controle foi 
utilizado um Arduino Mega 2560 R3 e uma ponte “H” L298. 
Tabela 1 – Lista de Materiais. 
 
5.2 MÉTODOS 
Os testes foram realizados numa pista feita pelo grupo. 
Ela foi elaborada em CAD com um tamanho de 2,10x1,40m, a 
linha possui uma largura de 19,0mm ±1mm, e foi projetada em 
cor branca sobre um fundo preto, conforme as regras do 
campeonato Winter Challeng [ROBOCORE, 2014], sendo as 
cores da figura 5 representativas. A pista foi impressa em lona. 
Ela possui uma área que define a partida/chegada do robô, que 
é utilizada para marcar quando o robô completa voltas no 
percurso, também é composta por curvas de leves e maiores 
acentuações com pequenas linhas de referência para indicar o 
início/fim da curva. Uma área circular é utilizada para o teste 
da capacidade de curva do robô, e linhas perpendiculares estão 
presentes para simular cruzamentos na pista. 
Figura 5 – Pista de testes. 
Osprimeiros testes do robô foram realizados sem o 
controle PID pelo método ON/OFF e com uma velocidade 
baixa, após os testes com a velocidade baixa foram realizados 
novos testes e em cada um destes a velocidade era aumentada. 
Após os testes pelo método ON/OFF, mudou-se o software 
com a implementação do algoritmo PID, inicialmente com as 
constantes Kp, Ki e Kd ajustadas para zero. Assim pelo método 
de tentativa e erro, foi ajustado o primeiramente o valor de Kp, 
depois Kd e por último Ki. 
Os valores das constantes de ganho foram várias vezes 
redefinidas durante estes testes até que se encontrasse sintonia, 
e, por conseguinte, fazer o robô seguir a linha de maneira mais 
suave. 
Em cada teste realizado era medido o tempo que o robô 
levava para completar uma volta completa no percurso. Uma 
verificação visual era realizada para checar como estava a 
estabilidade do robô seguindo a linha e para que pudessem ser 
corrigidos as oscilações e movimentos bruscos que faziam o 
robô sair da linha. 
6 RESUTADOS E DISCURSSÃO 
 
Durante os primeiros testes sem PID, utilizando o método 
de controle ON/OFF, e com a velocidade baixa, foi visto que o 
robô oscilava muito e realizava movimentos muito bruscos 
tentando se estabilizar em meio a linha. Quando a velocidade 
foi aumentada, ainda utilizando o método ON/OFF, verificou-
se que o robô não conseguia fazer as curvas. Ele se 
desestabilizava e saía da linha. 
Quando o controle PID foi implementado com as 
constantes zeradas, constatou-se que robô seguia um 
movimento próximo do retilíneo e não fazia curvas. Após isto, 
ajustou-se inicialmente Kp até que o robô começasse a seguir a 
linha (oscilando ou não). Após isto, o inicio-se o ajuste de Kd 
para que diminuísse a oscilações em meio a linha. E por fim, 
ajustou-se Ki para otimizar o controle, melhorando o tempo de 
resposta da saída. 
Com todos os testes, foi comprovado experimentalmente 
que o controle PID é mais eficiente e eficaz que o método de 
controle ON/OFF, para o seguidor de linha, sendo que quando 
usava o controle ON/OFF o robô levava muito tempo para 
fazer o percurso (quando conseguia fazer totalmente) enquanto 
que com o controle PID, percorria a pista com muito mais 
velocidade e com oscilações bem pequenas. 
7 CONCLUSÕES 
Com base no que foi apresentado, é possível observar que 
o controle do seguidor de linha utilizando controle PID é bem 
mais eficiente que utilizando o método de controle ON/OFF. 
Embora algumas adversidades como o material da pista, que 
refletia as ondas infravermelhas (IR) de maneira instável, o 
robô projetado conseguiu percorrer a pista elaborada muito 
bem. 
O trabalho desenvolvido utilizando métodos de controle é 
ideal para estudantes dos cursos técnicos, engenharias e áreas 
da tecnologia, pois é uma forma de mostrar na prática como 
funcionam os algoritmos de controle e a forma como cada um 
se comporta. Um aperfeiçoamento do trabalho desenvolvido 
neste artigo pode ser a elaboração de um material didático para 
estudantes de automação, tomando como base de estudo tudo 
que foi desenvolvido no seguidor de linha, explicando um 
passo a passo de como pode ser construído um robô, e utilizá-
lo como ferramenta de teste para cálculos e procedimentos 
matemáticos de controle. 
REFERÊNCIAS BIBLIOGRÁFICAS 
 
ARDUINO. Home Page. Disponível em: 
<http://www.arduino.cc>. Acesso em: 07/07/2014. 
ARDUINO. Introduction. Disponível em: 
<http://arduino.cc/en/Guide/Introduction>. Acesso em: 
12/07/2014. 
MATERIAIS QUANTIDADES 
ARDUINO MEGA 2560 R3 1 un. 
PONTE H L298 1 un. 
MDF(Medium-Density Fiberboard) 15cmx15cm 
Micro Motores com Redução 30:1 2 un. 
Par de Rodas 60x8mm 1 un. 
Esfera Transferidora 1 un. 
BARRA DE SENSORES QTR-8A 1 un. 
Mostra Nacional de Robótica (MNR) 5 
ATMEL CORPORATION. ATmega328p. Disponível em: 
<http://www.atmel.com/pt/br/devices/ATMEGA328P.a
spx>. Acesso em: 08/07/2014. 
ATMEL CORPORATION. ATmega2560. Disponível em: 
<http://www.atmel.com/devices/atmega2560.aspx>. 
Acesso em: 08/07/2014. 
CITE. História da Robótica. Disponível em: 
<http://www.citi.pt/educacao_final/trab_final_inteligenc
ia_artificial/historia_da_robotica.html>. Acesso em: 
07/07/2014. 
CONTROL TUTORIALS. Introduction: PID Controller 
Design. Disponível em: 
<http://ctms.engin.umich.edu/CTMS/index.php?exampl
e=Introduction&section=ControlPID>. Acesso em: 
10/07/2014. 
FRANCHI, Claiton Moro.Controle de Processo Industriais – 
Princípios e Aplicações. São Paulo: Érica, v. 1, 2011. 
IEEE SPECTRUM. World Robot Population Reaches 8,6 
Million. Disponível em: 
<http://spectrum.ieee.org/automaton/robotics/industrial-
robots/041410-world-robot-population>. Acesso em: 
12/07/2014. 
NATIONAL INSTRUMENTS. Explicando a Teoria PID. 
Disponível em: < http://www.ni.com/white-
paper/3782/pt/>. Acesso em: 09/07/2014. 
NOVOS. Artigo Técnico – Introdução ao controle PID. 
Disponível em: 
<http://das.ufsc.br/~aarc/ensino/posgraduacao/DAS661
3/PID_Novus.pdf>. Acesso em: 10/07/2014. 
OGATA, Katsuhiko; LEONARDI, Fabrizio. Engenharia de 
controle moderno. Prentice Hall, 2003. 
ROBOCORE. Eventos. Disponível em: 
<https://www.robocore.net/upload/attachments/robocore
__regras_seguidor_de_linha_165.pdf.>. Acesso em: 
15/04/2014. 
VISIOLI, Antonio. Practical PID control. Springer, 2006. 
https://www.robocore.net/upload/attachments/robocore__regras_seguidor_de_linha_165.pdf
https://www.robocore.net/upload/attachments/robocore__regras_seguidor_de_linha_165.pdf

Continue navegando