Você está na página 1de 5

PROJETO E DESENVOLVIMENTO DE UM ROB AUTNOMO SEGUIDOR

DE TRILHA
Nunes, L. F.; Oliveira, P. B.; Olipe, H; Cunha, M. J.; Vincenzi, F. R. S.; Morais, J. S.; Morais, A. S.
Ncleo de Controle e Automao
Universidade Federal de Uberlndia, Faculdade de Engenharia Eltrica, Uberlndia MG,
aniel@eletrica.ufu.br, pamellabeoliveira@gmail.com, senun.leonardo@gmail.com

Resumo - O presente artigo tem como objetivo tcnicas de controle aplicadas robtica foi a criao de
apresentar detalhadamente as etapas do projeto e mquinas autnomas, as quais tm simplificado fortemente a
desenvolvimento de um rob autnomo seguidor de vida de grande parte das pessoas evitando situaes perigosas
trilha. e trazendo lazer e comodidade.
Nos tempos atuais, percebe-se um crescente aumento da
Palavras-Chave Rob Autnomo, Seguidor de Trilha, utilizao de controladores automticos aplicados
Arduino, Controle. engenharia, fato que vem diminuindo cada vez mais a mo-
de-obra humana para o manuseio de equipamentos e
DESIGN AND DEVELOPMENT OF AN maquinrios, considerados, muitas das vezes, perigosos. Por
AUTONOMOUS LINE FOLLOWER ROBOT meio da automao, o controle de sistemas busca minimizar
o tempo de produo, como tambm o ndice de erros
Abstract - This paper aims to present in detail the durante a mesma, erros esses considerados como algo
design and development stages of an autonomous line indesejvel para o sistema.
follower robot. Um processo controlado em malha fechada reduz a
1 sensibilidade a interferncias e rudos, o que,
Keywords - Autonomous Robot, Line Follower, consequentemente, torna o controle quase ideal. No caso dos
Arduino, Control. seguidores de trilha, o controle em malha fechada
fundamental tanto para seguir a linha como para rejeitar
NOMENCLATURA perturbaes e no linearidades da iluminao e pequenos
defeitos na pista que comprometem a leitura do sensor.
PD Controlador Proporcional derivativo. No projeto apresentado neste artigo, utilizou-se um
PI Controlador Proporcional integrativo. controle de velocidade do carrinho em malha aberta. Para a
Kd Constante Derivativa. diminuio de interferncias externas e rudos, conforme a
Kp Constante Proporcional. Fig. 5, na parte II-C, dispem-se os componentes de modo a
Vdc Tenso de alimentao do motor. tornar mais robusta a medio do sinal. O sistema de
rpm Rotaes por minuto do motor. sensoriamento foi feito de forma simples utilizando
Vsa Tenso de sada do Arduino. fotodiodos emissores e receptores de luz, processo o qual
Vled Tenso do diodo emissor infravermelho ser mais bem apresentado no tpico II-B.
Re Resistor do emissor O sistema do seguidor utiliza uma linha branca contnua
Cnt Coeficiente negativo de temperatura em um fundo preto no seu caminho durante sua trajetria.
Esta linha tem que ser de no mnimo 15 milmetros de
I. INTRODUO largura, a fim de ter um funcionamento com um menor
ndice de falhas. A captura de dados do sensor armazenada
Cada vez mais a robtica aliada s tcnicas de inteligncia por um curto perodo de tempo de forma que, caso o seguidor
artificial e vrias formas de controle, tm evoludo e se perca a trilha, ele executa a ltima ao armazenada at
tornado uma potente geradora de oportunidades para o encontrar a linha novamente, que melhor analisado no item
avano da cincia. Atualmente, os robs j no so mais III.
fixos no seu ambiente e tampouco exclusivos na indstria.
Hoje j se fala em robs que interagem com os seres II. DESCRIO DO PROJETO
humanos, facilitam a sua vida, proporcionam diverso e
comodidade, tomam decises no pr-programadas, O projeto do seguidor de trilha teve incio em um torneio
aprendem com movimentos, erros e acertos e exploram de robtica promovido pelas entidades CONSELT (Empresa
ambientes desconhecidos. Um dos grandes avanos das Junior em Engenharia Eltrica) e PET Eltrica (Programa
de Educao Tutorial da Engenharia Eltrica), sendo ambas
da Faculdade de Engenharia Eltrica da UFU. O mesmo fora
dividido basicamente em trs etapas, sendo elas, mecnica,
eletrnica e programao. A alimentao do circuito,
motores e microcontrolador, foram promovidos atravs de
uma bateria de Ltio-Polmero 3S, ou seja, 11,1V, e 2200
mAh de capacidade de armazenagem de carga.

1
A. Mecnica 5) Sensor - Na placa de sensor foi feito uma proteo
A parte mecnica do seguidor de trilha envolveu, alm de utilizando cola quente e chapa de fenoltio para que os
uma anlise experimental, um breve estudo analtico acerca componentes do mesmo no sofressem com os possveis
de centro de gravidade, anlise considerada de suma impactos que viessem a ocorrer. Esta foi acoplada
importncia, visto que a falta de estabilidade na planta pode carroaria do rob utilizando dobradias de ferro, assim, na
implicar uma instabilidade no controle. Foi feito tambm um rampa o vetor de sensores pde se movimentar de tal forma
ajuste minucioso nas rodas utilizadas para que houvesse um que se mantinha sempre o mais prximo possvel da linha
atrito bom com a pista. branca.

1) Centro de gravidade - Para o carrinho ficar com uma B. Eletrnica


estabilidade prxima do perfeito, decidiu-se por utilizar o De acordo com o ponto de vista do grupo o qual
centro de gravidade da seguinte forma: desenvolveu o projeto, a parte eletrnica foi relativamente
Dividiu-se a distncia entre o eixo traseiro e dianteiro em simples, quando comparado criao da estrutura mecnica
trs partes de 4,67 cm. A partir de estudos realizados do carrinho, e de baixo custo. Tal fato foi facilitado
anteriormente sabe-se que o centro de gravidade de um principalmente pela plataforma de aprendizagem Arduino a
carrinho deve se localizar na primeira tera parte e entre os qual possui como microcontrolador o AtMega.
eixos. O peso pde ser distribudo com a ajuda da bateria de O AtMega apresentou-se o mais propicio s condies do
ltio polmero com trs clulas, utilizadas para alimentar o projeto, pelo fato deste no necessitar de um hardware muito
circuito, Arduino e motores, em consonncia com a poderoso. Um fato importante que possibilitou a
referncia [3]. implementao do controlador de forma mais acessvel para
os leigos na rea, foi o fato do software do Arduino ser open-
2) Carroceria - A base do rob foi feita com madeira source, posssibilitando aos usurios o acesso a diversas
compensada de 4(quatro) mm de espessura. A escolha do bibliotecas j escritas e pr-definidas por outros
material deveu-se ao fato de que o mesmo possui um baixo programadores.
custo de aquisio, resistente e extremamente leve. Uma
tima opo para a confeco da carroaria seria com placas 1) Microcontrolador - Nesse projeto foi utilizado o
de carbono, estas no pesam quase nada (preocupao devida Arduino UNO (Fig. 2), uma plataforma open-source de
limitao de peso do prottipo, proposta pela organizao computao fsica baseada no microcontrolador ATMega-
do torneio, de 900g) e so abruptamente resistentes, sendo 328, que engloba um software e um hardware, de acordo com
estas utilizadas principalmente em aeromodelos. a referncia [2]. Tal plataforma tem sido destaque em muitos
projetos tecnolgicos, porm ainda pouco utilizado por
3) Rodas As rodas traseiras so de carrinho de beb com grande parte dos pesquisadores, devido, principalmente, a um
15 cm de dimetro e massa equivalente a 110g, cada uma. preconceito pela facilidade.
Para a roda dianteira, utilizou-se uma roda boba na frente, Uma das grandes vantagens do Arduino em relao a
a qual possui a funcionalidade de direcionar o carrinho. Esta, alternativas para controlar um sistema, so os Shields, placas
poderia ter sido confeccionada com retentores, rodas de 1 e que aperfeioam as capacidades da plataforma que podem ser
alguns arames de ao, formando assim uma bequilha que plugadas no mesmo. Atualmente existe uma vasta opo de
tambm gira 360 em torno de seu eixo. Shields como, ethernet, bluetooth, motor shield, LCD, sensor
O dimetro maior na roda traseira possibilitou que o ultrassnico, dentre tantos outros.
carrinho percorresse um maior caminho, porm, dificultou
um pouco o controle, visto que as rodas possuem uma inrcia
muito grande.

4) Motores - Foram utilizados dois motores (Fig. 1) de


reduo 50:1, 174 rpm, alimentao de 7,2 Vdc, torque de
7,13 Kg/cm com encoder acoplado ao mesmo, contudo este
no foi utilizado devido ao tempo limitado para desenvolver
o projeto. Cada motor foi acoplado s rodas traseiras,
fazendo com que o movimento de uma fosse independente da
outra.

Fig. 2. Plataforma Arduino.

2) Ponte-H - Para controlar os motores por PWM,


utilizou-se a ponte-H L298N (Fig. 3) a qual possui sada para
dois motores e alimentada com tenso de 12V. O
dispositivo, alm de facilitar o controle PWM dos motores,
Fig. 1. Motor DC utilizado no projeto. permite que os mesmo sejam controlados
independentemente. Os fios do motor so conectados na

2
ponte-H e da mesma saem outros dois fios que, neste caso, utilizados no conversor A/D foram definidos empiricamente
foram conectados aos pinos de entrada digitais PWM, conforme se obtivesse uma melhor variao de tenso.
respectivamente 9 e 10, do Arduino. Os fios para Dependendo dessa leitura e do controle utilizado tem-se a
alimentao do motor saram tambm do L298N e foram reao do motor.
conectados bateria. O Arduino capta as informaes de um sensor analgico
atravs da funo analogRead() e pode enviar as informaes
para o sensor atravs da funo analogWrite(), como
explicado na referncia [5]. Dessa forma, quando o seguidor
de trilha realizar uma curva, esse movimento ser salvo na
memria da plataforma e enviar para o sensor, e assim ir
fazendo para cada curva.
Como sensores analgicos captam um sinal de 0 at 1023
bits, a grandeza medida foi designada a partir do shield LCD
(Fig. 5). Utilizando os sensores e este LCD, pegaram-se os
Fig. 3. Ponte-H L298N. valores das cores da pista, faixa de bits entre 200 e 300
significa que est lendo a cor branca e entre 700 e 900
3) Sensoriamento - Foram utilizados treze receptores e corresponde a cor preta, e o controle procura direcionar o
outros treze emissores de luz (fotodiodos), oito resistores de carrinho de acordo com a lgica utilizada baseando nesta
220 e cinco de 2200 e uma placa de fenolite. A placa de faixa de bits, conforme referncia [1].
sensor foi confeccionada de tal modo que na curva de
noventa graus quatro receptores e emissores de luz ficassem
mais a esquerda, e um par de componentes mais a direita,
sendo assim, o sensor poderia identificar a linha branca na
horizontal caracterizando a curva de 90 (Fig. 4).
Os outros oito fotodiodos foram posicionados no centro
do sensor para que a linha pudesse ser identificada com
grande preciso. A proteo envolvendo o sensor foi feita
para que houvesse uma menor incidncia de luz do ambiente,
assim a leitura no foi prejudicada, e para proteger os
componentes de possveis pancadas. Fig. 5. Shield LCD

Os sensores digitais funcionam atravs de um sinal, HIGH


ou LOW, sendo que HIGH corresponde a 5V e LOW a 0V,
processo anlogo ao de uma chave. A leitura das entradas
digitais so feitas atravs da funo digitalRead() e a
gravao das mesma realizada atravs da funo
digitalWrite(). Na referncia [6] h uma explicao detalhado
de tais funcionalidades.
Fig. 4. Esquema da placa de sensor.
C. Programao
O dimensionamento dos resistores dos emissores foi bem O software utilizado para compilar os programas,
simples. Partindo do pressuposto que o LED (fotodiodo) processing, disponibilizado no prprio site do Arduino,
consome de 10 mA a 25 mA, em media, e que a queda de sendo esse gratuito e multiplataforma. O ambiente grfico do
tenso em um LED infravermelho de 1,6V atravs da mesmo de fcil compreenso e autoexplicativo.
formula U=RI temos que:
U = Vsa - Vled
U = [5 V (sada Arduino) 1,6V] = 3,4 V
I = 15 mA
Re 220 ohms
Foi colocado um resistor para cara emissor devido ao
coeficiente negativo de temperatura (cnt). (Cnt = quanto
maior a temperatura de um semicondutor menor a
resistncia.). Portanto para que todos os LEDs sejam
controlados da mesma maneira necessrio um resistor pra
cada. Caso fosse um resistor para todos, um LED
provavelmente puxaria mais corrente, pois um componente
real e no ideal. Com isso, este aumentaria sua temperatura,
reduziria a resistncia e esse ciclo se repetiria at o fotodiodo
emissor queimar.
A leitura do sensor foi feita atravs de um conversor A/D
no caso do Arduino de 10 bits (0 a 1023). Os resistores

3
da leitura PWM de cada motor, assim quando o sensor
detectasse a curva, as rodas se movero em sentidos
contrrios e com velocidades distintas.

A IDE do Arduino inclui automaticamente todas as


bibliotecas bsicas que utilizamos em C/C++, alm de mais
uma gama de bibliotecas para controle de motores de
corrente contnua, servomotores, displays de LCD, recepo
de sinais de sensores, entre tantos outros, como citado na
referncia [7].

Fig. 6. Ambiente grfico do Processing.

Fig. 8. Projeto do seguidor de trilha concludo.

III. ESTRATGIA DE CONTROLE

O controle do carro seguidor de trilha foi feito com um


proporcional derivativo (PD) (Fig. 9), porm devido ao
tamanho do raio da roda utilizada ser grande, a mesma
descreve um proporcional integrativo (PI) na pista, devido
grande inrcia proporcionada por ela. Para ajudar a encontrar
os parmetros exatos que deixam o controle com melhor
resposta, sem oscilaes, foi utilizado um mtodo emprico,
um critrio denominado Ziegler-Nichols, de acordo com a
referncia [4], neste busca-se a melhor forma de ajustar os
parmetros do controlador que proporcionem a melhor
reposta possvel, preferencialmente rpida e sem oscilaes.
Os mtodos empricos garantem uma boa aproximao para a
parametrizao do sistema com erros de no mximo 25%.

Equao 1. Funo de transferncia de um PD, em conformidade


com a referncia [9].
Fig. 7. Linhas de cdigo relacionadas ao controle PD.

O Arduino comunica com o computador atravs de uma


porta USB, assim pode ser feito o upload do programa para o
hardware. A linguagem utilizada bastante simples sendo
uma implementao do Wired e muito parecida com C/C++, O mtodo de Ziegler-Nichols foi desenvolvido a partir de
de acordo com a referncia [8]. simulao de resposta de processos tpicos, e ajustando os
parmetros para obter respostas adequadas. Apesar de no
Na figura abaixo segue um trecho do cdigo relacionado ser um mtodo sofisticado, ainda muito utilizado e permite
ao controle PD. Um dos grandes desafios da competio foi o projeto rpido de controladores. No caso desse rob,
fazer com que o seguidor de trilha fizesse uma curva de 90 utilizamos um projeto baseado na resposta da planta.
sem que o mesmo sasse da pista ou perdesse a trilha. Porm, Inicialmente zeram-se as constantes proporcional Kp e
a lgica para codificao foi relativamente simples, baseado derivativa Kd. Aumenta-se a constante proporcional at que
na posio de cada diodo situado nos extremos do sensor, e o sistema comece a oscilar. No momento em que o mesmo

4
atinja este ponto, necessrio inserir um derivativo no Os autores do artigo agradecem ao Laboratrio de
sistema para corrigir a oscilao. Aumenta-se a constante Controle Digital e Robtica (LCR) pelo auxilio ao emprestar
derivativa at um valor onde ela corrija a oscilao. Foi ferramentas para confeco do projeto. Agradecemos
necessrio um leve ajuste na constante proporcional para tambm o Patrocnio do Airton Borges da Auto Controle
acelerar o sistema. Realiza-se este processo at se obter Modelismo e ao Giancarlo da Gian Aeromodelos.
valores satisfatrios, neste caso obteve-se Kp = 14,5 e Kd =
110000. REFERNCIAS BIBLIOGRFICAS.
Testes prticos foram realizados para identificar na pista
quais os valores lidos pelos sensores correspondiam a cada [1] MARGOLIS, M.; Arduino Cookbook. 01 ed. OReilly
regio, linha branco ou pista preto. A partir desta anlise Media Inc., Sebastopol, California, 2011.
definiu-se o setpoint (referncia) do sistema. [2] Acedido em 13 de Maro de 2012 em,
http://www.Arduino.cc/en.
IV. RESULTADOS [3] SPONG, M.; VIDYASAGAR, M.; HUTCHINSON, S.;
Robot Dynamics and Control. Wiley, New York, USA,
O rob seguidor de trilha descrito neste documento, 2005.
respondeu razoavelmente bem ao controle aplicado, pois [4] OGATA, K.; Modern Control Engineering. Prentice-
obteve uma resposta rpida. Porm ao realizar as curvas, Hall ed., Englewood Cliffs, New Jersey, USA, 1970.
inclusive a de noventa graus, ele perdera a linha branca por [5] BANZI, M.; Getting Startes with Arduino. OReilly
alguns instantes. Portanto, chegou-se a concluso de que Books, California, USA, 2009.
estes problemas foram causados principalmente pelo grande [6] SANTOS, P.; Introduo ao Arduino. Acedido em 20 de
raio da roda, pois a mesma possua uma inrcia muito janeiro de 2012 em,
grande, fato que tornara complicado de estabelecer uma http://www.ebah.com.br/content/ABAAABNcsAC/apres
lgica mais eficiente para o controle sanar completamente a entacao-Arduino.
instabilidade do sistema. [7] Introduo ao Arduino. Adaptado por: Cirineu Carvalho
Porm nas retas e rampa o prottipo se manteve alinhado Fernandes e Geilton Teles Lopes. Acedido em 20 de
e ganhou algum tempo por ter percorrido uma velocidade Janeiro de 2012 em,
boa em tais momentos do percurso. No aclive acentuado, ele http://www.ebah.com.br/content/ABAAABecwAE/intro
se comportou de forma incrvel, logo se constatou que o ducao-ao-Arduino-get-starter-com-Arduino.
torque modelado para o mesmo foi excelente para a situao [8] SANTOS, P. N.; Arduino: Introduo e Recursos
proposta. Avanados, 2009; Acedido em 13 de Janeiro de 2012
No torneio, a equipe que construiu o projeto descrito neste em, http://pt.scribd.com/doc/57058743/tutorial-Arduino.
documento terminou em 6 lugar, completando de 42 metros [9] ARAJO, F. M. U.; Sistemas de Controle, 2007;
de extenso o circuito em cerca de 33s atingindo a mdia de Acedido em 15 de Janeiro de 2012 em,
1,27m/s. Com poucos ajustes na mecnica e uma mudana http://www.ebah.com.br/content/ABAAAA6bYAG/siste
do tipo de controlador, provavelmente, ser possvel sanar mas-controle.
grande parte dos pontos negativos e torna-lo um potente
concorrente.

V. CONCLUSES

O projeto descrito nesse artigo foi de grande valia para os


envolvidos no mesmo, pois proporcionou uma gama de
conhecimentos que, a priori, nenhum componente no grupo
possua. Conceitos como controladores, novas ferramentas
para desenvolvimento de robs e sistemas autnomos para
controle de mquinas, foram explorados minuciosamente
para que tudo fosse feito de acordo com o que atual mercado
tecnolgico e cientfico exige, como praticidade, processos
automatizados, diminuir a exposio de humanos a perigos,
dentre outros.
O custo total de construo foi o menor possvel, porm
mantendo um bom desempenho. Logo se percebe que
totalmente possvel desenvolver alguns tipos de robs com
gastando em mdia cerca de R$ 250,00.
Ficou claro durante o desenvolvimento do prottipo 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.

AGRADECIMENTOS