Você está na página 1de 48

UNIVERSIDADE ESTADUAL DO SUDOESTE DA BAHIA - UESB

DEPARTAMENTO DE CINCIAS EXATAS

ROB SEGUIDOR DE LINHA AUTNOMO UTILIZANDO O CONTROLADOR


PROPORCIONAL-DERIVATIVO EM UMA PLATAFORMA DE HARDWARE /
SOFTWARE LIVRE

ANDRIQUE FIGUEIRDO AMORIM

VITRIA DA CONQUISTA - BAHIA

2011
UNIVERSIDADE ESTADUAL DO SUDOESTE DA BAHIA - UESB
DEPARTAMENTO DE CINCIAS EXATAS

ROB SEGUIDOR DE LINHA AUTNOMO UTILIZANDO O CONTROLADOR


PROPORCIONAL-DERIVATIVO EM UMA PLATAFORMA DE HARDWARE /
SOFTWARE LIVRE

ANDRIQUE FIGUEIRDO AMORIM

Monografia apresentada ao Departamento


de Cincias Exatas da Universidade
Estadual do Sudoeste da Bahia como parte
dos requisitos para a concluso do curso de
Cincia da Computao.

Orientador: Prof. DSc. Roque Mendes


Trindade

Co-orientador: Prof. MSc. Camilo Carvalho

VITRIA DA CONQUISTA - BAHIA

2011

2
Aos meus pais, Yvone e Wilde,
incansveis incentivadores da minha
formao profissional, exemplo de
luta e determinao

Dedico!

3
AGRADECIMENTOS

Deus pela vida e por todas as conquistas!


Aos meus filhos David e Andressa e, minha esposa Brbara pelo amor,
pacincia e incentivo.
Ao meu irmo Wlimar pelo companheirismo.
toda minha famlia pelo carinho.
.Ao professor Roque pela orientao e contribuio intelectual.
Ao professor Camilo pela co-orientao, confiana e apoio.

4
LISTA DE TABELAS

Especificao dos motores ML-30:1............................ 30


Tabela 1 -
Tabela 2 - Principais caractersticas do microcontrolador............. 36

Tabela 3 - Ajuste da constante Proporcional................................. 43

Tabela 4 - Ajuste da constante Derivativa..................................... 44

5
LISTA DE FIGURAS

Placa me de um PC...........................................................
Figura 1 -
Figura 2 - Microcontrolador..................................................................

Figura 3 - Placa Arduino......................................................................

Figura 4 - Estrutura de um motor de corrente contnua.......................

Figura 5 - Sistema de Malha aberta.....................................................

Figura 6 - Sistema de malha fechada..................................................

Figura 7 - Atuao do PWM................................................................

Figura 8 - Placas de Pollicarbonato....................................................

Figura 9 - Parafusos e porcas de sustentao das placas.................

Figura 10 - Placa inferior com os componentes eletrnicos dispostos..

Figura 11 - Matriz de sensores de reflexo QTR-8RC..........................

Figura 12 - Disposio da matriz de sensores......................................

Figura 13 - Motor CD ML-30:1..............................................................

Figura 14 - Rodas e Hub......................................................................

Figura 15 - Estrutura de sustentao dos motores...............................

Figura 16 - Roda Passiva......................................................................

Figura 17 - Sabertooh 2x5.....................................................................

Figura 18 - Conexo dos motores, energia e sadas do Sabertooh


2x5.......................................................................................

Figura 19 - Lynxmotion 12.0 vdc Ni-MH 1600 mAh................................

Figura 20 - Interruptor liga/ desliga........................................................

Figura 21 - Microcontrolador Arduino Duemilanove...............................

6
Figura 22 - Conexo da matriz de sensores e dos motores na placa
Arduino................................................................................

Figura 23 - Rob.....................................................................................

Figura 24 - Ambiente de programao do Arduino.................................

Figura 25 - Numerao dos sensores da matriz.....................................

Figura 26 - Ponto ideal (Setpoint do Rob sobre a linha


preta.....................................................................................

Figura 27a- Rob tendendo para direita.................................................

Figura 27b- Rob tendendo para esquesda............................................

7
SUMRIO

RESUMO 10

1- OBJETIVOS 11

1.1.1 OBJETIVO GERAL 11

1.1.2 OBJETIVOS ESPECFICOS 11

1.2 - JUSTIFICATIVA 11

2 - FUNDAMENTAO TERICA 12

2.2 MICROCONTROLADORES 14

2.2.1 - ARDUINO 15

2.3 MOTOR DE CORRENTE CONTNUA 18

2.4 FOTO SENSOR

2.5 PWM

2.6 SISTEMAS DE CONTROLE 19

2.6.1 CONTROLADOR LIGA/DESLIGA 21

2.6.2 CONTROLADOR PROPORCIONAL (P) 22

2.6.3 CONTROLADOR DERIVATIVO (D) 22

2.6.4 CONTROLADOR PROPORCIONAL-DERIVATIVO (PD) 23

2.7 ROBS SEGUIDORES DE LINHA

3 DESENVOLVIMENTO PRTICO

3.1 ESTRUTURA

3.1.1 ESTRUTURA FSICA

3.1.2 MDULO DE SENSOR

3.1.3 MDULO DE DESLOCAMENTO

3.1.4 MDULO DE POTNCIA

3.1.5 MDULO DE ENERGIA

8
3.1.6 MDULO CONTROLADOR

3.2 O ROB

3.3 O AMBIENTE

3.2 SOFTWARE

4 CONCLUSO

5 REFERNCIAS BIBLIOGRFICAS

9
RESUMO

Cada vez mais os robs esto fazendo parte do cotidiano das pessoas,
seja em pequenos dispositivos eletromecnicos, seja em tarefas industriais
funcionando 24 horas por dia continuamente sem sentir cansao, stress ou
outras limitaes dos seres humanas. O custo para a instalao de
mecanismos robotizados tornou-se bem mais acessvel possibilitando a
insero de robs na educao, no meio empresarial e at na vida domstica.
Entretanto, na realidade, no h nenhum rob capaz de funcionar
perfeitamente e ainda no cometer erros.

Este projeto implementou um controlador proporcional-derivativo (PD)


em um rob mvel autnomo construdo dentro de uma plataforma de software
e hardware livre (open source), que melhora a performance de execuo do
rob reduzindo erros sobre um caminho feito com uma fita preta em uma
superfcie branca e lisa. O rob foi capaz de seguir a linha preta de forma
eficaz deslocando-se ao longo do caminho suavemente sem nenhum
problema.

10
OBJETIVO GERAL

O objetivo principal deste projeto desenvolver um rob s eguidor de


linha autnomo, com um controlador proporcional-derivativo (PD) que otimize o
trajeto do rob sobre uma linha preta reduzindo erros no percurso, construdo
em uma plataforma de hardware e de software livre (open source).

OBJETIVOS ESPECFICOS

Compreender a teoria e a aplicao de aes de controles industriais do


tipo proporcional, integral e derivativo (PID) em robs de pequeno porte;
Aplicar a tecnologia PWM (modulao por largura de pulso) no controle
de potncias de motores DC;
Apresentar uma soluo eficaz de fcil implementao para robs
seguidores de linha;
Difundir o microcontrolador Arduino como plataforma de hardware Open
Source para o uso de aplicaes em robtica.

JUSTIFICATIVA

Robs seguidores so mquinas mveis programadas para detectar e


seguir uma linha. Esse caminho pode ser uma linha preta sobre uma superfcie
branca ou o inverso de forma que o rob realize movimentos.

11
INTRODUO

H muito tempo o homem vem idealizando reproduzir a si prprio, por


meios mecnicos, criando mquinas capazes de executar e suprir com
propriedade as tarefas humanas. Grandes pensadores historicamente
conhecidos como Leonardo da Vinci e Nicola Tesla costumavam dedicar
grande parte do tempo em estudos direcionados projeo da construo de
mecanismos apropriados para copiar ou simular algumas caractersticas da
capacidade humana. Pode-se dizer que estes inventos j continham
embrionariamente a idia da Robtica. Mas no princpio do sculo XX, com a
Revoluo Industrial, que a Robtica aparece com maior fora, devido
necessidade de intensificar a produo e melhorar a qualidade dos produtos.
Surgem, neste perodo, os primeiros robs com aplicaes industriais,
repetindo infinitamente e com preciso milimtrica, uma srie de operaes
previamente programadas (ZILLI, 2004; SILVA, 2009; BURLAMAQUI, 2010).

Os termos Robtica e rob esto intimamente associados. Enquanto o


primeiro refere-se rea do conhecimento, o segundo diz respeito ao produto
desta cincia. Rob vem do tcheco robota e significa trabalho forado. Foi
usado pela primeira vez em 1921 por Karel Capek em seu romance Rossums
Universal Robots. J o termo Robtica foi criado em 1948 pelo escritor de
Fico Cientifica, Isaac Asimov, em seu romance "I, Robot" (Eu, Rob). Os
robs de Capek eram mquinas de trabalho incansveis, de aspecto humano,
com capacidades avanadas mesmo para os robs atuais (ZILLI, 2004).

A Robtica uma rea de estudo multidisciplinar que se apoia nos


conhecimentos de mecnica, eletrnica, fsica, matemtica, biologia,
informtica e inteligncia artificial. Tem por objetivo automatizar tarefas atravs
de tcnicas de programao e algoritmos orientados construo de robs
(SILVA, 2009).

Nos dias atuais, a Robtica se configura numa rea de crescente


desenvolvimento. Isto decorre dos inmeros recursos que os sistemas de

12
microcomputadores vem oferecendo. Grandes centros de tecnologia se
ocupam incansavelmente da criao de novas tecnologias, criando robs
capazes de lidar com tomadas de deciso cada vez mais complexas.

MICROCONTROLADORES

So dispositivos de tamanho reduzido, capazes de realizar controle


de mquinas e equipamentos eletro-eletrnicos atravs de programas. So
dispositivos que renem, em um nico circuito integrado, diversos
componentes de um sistema computacional simplificado. Em outras palavras,
podemos afirmar que um microcontrolador um pequeno microcomputador
integrado em um nico chip. Por se tratar de um componente programvel,
bem verstil, podendo ser empregado em aplicaes das mais diversas.
(CORTELETTI, 2006) .

Os microcontroladores representam um grande avano da tecnologia e


atualmente esto fazendo parte da vida cotidiana das pessoas, sendo
encontrados na maioria dos equipamentos eletrnicos modernos, como:
celulares, televises, DVDs, fornos de microondas, aparelhos de CD, cmaras
digitais, filmadoras etc. Esta aplicabilidade dos microcontroladores se deve ao
fato dele ser mais verstil e funcional, j que, num minsculo chip, dispe de
todos os elementos necessrios para fazer uma mquina funcionar
(ZELENOVSKY e MENDONA, 2010).

A versatilidade, funcionalidade e aplicabilidade dos microcontroladores,


o tornam categoricamente diferente dos microprocessadores. Enquanto que,
para ser usado, o microprocessador necessita da adio de outros
componentes, como memria e perifricos, o microcontrolador no requer
componentes externos. Isto agrega ao microcontrolador uma vantagem
importante, pois, medida que todos os seus componentes esto contidos no
mesmo encapsulamento, a sua dimenso passa a ser infinitamente menor,
conforme as Figuras 1 e 2, exigindo, para o seu funcionamento, um consumo
de energia tambm menor, o que reduz o custo de sua produo. Por este

13
motivo, os microcontroladores se tornaram bem mais utilizados para projetos
de sistemas embarcados.

Figura 1. Placa me de um PC

Figura 2. Microcontrolador

PLATAFORMA ARDUINO

A Plataforma Arduino teve sua origem em Ivrea, na Itlia, em 2005. O


seu surgimento ocorreu quando um grupo de acadmicos da rea de
computao, formado por Massimo Banzi, Tom Igoe, Gianluca Martino e David
Mellis, insatisfeitos com a complexidade com que os pacotes de computao

14
fsica, oferecidos no mercado, se apresentavam, desenvolveram um novo
projeto, com plataforma de software e hardware mais simples e com um nvel
menor de exigncia de conhecimentos de engenharia da computao. Este
projeto obteve sucesso no mbito acadmico, atraindo a ateno do
engenheiro espanhol, David Cuartielles detentor de grande experincia em
microcontroladores, que se interessou pelo desenvolvimento da plataforma, em
carter comercial (ARDUINO, 2010).

O propsito desta equipe foi o de criar um ambiente de programao e


uma placa padro que fosse capaz de suportar um microcontrolador, com
acesso ilimitado e livre, possibilitando o uso e manuseio tanto do hardware
como do software. A plataforma criada foi validada na prpria universidade,
sendo prontamente aprovada pelos estudantes que, mesmo no possuindo
conhecimentos profundos em computao fsica e robtica, puderam executar
projetos mais complexos (ARDUINO, 2010).

Arduino uma plataforma livre e flexvel, fcil de usar tanto o software


quanto o hardware e, por isso, pode ser usada por aqueles que se interessam
em criar objetos ou ambientes interativos, apresenta algumas caractersticas
que a distingue das demais. A mais importante diz respeito concepo open-
source que atribui a ela duas importantes peculiaridades: a primeira de
possibilitar a versatilidade e a segunda, de ser colaborativa. Isto porque
sendo open-source ela disponibiliza no s a documentao do projeto original
da plataforma, mas tambm as placas e cdigos de aplicao desenvolvidos a
partir dela, atravs da comunidade virtual criada para este fim, o
www.arduino.cc. Atualmente este stio se constitui como a grande referncia
acerca do Arduino para todo o mundo (Figura 3).

Outra caracterstica refere-se placa me. Esta composta por um


microcontrolador (crebro), desenvolvido pela empresa Atmel. Qualquer
pessoa com algum conhecimento em eletrnica pode adquirir este crebro por
um preo accessvel nas lojas especializadas ou na grande rede mundial ou
construir sua prpria placa sem pagar por direitos autorais (ARDUINO, 2010).

15
Figura 3. Placa Arduino

Fonte: ROBOTSHOP (2010)

O ambiente e a linguagem de programao do Arduino tambm


merecem destaque. A linguagem facilita a interao com os perifricos, tais
como: sensores de luz, de som, ultrassom, infravermelho e diversos tipos de
motores. E o ambiente faz meno ao seu IDE (Integrated Development
Environment ou Ambiente Integrado de Desenvolvimento) que implementado
na linguagem Java, funcionando em vrios sistemas operacionais, tais como:
Windows, Linux e MacOS (ARDUINO, 2010).

Arduino uma plataforma de hardware open source, baseada em um


microcontrolador da empresa Atmel com suporte de conexo via serial ou USB
com o computador para enviar ou receber dados e/ou programas. Significa um
hardware genrico o suficiente para permitir a criatividade dos desenvolvedores
em elaborar aplicaes que permitam interao com o mundo real, ou seja,
computao fsica, atravs de diversos sensores e atuadores. As ferramentas
que do suporte a programao de um microcontrolador so coletivamente
denominada de software bsico. Este usado continuamente e, portanto, deve
ter eficincia na execuo. Desta forma, uma linguagem para tal aplicao
prov uma execuo rpida. Alm disso, deve ter recursos de baixo nvel que

16
permitam ao software fazer interface como os dispositivos externos como:
atuadores e sensores. A linguagem C oferece todas essas ferramentas, uma
vez que possibilita o acesso a dispositivos de hardware. Sua execuo
eficiente e no sobrecarrega o usurio com muitas restries de linguagem. A
plataforma Arduino aproveita todas as funcionalidades desta linguagem e ainda
acrescenta uma dezena de funes e mtodos para facilitar a programao de
dispositivos fsicos.

MOTOR DE CORRENTE CONTNUA

Motores eltricos convertem energia eltrica em mecnica. Existem


motores de corrente contnua (CC) (Figura 4) e de corrente alternada (CA),
cada um com diversas variaes. Motores de corrente alternada so
geralmente usados para mquinas grandes e recebem energia diretamente da
rede de distribuio de energia. Segundo Jones et al. (1999), robs mveis
usam tipicamente corrente contnua, pois sua fonte de energia uma bateria.

Figura 4: Estrutura de um motor de corrente contnua

Fonte: ANTUNES (2009)

Para as necessidades de locomoco de um rob o motor gira em uma


velocidade muito alta e com um torque muito baixo. Para inverter essa relao
o motor deve ser ligado a uma caixa de reduco que produz uma nova sada
que gira mais devagar, porm com um torque maior. Muitos motores CC so

17
vendidos com a caixa de reduo j instalada, como o caso do adquirido para
este projeto.

Os motores de corrente contnua tem pelo menos dois terminais que ao


se aplicar uma tenso nestes terminais o motor gira em um sentido e
invertendo a polaridade da entrada o motor gira no sentido contrrio.

SISTEMA DE CONTROLE

Um Sistema de Controle um conjunto de dispositivos que mantm o


valor de uma ou mais grandezas fsicas dentro de um determinado limite, de
acordo com o valor programado em sua entrada. Este sistema composto de
um processo a ser controlado, um atuador, que o dispositivo capaz de alterar
o valor fsico da grandeza, um controlador, responsvel pela parte inteligente
do sistema, calculando quanta energia o atuador dever entregar ao sistema
para mant-lo estvel. Estes elementos podem ser eletro-eletrnicos,
mecnicos e at mesmo o prprio ser humano. Por exemplo, no controle de
velocidade de um automvel, o atuador poderia ser considerado como o p do
motorista sobre o acelerador, o sensor seria composto pelos seus olhos
observando o velocmetro e o controlador seu prprio crebro. Se o ponto de
controle fosse 60 km/h e a velocidade observada no velocmetro fosse 55 km/h,
o crebro processaria a informao vinda dos olhos e mandaria acionar o p
sobre o acelerador, aumentando a velocidade e quando esta estivesse mais
prxima do valor programado seria dado o comando de diminuir a presso
sobre o acelerador at que a velocidade se estabilizasse prxima do ponto de
controle.

O Sistema de Controle pode atuar sobre praticamente qualquer


grandeza, desde que haja a necessidade de control-la, porm as mais
comuns so: temperatura, presso, vazo, nvel de lqidos ou slidos,
velocidade e posicionamento linear ou angular.

18
Tipos de sistemas de controle

Os Sistemas de Controle so classificados quanto sua estrutura ou


desenho como sendo em malha aberta ou malha fechada, e ainda quanto ao
tratamento que as informaes sofrero como analgicos e digitais. O Sistema
em Malha Aberta composto pela entrada, controlador e atuador, sem a
utilizao de realimentao do sistema por meio de um sensor, ou seja, aps a
atuao do controle no feita a verificao de como esta atuao influenciou
o sistema, nem mesmo se o ponto de controle foi atingido, pois, sem um sensor
em contato com o processo torna-se impossvel esta determinao. A estrutura
de um sistema em malha aberta (Figura 5) apresenta o seguinte diagrama:

Figura 5: Sistema de malha aberta

Os Sistemas de malha fechada (Figura 6) apresentam a caracterstica


de utilizar um sensor como sinal de realimentao, ou seja, qualquer distrbio
no processo sentido por este que envia um sinal compatvel com o
controlador que, por sua vez, pode levar esta situao em considerao na sua
atuao. Nos Sistemas de Controle industriais, a maioria feita em malha
fechada.

Figura 6: Sistema de malha fechada

19
Os sistemas analgicos ou digitais, dizem respeito forma matemtica
como as variveis so tratadas, internamente ao sistema, bem como aos
componentes deste. Num sistema analgico, por exemplo, o controle feito por
um circuito composto por componentes eltricos e eletrnicos que tratam sinais
eltricos proporcionais grandeza e demais variveis do sistema. Num sistema
digital, o controle feito por um programa, auxiliado por conversores do tipo
analgico-digital e digital-analgico, que permitem transformar variaes
fsicas, por natureza analgicas, em sinais compreensveis pelo programa e
seu resultado, por natureza digital, em sinais novamente compatveis com as
grandezas fsicas, ou seja, as grandezas e variveis externas ao sistema so
analgicas e internamente so tratadas de forma digital, atravs dos
conversores. A tecnologia digital mais atual e traz algumas vantagens, pois,
qualquer alterao no sistema pode ser feita apenas mudando um programa,
dispensando a necessidade de mudanas em componentes e configuraes
fsicas, bem como as demais vantagens de sistemas microprocessados.

AOES DE CONTROLE

Controle liga-desliga:

Tambm chamado On-Off. O controlador compara o sinal de entrada,


que indica o valor atual da grandeza (PV ), com o valor determinado como
ponto de controle, conhecido como Set Point ( SP ), se o valor atual supera o
Set Point, desliga o atuador, se o Set Point supera o valor atual, liga o atuador,
considerando, por exemplo, um controle de aquecimento.

As vantagens deste controlador so a simplicidade e o baixo custo, a


desvantagem a oscilao da sada em torno do Set Point do controlador, a
chamada histerese, no garantindo preciso, apenas uma proximidade do valor
do processo ao valor programado, o que pode causar desgaste do atuador,
devido aos acionamentos freqentes.

20
Controle proporcional - P

O controlador entrega energia ao processo com valor proporcional


diferena entre o Set Point e o valor atual da grandeza (PV), onde esta
diferena chamada de erro. Em outras palavras, se no houver diferena
entre SP e PV, ou seja, erro nulo, significa que a grandeza a ser controlada
est estabilizada, no necessitando de nenhuma atuao do controlador, e a
partir do momento que houver diferena, o controlador atua, com valor tanto
maior quanto maior for o erro. Este tipo de controlador , ainda, relativamente
simples e de baixo custo, porm em alguns casos, dependendo do processo a
ser controlado, pode no atingir a estabilidade desejada, inclusive gerando
oscilao permanente, conforme ajuste de seu ganho.

Mesmo quando atingido o ponto de estabilidade, ou seja, quando o valor


atual se iguala ao Set Point, este tipo de controlador pode apresentar o
chamado erro de regime permanente, com a tendncia do valor permanecer
pouco abaixo do ponto de controle, prejudicando a preciso desta estratgia.

Ex.: Esta estratgia de controle utilizada em alguns sistemas de controle de


velocidade de motores.

Controle Integral - I

O controlador integral produz uma sada cujo valor o somatrio do


sinal de erro em um determinado instante de tempo, ou seja, a integral do erro.
O valor de sada do controlador aumenta enquanto o erro existir, at atingir o
valor mximo na sada, e quanto maior o erro mais rpido ser este aumento.

Como a sada depende do tempo durante o qual houve erro, este


controlador elimina o erro de regime constante, porm apresenta a
caracterstica de resposta lenta.

Controle derivativo - D

No controle derivativo a sada do controlador proporcional taxa de


variao do sinal de erro, ou seja, a derivada do erro. De forma simplificada,

21
esta pode ser entendida como a taxa de variao do erro em relao ao tempo.
Se o erro cresce rapidamente, sua sada ser um valor grande; se o erro
cresce lentamente, sua sada apresentar um valor menor. Este resultado
indica a tendncia de variao da grandeza a ser controlada. Tem a
caracterstica de responder rapidamente a qualquer variao da grandeza em
relao ao Set Point.

Esta estratgia muito utilizada em sistemas de posicionamento,


movimentao de ferramentas e controle de rotao onde so exigidas aes
rpidas frente s modificaes nas condies de operao ou perturbaes.

O controle apenas derivativo no seria vivel na prtica, pois, est ligado


tendncia de variao e no ao valor absoluto do erro.

Controle proporcional e derivativo - PD

Este controle a combinao entre o controle proporcional e o


derivativo.

A ao do controle derivativo somada ao controle proporcional resulta


num controlador com resposta rpida no momento do surgimento do erro,
entregando um valor alto de energia ao processo, o qual se reduz medida
que o erro se reduz, ou seja, o valor da grandeza controlada se aproxima do
Set Point.

A ao derivativa quando combinada com a ao proporcional tem


justamente a funo de "antecipar" a ao de controle a fim de que o processo
reaja mais rpido. Neste caso, o sinal de controle a ser aplicado proporcional
a uma predio da sada do processo.

Se este tipo de controle for aplicado a um processo cuja resposta natural


rpida, o sistema poder ficar instvel, por exemplo, nos sistemas de controle
de presso que usualmente apresenta resposta rpida com a ao do atuador.

22
Modulao por Largura de Pulso (PWM)

De acordo com Braga (2002) PWM uma tecnologia de controle de


potncia muito eciente usada para obter um sinal analgico a partir de um
digital, e pode ser aplicada em diversos tipos de motores, alm de outros tipos
de carga como lmpadas, aquecedores eltricos, solenides, etc.

O mtodo PWM consiste em um padro de rpida alternncia entre liga


e desliga de um perodo, na qual, parte do tempo ela estar em estado ativo e
parte do tempo em estado desativado (Figura 7 ).

Figura 7: Atuao do PWM

A quantidade de potncia entregue carga depende da durao de cada


ciclo ativo (duty cycle) do sinal, chamado tambm de pulso. Se a durao do
pulso for a mesma que o intervalo entre os pulsos (duty cycle = 50 %) a mdia
da potncia aplicada na carga de 50 %. medida em que se estende a
durao do pulso a mdia da potncia aplicada carga tambm aumenta na
mesma proporo. Esse processo de controlar a durao do pulso se chama
modulao.

FOTOSENSOR

O fotosensor ou fototransistor um dispositivo que funciona baseado no


fenmeno da fotocondutividade. Ele pode, ao mesmo tempo, detectar a
incidncia de luz e fornecer um ganho dentro de um nico componente. Como
o transistor convencional, o fototransistor uma combinao de dois diodos de

23
juno, porm, associado ao efeito transistor aparece o efeito fotoeltrico. Em
geral, possui apenas dois terminais acessveis, o coletor e o emissor, sendo a
base includa apenas para eventual polarizao ou controle eltrico.

A incidncia de luz (ftons) provoca o surgimento de lacunas na


vizinhana da juno base-coletor. Esta tenso conduzir as lacunas para o
emissor, enquanto os eltrons passam do emissor para a base. Isso provocar
um aumento da corrente de base, o que por conseqncia implicar numa
variao da corrente de coletor n vezes maior, sendo essa variao
proporcional intensidade da luz incidente.

Como a base est normalmente desconectada, a corrente que circula


por ela depender apenas do fluxo luminoso incidente. Assim, na ausncia de
luz, a corrente de base ser zero e o fototransistor estar cortado, resultando
na tenso do coletor igual tenso de polarizao. Quando h luz incidindo, a
tenso no coletor ir diminuir devido ao aumento da corrente.

24
DESENVOLVIMENTO PRTICO

ESTRUTURA FSICA

O corpo do rob constitudo de duas placas de policarbonato (Figura 8)


um material de altssima resistncia ao impacto, com tima transparncia e
moldvel quando aquecido, fornecendo grande facilidade de manuseio.

Figura 08: Placas de policarbonato

As placas de policarbonato possuem dimenses 16 cm de comprimento


por 14 cm de largura, fixas umas s outras atravs de parafusos longos e
porcas (Figura 9) que alm de sustentar a estrutura fsica do rob, possibilitam
a regulagem da altura para melhorar a disposio dos componentes eletrnicos
sobre elas.

Figura 9: Parafusos e porcas de sustentao das placas

25
A placa inferior (Figura 10) abriga os microcontroladores, a bateria, os
dois motores, a roda passiva e a matriz de sensores, todos fixos por meio de
parafusos e porcas.

Figura 10: Placa inferior com os componentes eletrnicos dispostos

A placa superior serve como suporte da chave liga/desliga do rob e


tambm como estrutura de proteo dos componentes eletrnicos localizados
na placa inferior.

MDULO DE SENSOR

A matriz de sensores de reflexo QTR-8RC (Figura 11) utilizada como


um sensor de proximidade ou como um sensor de reflexo proporcionando um
timo foco de aproximao na deteco de bordas e aplicaes de seguidores
de linha.

26
Figura 11: Matriz de sensores de reflexo QTR-8RC

O mdulo um portador conveniente para oito emissores de infra-


vermelhos e receptores (foto transistores) agrupados em pares e espaados
em intervalos de 0,375 polegadas (9,525 milmetros) podendo ser ligado a uma
voltagem de 3,3v ou 5v controlados por um regulador de tenso interna.

Localizada na parte dianteira do rob, a matriz de sensores fica a uma


altura de sete milmetros com os sensores apontados para o cho de forma a
fornecer uma leitura precisa da reflexo da luz sobre a superfcie (Figura 12).

Figura 12: Disposio da matriz de sensores

As oito sadas do mdulo QTR-8RC so independentes e no


necessitam de um conversor analgico-digital, sendo estas algumas das
principais vantagens deste dispositivo.

Especificaes

Dimenses: 2,95 "x 0,5" x 0,125 "(sem os pinos de cabealho


instalados)
Tenso de funcionamento: 3,3-5,0 V

27
Corrente: 100 mA
Formato de sada: digital I / O compatveis
Mnima distncia de deteco: 0,125 "(3 mm)
Mxima recomendada distncia de deteco: 0,375 "(9,5 mm)
Peso sem pinos cabealho: 3,09 g

MDULO DE DESLOCAMENTO

O rob possui dois motores DC do tipo ML-30:1 (Figura 13) dispostos na


parte traseira e responsveis pelo deslocamento de toda a estrutura fsica.

Cada motor pesa aproximadamente 206 g e alimentado por uma


bateria externa com uma voltagem de 12 v podendo atingir at 200 rotaes
por minuto a depender do nvel de energia fornecido.

Figura 13: Motor DC ML-30:1

Mesmo sendo um motor pesado para a estrutura fsica do rob, seu


torque e principalmente a velocidade atingida so satisfatrios para a utilizao
de robs seguidores de linha.

A tabela 1 especifica mais detalhadamente o motor DC utilizado.

28
Tabela 1. Especificao dos motores ML-30:1

ML-30
DESCRIO
12V

Nenhuma velocidade da carga 200 rpm

Amps nominal 700mA

Corrente sem carga 115 mA

Stall atual 3.3A

binrio de bloqueio 194 oz-in (13.969 g cm)

Tenso nominal 12V (pode ser executado mais)

Max Eficincia 50 oz rpm em (g cm-3600) / 161

Relao da engrenagem 30:1

Peso 205.8g

Dimetro 1.46 "(37mm)

Comprimento 2,24 "(56,9 milmetros)

Dimetro do eixo 6 mm - com plano

Comprimento do eixo 0,7 "(18 mm)

As rodas utilizadas so de um composto de borracha e espuma, um


material leve que oferece tima trao e durabilidade, estando conectadas aos
motores por meio de um hub de alumnio (Figura 14).

29
Figura 14: Rodas e hub

Para fixar os motores placa inferior de policarbonato foram utilizados


parafusos e duas esquadrias de alumnio em formato L, cortadas e perfuradas
dentro das medidas dos motores (Figura 15 ).

Figura 15: Estrutura de sustentao dos motores

Uma roda passiva (Figura 16) da marca TAMIYA foi colocada na parte
dianteira do rob funcionando como uma terceira roda. Essa roda passiva
possui uma estrutura plstica com uma esfera de metal em seu interior
proporcionando ao rob uma reao rpida aos movimentos gerados pelos
motores e um timo deslizamento sobre a superfcie.

30
Figura 16: Roda passiva

Trs parafusos e seis porcas fazem a conexo da roda passiva com a


estrutura fsica do rob garantindo uma regulagem de altura da parte frontal
caso seja necessrio.

MODULO DE POTNCIA

O controle dos motores DC realizado por um microcontrolador da


marca Sabertooth 2X5 (Figura 17) fabricado pela DIMENSION
ENGINEERRING. Este driver de motor destinado a pequenos robs e carros
de at 2kg, e possui alta flexibilidade, fcil configurao, podendo controlar dois
motores com modos de funcionamento independente da velocidade e direo,
tornando-o ideal para projetos de robs mveis.

31
Figura 17: Sabertooh 2x5

O Sabertooth 2x5 possui dois canais para a conexo dos fios de cada motor
DC (M1A e M1B para o primeiro motor; M2A e M2B para o segundo motor),
duas entradas S1 e S2 usadas para controlar os motores (conectadas s
sadas PWM do microcontrolador) e um conector (positivo e negativo) para a
alimentao do driver por meio de uma bateria externa de voltagem igual a 12
volts (Figura 18).

Figura 18 : Conexo dos motores, energia e sadas do Sabertooth 2x5

32
Foi necessria a utilizao de dois resistores em cada entrada S1 e S2 para
estabilizar o fluxo do sinal PWM entre o microcontrolador e o controlador dos
motores.

Especificaes:

Peso: 19g
Tenso de entrada: 6V a 18V,6-12 clulas de NiMH ou NiCd,2s-4s LiPo,
6V ou 12V chumbo-cido (no de chumbo 18 + V!)
5A contnuos por canal, o pico de 10A
Unidade sncrona regenerativa
Proteo trmica e de sobrecarga
Tamanho: 45 x 40 x 13 mm

MDULO DE ENERGIA

O Lynxmotion 12.0vdc Ni-MH 1600mAh (Figura 19) feito de dez pilhas


AA de alta capacidade e cabos multi-condutores para uma melhor transferncia
de energia possvel. O cabeamento facilita a reabilitao destas baterias em
projetos de robtica e eletrnica. Este pacote pesa 300g, cerca de metade do
peso de uma bateria Ni-Cad equivalente.

Figura 19: Lynxmotion 12.0 vdc Ni-MH 1600 mAh

33
Especificaes:

Pacote de medidas 1,92 x 3,05 cm x 1,05 "

14.5vdc tenso nominal


Capacidade nominal: 1600mAh
Max corrente de descarga: 10 ~ 16A
Rapid carga: 1600mA / 1,2 horas
Peso: 300g

A bateria faz a alimentao de todos os dispositivos eletrnicos


utilizados no projeto (motores, microcontroladores e sensores).

Um interruptor liga / desliga de dois polos (Figura 20) realiza o


fornecimento ou corte da energia da bateria para os componentes eletrnicos
do rob.

Figura 20: Interruptor liga/desliga

MODULO CONTROLADOR

O microcontrolador utilizado foi um Arduino Duemilanove (Figura 21)


baseado no ATmega328.

34
Figura 21 : Microcontrolador Arduino Duemilanove

Tabela 2. Principais caractersticas do microcontrolador:

Microcontrolador ATmega328

Voltagem de operao 5V

Voltagem de entrada
7-12V
(recomendvel)

Voltagem de entrada (limite) 6-20V

Pinos digitais de entrada/sada 14 (dos quais 6 oferecem sada PWM)

Pinos analgicos 6

Corrente DC por pino de E/S 40 mA

Corrente DC para pinos 3.3V 50 mA

32 KB (ATmega328) dos quais 2 KB usados


Memria flash
pelo bootloader

SRAM 2 KB

EEPROM 1 KB

Velocidade do clock 16 MHz

35
O Arduino oferece um timo custo/benefcio sendo um microcontrolador
de fcil manuseio que no requer conhecimentos avanados em eletrnica,
proporcionando agilidade na conexo e manipulao de dispositivos de
entrada/sada.

O ATmega328 tem o papel de processar as informaes oriundas dos


sensores (matriz de oito sensores), tomar decises com base no seu cdigo
armazenado (software) e enviar aes aos atuadores (driver dos motores).

Oito pinos digitais (2, 3, 4, 5, 6, 7, 8 e 9) foram usados para a conexo


da matriz de sensores e dois pinos digitais PWM (10 e 11) para o controle da
potncia dos motores (esquerda e direita) conforme Figura 22.

Figura 22: Conexo da matriz de sensores e dos motores na placa do Arduino

O microcontrolador alimentado com uma voltagem de 12 volts


interligado na mesma entrada de alimentao do controlador dos motores.

O ROB

O rob aps montado (Figura 23) possui 20 cm de largura, 17,5 cm de


comprimento, 9 cm de altura e peso igual a xx kg.

36
Figura 23: Rob

SOFTWARE

Toda a programao do rob foi realizada no ambiente de


desenvolvimento do Arduino (Figura 24) que recebe comandos em C/C++
permitindo criar com facilidade muitas operaes de entrada/sada.

Figura 24: Ambiente de programao do Arduino

37
O software deve ser capaz de fornecer ao rob autonomia suficiente
para percorrer um caminho seguindo a linha preta sem perd-la, passando por
curvas abertas ou fechadas com uma velocidade satisfatria e com uma
movimentao suave obtida atravs da aplicao do controle proporcional e
derivativo - PD.

O bloco inicial do programa define a declarao de algumas variveis


utilizadas no rob como velocidades dos motores, declarao dos pinos onde
esto conectados os motores na placa do Arduino alm das variveis e
constantes que compem a lgica do controlador PD.

A velocidade aplicada aos motores recebeu o seu valor mximo igual a


255, passada como parmetro para a instruo que usa o PWM como sada.

A manipulao via software da matriz de oito sensores feita atravs de


funes e mtodos contidos em classes da biblioteca PololuQTRSensors.h
(inserida no incio do programa) fornecida pelo fabricante do dispositivo para a
comunicao do mdulo QTR-8RC com o microcontrolador Arduino.

Um objeto denominado matrizSensores instanciado informando em


quais pinos do Arduino esto conectados cada sensor da matriz de sensores
(pino 2, 3, 4, 5, 6, 7, 8 e 9) bem como a quantidade de sensores usados no
projeto (8 sensores) conforme mostrado no trecho de cdigo a seguir.

PololuQTRSensorsRC matrizSensores((unsigned char[]) {2,3,4,5,6,7,8,9}, 8);

O segundo bloco descrito no Arduino como void setup(), a rea


destinada especificao de quais pinos definidos anteriormente so entradas
(input) ou sadas (output) e algumas configuraes que o programa precise
antes de iniciar definitivamente. Neste caso, os dois motores que esto nos
pinos 10 e 11 so definidos como sada.

pinMode(motorEsquerda,OUTPUT);
pinMode(motorDireita,OUTPUT);

Com o objeto matrizSensores instanciado na rea de declarao, uma


rotina de calibragem feita visando expor cada um dos oito sensores
superfcie por onde o rob ir percorrer captando a refletncia da luz sobre

38
essa superfcie. O mtodo calibrate() invocado dentro de um for por um
perodo de cinco segundos, fazendo o rob girar e deslizar no seu eixo central
em sentido horrio passando sobre a linha preta e sobre a rea branca
diversas vezes, realizando assim a calibragem dos sensores. Esse giro
consiste basicamente na movimentao do motor esquerdo para frente e do
motor esquerdo para trs numa mesma velocidade.

O terceiro e ltimo bloco do programa, o void loop(), contm instrues


para o rob se deslocar sobre a linha preta aplicando o controle PD, sendo
executado de forma cclica at que o microcontrolador seja desligado ou
reiniciado.

Dentro do escopo do void loop() o mtodo readLine() faz a leitura de


todos os sensores da matriz, armazenando em uma varivel definida como
leituraSensores um nmero inteiro que indica a localizao da linha preta sob
os sensores.

unsigned int arraySensores[totalSensores];


int leituraSensores = matrizSensores.readLine(arraySensores);

Cada sensor individual retorna valores entre 0 e 1000 onde o 0 (zero)


corresponde reflexo mxima da superfcie encontrada durante a calibrao
(neste caso o branco mximo), e o 1000 como menor reflexo encontrada
(preto mximo). Como a matriz composta de oito sensores numerados de
zero a sete (Figura 25), o valor total retornado pelo mtodo readLine() varia de
0 a 7000.

Figura 25: Numerao dos sensores na matriz

A posio ideal do rob sobre a linha preta (Figura 26) dada pelo
posicionamento dos sensores centrais da matriz (sensor 3 e sensor 4) sobre o
preto, e os demais sensores sobre a parte branca sendo os sensores 0, 1 e 2
esquerda da linha preta e os sensores 5, 6 e 7 direta da linha preta.

39
Figura 26: Ponto ideal (setpoint) do rob sobre a linha preta

Nessa configurao ideal, tambm chamada de ponto de ajuste ou


setpoint, o nmero inteiro retornado pelo mtodo readLine() corresponde a
3500, ou seja, o rob est simetricamente sobre a linha preta e portanto, a
velocidade aplicada aos dois motores por meio do PWM deve ser a mesma
para que ele se desloque em linha reta para a frente.

Os valores menores que 3.500 tendendo a zero, significam que a linha


preta est sob os sensores 0, 1, 2 ou 3 com o rob deslocando-se para o lado
direito (Figura 27-a). Neste caso, a velocidade do motor direito dever ser
maior que o motor esquerdo a fim de fazer o rob retornar ao ponto ideal.

Para valores maiores que 3.500 e menores que 7.000 o rob tende para
o lado esquerdo com a linha preta sob os sensores 5, 6 ou 7 (Figura 27-b).
Nesta situao, a velocidade do motor esquerdo dever ser maior que a
velocidade do motor direito.

Figura 27a : Rob tendendo para a direita Figura 27b: Rob tendendo para a esquerda

40
Dessa forma, podem-se estabelecer as seguintes relaes:

Leitura dos sensores Localizao do rob Velocidade dos motores


motor direito > motor
0 > leitura < 3.500 Lado direito da linha
esquerdo
motor direito = motor
leitura = 3.500 Sobre a linha
esquerdo
motor direito < motor
3.500 > leitura < 7.000 Lado esquerdo da linha
esquerdo

Os valores diferentes de 3.500 so considerados como erros de


deslocamento que podem ser pequenos (prximos de 3.500) ou grandes
(prximos ou iguais a zero ou a 7.000).

No programa, esse erro calculado subtraindo a leitura atual dos


sensores pelo ponto de ajuste (definido como 3500), sendo aplicado
posteriormente na frmula do PD.

int erro = leituraSensores - pontoAjuste;

A frmula do controle proporcional/derivativo realiza uma compensao


da velocidade de cada motor que pode ser brusca ou discreta a depender do
valor do erro. Essa compensao, declarada no programa como uma varivel
inteira chamada sinalControlador, justamente o clculo resultante das
constantes proporcional e derivativa em funo do erro obtido em cada leitura
dos sensores sobre a linha preta.

// CLCULO DO PD

int erro = leituraSensores - 3500;


int sinalControlador = KP * erro + KD * (erro - erroAnterior);
erroAnterior = erro;
int novaVelocidadeMotor1 = velocidadeMotor1 + sinalControlador;
int novaVelocidadeMotor2 = velocidadeMotor2 - sinalControlador;

Antes de enviar as novas velocidades para cada motor foi necessrio


realizar uma correo desses valores, uma vez que o PWM que controla a
velocidade dos motores varia de 127 a 255 (onde 127 os motores ficam

41
parados e 255 em velocidade mxima), e o resultado calculado pelo sinal
controlador pode gera valores fora deste intervalo.

Por fim, as novas velocidades so aplicadas a cada motor e todo o


cdigo contido no void Loop() executado diversas vezes fazendo o rob
seguir a linha preta pelo ambiente.

AJUSTE DO CONTROLADOR PROPORCIONAL E DERIVATIVO (PD)

O controle PD funciona por meio do ajuste das duas constantes


definidas no bloco de declarao do programa como Kp (constante
proporcional) e Kd (constante derivativa).

A configurao do controlador PD foi realizada de forma heurstica que


se baseia em determinar os melhores ganhos das constantes Kp e Kd atravs
de tentativa e erro verificando o desempenho do processo at que o
desempenho desejado seja obtido - um rob seguidor de linha com velocidade
e estabilidade satisfatria.

Foi aplicada a velocidade mxima que os motores podem oferecer


atravs do PWM ajustado com valores iguais a 255 para cada sada dos
motores.

Inicialmente as duas constantes Kp e Kd foram zeradas e somente a


constante proporcional Kp foi sendo gradativamente ajustada (Tabela 3).

Tabela 3: Ajuste da constante proporcional

VALORES DA CONSTANTE
RESULTADO OBTIDO
PROPORCIONAL (Kp)
Kp = 0.0 O rob no segue a linha
Kp = 0.05 O rob segue apenas em linha reta no faz curvas
Kp = 0.1 O rob segue a linha parcialmente, mas instvel em curvas
O rob segue a linha parcialmente, mas ainda instvel em
Kp = 0.2
curvas
Kp = 0.3 Rob 100% estvel na linha e em curvas
Rob segue a linha, porm apresenta variaes discretas em
Kp = 0.4
zig-zag
Rob segue a linha, porm apresenta variaes suaves em
Kp = 0.5
zig-zag
Rob segue a linha, porm apresenta variaes intensas em
Kp = 0.8
zig-zag
Rob segue a linha, porm apresenta fortes variaes em
Kp = 2.0
zig-zag

42
O melhor resultado obtido para o controle proporcional foi Kp=0.3,
deixando o rob preciso durante o seu percurso sobre a linha preta tanto em
retas quanto em curvas.

O prximo passo foi ajustar o valor da constante derivativa Kd (Tabela


4).

Tabela 4: Ajuste da constante derivativa

VALORES DA CONSTANTE
RESULTADO OBTIDO
DERIVATIVA (Kd)
Kd = 0 Nenhuma interferncia
Kd = 5 Boa suavizao
Kd = 7 tima estabilidade do rob
Kd = 10 Boa suavizao com discreta pertubao
Kd = 20 Pequenas oscilaes do rob
Kd = 40 Fortes oscilaes gerando perda da linha

Um valor satisfatrio foi obtido com a constante Kd=7, tendo como


conseqncia uma suavizao do deslocamento do rob sobre a linha e uma
tima estabilidade.

43
CONCLUSO

A ao de controle proporcional-derivativo (PD) foi capaz de estabilizar a


movimentao do rob sobre a linha, fazendo-o percorrer o caminho de forma
suave e com velocidade satisfatria.

O controle integral (I) foi desprezvel uma vez que o rob atingiu o seu
objetivo somente com as constantes proporcional e derivativa.

Observou-se tambm a eficincia do microcontrolador Arduino e dos


demais componentes eletrnicos na leitura e processamento das informaes
atuando precisamente sobre todo o sistema.

44
REFERNCIAS BIBLIOGRFICAS

1. ARDUINO, 2010. Disponvel em <http://www.arduino.cc>, Acesso em


17.11.2010.
2. BRAGA, Newton C. Eletrnica bsica para mecatrnica. So Paulo:
Editora Saber, 2005.
3. BURLAMAQUI, A. et AL., Introduo a Robtica. 2010. Disponvel
em:<http://aquilesburlamaqui.wdfiles.com/localfiles/apresentacoes/Introd
ucaoARobotica.pdf>, Acesso em 20.08.2010.
4. CORTELETTI, D. Dossi Tcnico: introduo programao de
microcontroladores Microchip PIC. SENAI-RS. Centro Tecnolgico de
Mecatrnica. 2006.
5. SILVA, A. F. da RoboEduc: uma metodologia de aprendizado com
robtica educacional.2009. Tese (Doutorado). Universidade Federal do
Rio Grande do Norte. Natal.
6. ZILLI, S. do R. A Robtica Educacional no Ensino Fundamental:
Perspectivas e Prtica. 2004. 89 f. Dissertao (Mestrado em
Engenharia de Produo). Programa de Ps-Graduao em Engenharia
de Produo, UFSC, Florianpolis.

45
ANEXO

CDIGO FONTE DO ROB

#include <PololuQTRSensors.h>

int motorEsquerda = 11;

int motorDireita = 10;

float KP = 0.3;

float KD = 7;

int erroAnterior = 0;

int velocidadeMotor1 = 255;

int velocidadeMotor2 = 255;

PololuQTRSensorsRC matrizSensores((unsigned char[])


{2,3,4,5,6,7,8,9}, 8); // 0-1-2-3-4-5-6-7

void setup()

pinMode(motorEsquerda,OUTPUT);

pinMode(motorDireita,OUTPUT);

analogWrite(motorEsquerda,127);

analogWrite(motorDireita,127);

delay(2000);

analogWrite(motorEsquerda,175);

analogWrite(motorDireita,50);

// CALIBRAO DOS SENSORES - 5 SEGUNDOS

46
int i;

for (i = 0; i < 250; i++)

matrizSensores.calibrate();

delay(20);

analogWrite(motorEsquerda,127);

analogWrite(motorDireita,127);

delay(2000);

//////////////////////// FIM DO SETUP


//////////////////////

void loop()

// LEITURA DOS SENSORES

unsigned int arraySensores[8];

int leituraSensores =
matrizSensores.readLine(arraySensores);

// CLCULO PD

int erro = leituraSensores - 3500;

int sinalControlador = KP * erro + KD * (erro -


erroAnterior);

erroAnterior = erro;

int novaVelocidadeMotor1 = velocidadeMotor1 +


sinalControlador;

int novaVelocidadeMotor2 = velocidadeMotor2 -


sinalControlador;

47
//// CORREO DOS VALORES EXTREMOS DOS MOTORES

if (novaVelocidadeMotor1 < 127)

novaVelocidadeMotor1 = 127;

if (novaVelocidadeMotor2 < 127)

novaVelocidadeMotor2 = 127;

if (novaVelocidadeMotor1 > 255)

novaVelocidadeMotor1 = 255;

if (novaVelocidadeMotor2 > 255)

novaVelocidadeMotor2 = 255;

// APLICAO DAS NOVAS VELOCIDADES DOS MOTORES VIA PWM

analogWrite(motorEsquerda,novaVelocidadeMotor1);

analogWrite(motorDireita,novaVelocidadeMotor2);

} // FIM DO VOID LOOP

48

Você também pode gostar