Professional Documents
Culture Documents
T
dt t V
0
) (
Onde T o perodo da forma de onda e V(t) a funo da tenso no tempo.
V(t) =
<
T t t 0
t t 0 V
p
p pulso
p
t : durao do pulso em nvel lgico 1
pulso
V : tenso de pulso do sinal PWM
Ento,
|
|
\
|
+ =
p
p
t
T
t
pulso dc
dt dt V
T
V
0
0
1
pulso
p
dc
V
T
t
V =
A razo entre a largura de pulso e o perodo da forma de onda recebe o nome de
duty cycle. O pulso da onda PWM apresenta tenso fixa, porm o valor mdio da tenso
desta forma de onda varia em funo do duty cycle. A tenso mdia (
dc
V ) diretamente
proporcional ao duty cycle e como esse varia entre 0 (quando
p
t =0) e 1 (quando
p
t =T)
15
temos que a tenso mdia de onda pode variar entre 0 e
pulso
V . Neste caso
(PIC16F877A), a variao ser de
ss
V a
DD
V , ou seja, de 0 a 5V . [1]
Vejamos a nomenclatura padro utilizada para descrio das caractersticas
comuns dos mdulos CCP do PIC: [7]
Tabela 4 - Caractersticas comuns dos mdulos CCP do PIC
Esses dois mdulos utilizam recursos compartilhados para suas bases de tempo
(Timer 1 e Timer 2).
Tabela 5 - Combinao de recursos dos mdulos CCP
Modo
Base de
tempo
Capture Timer 1
Compare Timer 1
PWM Timer 2
Como utilizaremos as 2 portas CCP com o recurso PWM, ambos os PWM tero
a mesma freqncia e sero sincronizados, devido ao uso da mesma base de tempo. Os
Duty Cycles possuem controles independentes.
Padro CCP1 CCP2 Descrio
CCPxCON CCP1CON CCP2CON Registrador de configurao
CCPRxH CCPR1H CCPR2H Parte alta do valor de controle
CCPRxL CCPR1L CCPR2L
Parte baixa do valor de
controle
CCPx CCP1(RC2) CCP2(RC1) Pino relacionado
16
Figura 17 Diagrama de blocos do mdulo CCP no modo PWM [12]
Configurao para a operao do PWM:
1. ConFigurar o perodo do PWM escrevendo-o no registrador PR2
O perodo T do PWM controlado diretamente pelo Timer 2, atravs do
registrador PR2.
O perodo do PWM pode ser calculado usando a frmula:
PWM Perodo = [(PR2) + 1] 4 T
OSC
(Valor TMR2 Prescale)
Onde a freqncia do PWM definida como 1/[PWM perodo].
2. Configurar o PWM duty cycle
No PIC, no definimos o valor do duty cycle, mas sim, do tempo do pulso em
nvel alto, que pode ser calculado da seguinte maneira:
t
p
= CCPRxL:CCPxCON<CCPxX:CCPxY>*T
OSC
*(Prescale do TMR2)
3. Fazer do pino uma sada zerando o bit TRISC<2>
Na modulao PWM, o pino CCPx produz uma sada PWM com 10 bits de
resoluo. Como o pino CCP1 multiplexado com o PORTC data latch, o bit
TRISC<2> deve ser zerado de forma que faa do CCP1 um pino de sada.
Quando TRM2 = PR2, ocorrem os seguintes eventos:
TMR2 zerado, iniciando novo perodo;
O pino CCP1 setado (exceo: se o PWM duty cycle = 0% )
O PWM duty cycle copiado do CCPR1L para o CCPR1H
4. Configurar o valor TMR2prescale, habilitar o Timer2 via T2CON
A resoluo para o ajuste de perodo depende do prescale do Timer 2:
Tabela 6 - Influncia do Prescale no tempo de pulso em nvel alto
Prescale Tempo do menor passo
1 TOSC
4 4TOSC ou TCY
16 16Tosc ou 4TCY
5. Configurar o CCP1 para o modo de operao PWM.
Para ativar a sada do mdulo de PWM setamos os bits
CCPxCON<CCPxM3:CCPxM0>
17
3.2.1 Mdulo Eletrnica
A comunicao a parte responsvel pela interligao dos robs ao mdulo de
estratgia via rdio freqncia, unidirecional por possuir somente um sentido
(estratgia para robs), e constituda de duas componentes:
recepo de informaes: componente conectada ao rob para recepo das
informaes. Esse mdulo recebe o sinal serial pela antena e envia essas
informaes para o PIC, de forma serial.
envio de informaes: componente conectada a um computador executando o
software de estratgia.
A recepo feita atravs do circuito RXM-900-HP3-PPO. A transmisso feita
atravs de um mdulo de transmisso ligado a sada serial do computador que utiliza o
circuito transmissor de rdio freqncia TXM-900-HP3-PPO, um transmissor que opera
na faixa de 902 a 928 MHz.
O conjunto RXM-900-HP3-PPO - TXM-900-HP3-PPO so os componentes
principais de todo o mdulo de comunicao. Eles so circuitos de fcil utilizao, boa
relao custo/beneficio e permitem uma taxa de 56 Kbps de transmisso.
Escolhemos a comunicao serial, pois apesar de mais lenta que a paralela,
possui um menor grau de interferncia.
Fig. 18 Mdulo eletrnico do rob com opto acopladores e duas baterias.
O time utiliza dois circuitos alimentados por fontes totalmente independentes
que so interligados atravs de acopladores pticos. Essa diviso em dois circuitos foi
feita para separar o circuito de motores do circuito de controle devido ao alto consumo
de energia de motores eltricos. Se fosse implementado somente um circuito, o alto
consumo de energia pelos motores poderia fazer com que o nvel de energia fornecido
ao 16F877A ficasse abaixo do recomendando, causando um reset no 16F877A levando
a perda de toda informao interna, um efeito indesejado que pode fazer com que o rob
no obedea corretamente as instrues enviadas pelo mdulo de estratgia.[8]
Os parmetros do sentido das rodas passam por uma lgica e se dividem em 4
portas do PIC, acionando os pinos de sentido da ponte-H. J as velocidades das rodas
acionam o mecanismo PWM do microprocessador e partem dois pulsos de portas
diferentes, tambm em direo ponte-H. So esses dois pulsos, associados aos quatro
pinos lgicos de sentido que realizam a comunicao com o mdulo da mecnica. A
ponte H (mdulo de potncia) permite no s o comando instantneo de dois motores
por meio de sinais PWM, como tambm amplifica o sinal enviado pelo
microcontrolador.
18
3.2.2 Programao do microcontrolador
O ambiente usado na programao foi o MPLAB, ferramenta da prpria empresa
MICROCHIP, na qual o programa compilado em linguagem Assembly para um arquivo
hexadecimal, o qual gravado no PIC.
Basicamente, o controle de velocidade localizado no prprio microcontrolador, que
atravs do PIC, recebe o sinal via rdio da velocidade que deve ser aplicada as rodas. Essa
velocidade calculada pelo sistema de estratgia que processada num computador. O PIC
recebe essa informao e joga uma tenso modulada no pino de sada, de forma que essa tenso
nos terminais do motor, produz a velocidade desejada.
Para realizar a aplicao de uma dada tenso atravs de um sinal, testes foram feitos na
configurao do PIC. Conforme vimos no primeiro relatrio, o mdulo CCP ser uma
ferramenta de grande valor na modulao da largura de pulso.
PWM utilizada parar variar o valor da transferncia de potncia entregue a
uma carga sem as perdas ocorridas normalmente devido queda de tenso por recursos
resistivos. Em um sistema PWM, a chave de estado slido usada para controlar o fluxo
de corrente: ora no conduzindo corrente, ora conduzindo, mas provocando uma queda
de tenso muito baixa. Como a potncia instantnea dissipada pela chave o produto
da corrente pela tenso eltrica a um dado instante, isso significa que nenhuma potncia
dissipada se a chave fosse uma chave "ideal".
3.2.2.1 Etapa de configurao e clculo
A ttulo de exemplificao, tratamos uma modulao de largura de pulso atravs
do PIC. Calculando o duty cycle do Pulso PWM em quatro situaes, usando o Timer2,
temos:
t
p
= CCPR2L:CCP2CON<CCP2X:CCP2Y>*T
OSC
*(Prescale do TMR2)
Utilizando um oscilador externo de 4MHz:
T
OSC
=
osc
f
1
=
6
10 4
1
= 250ns
Definindo o prescaler do Timer2 em 16 (tempo do menor passo, com maior
resoluo), os bits do registrador CCP2CON, com os bits 5 e 4 (menos significativos)
zerados e PR2 no valor mximo(255), temos que a freqncia do PWM ser de
244,14Hz (T
PWM
= 4,096ms), atravs dos clculos temos:
Tabela 7- Relao entre os valores adotados e porcentagem de duty cycle
CCPR2L(hexadecimal)
t
p
(ms)
Duty Cycle (%) Tenso (V)
0 0 0 0
0X80 (512) 2,048 25,0 1,45
0XC0 (768) 3,072 75,0 3,97
0XFF (1023) 4,072 99,9 4,81
A tabela 7 tambm apresenta a tenso obtida, pela leitura do voltmetro, da voltagem do
pino do PIC com relao ao nvel lgico baixo.
19
Figura 19- Fluxograma do programa para variao da tenso via PWM
A Figura 19 apresenta atravs de um fluxograma, as etapas de configurao do
microcontrolador para a utilizao do mesmo na etapa de testes:
Com o registrador PR2 com o valor de 255, o tempo mximo de pulso alto no
mximo 1023 enquanto a resoluo do duty cycle de 10 bits (1024=4x(255+1)), ou
seja, nunca ser atingido um duty cycle de 100%.
Para calcular os valores de CCPR2 necessrio aplicar os valores em:
CCPR2 = [(PR2)+1] x 4 x Porcentagem de duy cycle
O Watchdog Timer uma espcie de temporizador que reseta o microcontrolador com
base no tempo. Esse contador (WDT) independente do ciclo de mquina do PIC.
20
Figura 20 porcentagem de Duty Cycle x Tenso no pino do PIC
3.2.2.2 Implementao
Nesta seo, a programao do microcontrolador em linguagem Assembly
apresenta suas principais etapas. Como o programa bastante extenso e a programao
no intuitiva, apenas anlises descritivas do mesmo sero feitas.
Anteriormente testamos o PWM para valores distintos e restritos para um duty
cycle conhecido. Agora, uma abordagem mais complexa e abrangente deve tomar o seu
lugar.
A seguir, um exemplo do cdigo-fonte para o acionamento do controle por modulao
PWM (1 e 2) mostrado:
;---------------------------------------------------------------------------------------------------------
; Funo para setar pwm
;---------------------------------------------------------------------------------------------------------
setup_pwm
clrf PORTC ; limpa a porta C
bank_1 ; altera para banco 1
movlw 0x00 ; move zero ao acumulador W
movwf TRISC ; move o acumulador W para a porta C,
definindo-a como sada
;bcf TRISC, 1 (zera TRISC,1)
;bcf TRISC, 2 (zera TRISC,2)
movlw 0xff ; move 0ffH para o acumulador
;movlw .127
; valor mximo de tempo (numa escala
adimensional)
; do pwm seria de 255 (decimal)
movwf PR2 ;* CONFIGURA PERIODO DO PWM
;* T = (PR2+1).4.Tosc.TMR2_PRESCALE
;* T = 256.4.1us.16
;* T = 1024*10^-6*16
bank_0 ; altera para banco 0
21
movlw 0x07 ; acumulador W recebe 07H
movwf T2CON ; T2CON recebe o valor de W
;bsf T2CON, 1
;bsf T2CON, 2
movlw 0x0F ;* CONFIGURA CCP1CON PARA MODO PWM
movwf CCP1CON ;* LIGA PWM 1
clrf CCPR1L ;* ZERA CCPR1L
movlw 0x0F ;* CONFIGURA CCP2CON PARA MODO PWM
movwf CCP2CON ;* LIGA PWM 2
clrf CCPR2L ;* ZERA CCPR2L
return ; termina sub-rotina
;-------------------------------------------------------------------------------------------------------------------
----------
A parte de configurar o PWM foi vista, mostrando seus principais registradores,
variveis e seqncia dos mesmos dentro da sub-rotina.
Para a facilidade na etapa de programao, definimos no PIC16F877A:
Tabela 8- Definies prticas do programa principal
Flags de Configurao
_WDT_OFF = watchdog timer desabilitado
_BODEN_OFF = brown-out reset desababilitado
_PWRTE_ON = Power-up Timer habilitado
_XT_OSC= oscilador cristal
_LVP_OFF = low voltage programing mode desabilitado
_DEBUG_OFF = in circuit debug desabilitado
Constantes do programa
Baud Rate
Nmero de identificao dos robs
Bits, Variveis gerais e de
interrupo
Indicadores de Buffer
Start e Stop Bit
Com relao comunicao serial, o recurso USART (Universal Synchronous Receiver
Transmiter) foi usado no modo assncrono, em que a comunicao feita somente com duas
vias; entretanto, como o modo no sincronizado, essas duas vias so utilizadas para dados.
Uma delas para transmisso (TX) e outra para recepo (RX). Isso possibilita que informaes
sejam enviadas e recebidas ao mesmo tempo (Full Duplex). A informao recebida do
computador atravs da porta paralela e serializada pelo microcontrolador.
A sincronizao do modo USART assncrono conseguida atravs do Baud Rate, que
a velocidade de transmisso. Essa transmisso trabalha com base nos bits (o Baud Rate
geralmente dado em bits por segundo) e assim conseguimos calcular o tempo de durao de
cada bit. O sincronismo existente feito para recepo de cada byte.
22
Figura 21 Comunicao serial assncrona
As vias possuem estado padro em nvel lgico alto. A borda de descida do clock
reconhecida pelo RX e inicia o processo de sincronizao para o start bit; esse pulso em nvel
baixo chamado de Start Bit (ver Figura 21).
Depois de passar um tempo, RX tem o momento exato do Start Bit, deixa passar esse
tempo pr-determinado e depois coleta 8 bits, pegando ao seqncia de dados que se encontra
prximo do meio tempo do bit(T
BIT
/2).
Quando TX envia um Stop Bit, o lado RX deve considerar a leitura do Stop Bit para que
nenhum erro seja admitido durante a recepo. No projeto, definimos a Baud Rate em
9600kbps, o que nos d T
BIT
= 104s.
A Figura 22 mostra resumidamente o fluxograma do programa principal que recebe via
rdio, do sistema de estratgia, os vetores de velocidade que devem ser aplicados aos motores
de 3 robs, que so identificados pelo protocolo de comunicao. No tratamento dos nmeros, a
converso de BCD para binrio e vice-versa, de binrio para cdigo ASCII , de ASCII para
ASCII2BCD e de ASCII para Hexadecimal foram includas em sub-rotinas do programa para
que um padro entre os dados recebidos, dados processados e dados de converso convergissem
ao mesmo sistema de unidades.
23
Figura 22 Fluxograma bsico do programa principal
3.3 Motor DC (Corrente Contnua)
A vantagem de trabalharmos com um motor de corrente contnua que neste tipo de
dispositivo, obtemos uma quase perfeita linearidade entre a tenso aplicada em seus terminais e
a velocidade angular do motor (Figura 23). Considerando a modelagem do sistema e as perdas,
podemos conseguir essa relao, que interessante no sentido que facilita os clculos de
movimento e portanto exige menos processamento. O primeiro relatrio apresenta a linearidade
desta relao atravs da modelagem do motor:
a
a
R f
V k
w
= .
24
Figura 23 - Caracterstica tenso x (velocidade angular)
O grfico da Figura 23 representa a operao do motor DC em 4 quadrantes:1 e 3:
acelerao; 2 e 4: reverso ou frenagem. Essa linearidade justifica a aplicao comum
dos motores DC em situaes de controle de velocidade. Alm disso, os motores de
corrente contnua so uma alternativa mais atrativa em uma srie de aplicaes, j que
so baratos e podem ser bem eficazes.
O motor utilizado nos robs, pertence categoria de im-permanente (baixa
potncia). A principal vantagem desse tipo de motor que os ims no precisam de
excitao externa nem dissipam a potncia correspondente para criar campos
magnticos na mquina [4].
3.4 Sistema de controle
O controle desenvolvido mantm os robs constantemente monitorados pela viso,
que funciona como guia para a estratgia. Ento, esta manda pulsos de PWM segundo
orientao de velocidade calculada pelo sistema, alterando o duty-cycle, corrigindo a
trajetria. Esse processamento da viso acontece em menos de 33 milisegundos, tempo
suficiente para modificar a posio do rob com preciso, evidentemente desprezando
as perdas do sistema mecnico e eletrnico em questo.
O sistema de controle de velocidade por posio ainda apresenta muitas
deficincias e no funciona como espervamos, uma vez que monitorados diretamente
pela viso, erros so propagados sobre os sistemas de viso e estratgia, de forma que
no se tem a preciso necessria para realizar os movimentos previstos.
A diferena de duty cycles do pulso de um motor para o outro faz o rob girar
muito rpido quando, por exemplo, o rob realiza uma curva muito fechada. Devido ao
peso do rob, relativamente alto, a sua inrcia grande, dificultando assim a mudana
de percurso e controle sobre o mesmo.
25
Figura 24 Estrutura bsica de um sistema realimentado; u: ao de controle
Como mostra a Figura 24, o sistema de controle trabalha com um controlador
PID por posio (x,y,) num sistema realimentado. O sistema tem uma posio de
referncia desejada, o controlador atua corrigindo o erro, calculado pelos dados do
sensor, que no caso seria o sistema de viso.
O controle PID por posio possui a seguinte modelagem cinemtica [13]:
onde :
Figura 25 -Diagrama esquemtico do rob
O rob modelado sujeito a restries no holonmicas, isto , restries nas
possveis velocidades que pode assumir,devido ao fato que o atrito impede que as rodas
deslizem lateralmente. Assim, o rob s pode se movimentar na direo em que est
orientado. Esta restrio expressa matematicamente como:
26
`
A relao entre velocidades no referencial do rob e velocidades em espao de
configurao dada por:
3.5 Sistema Eletrnico
O PWM opera em perodos de tempo to curtos que suas variaes entre zero e
mximo so imperceptveis, mas a forma de onda equivalente possui voltagem menor.
Dessa maneira possvel linearizar curvas atravs de um circuito digital. O PIC16F877
possui funes e chaves especficas para o tratamento de PWMs e estas sero usadas no
decorrer do projeto.
A ponte-H serve para que inverter a polarizao dos motores, sendo possvel
tambm inverter o sentido de giro dos mesmos. Esse mecanismo baseado em
transistores, sendo que dependendo dos pinos acionados (Alto - Baixo) de um
microprocessador, a corrente fluir ou no num certo sentido. Isto pode ser visualizado
no esquema apresentado na Tabela abaixo.-H
Figura 26- Circuito eltrico da Ponte H
.
27
Tabela 9- Funcionamento da ponte-H.
V1 V2 V3 V4 Resultado
H L H L Q1 e Q3 fechados, corrente da esquerda para direita.
L H L H Q2, Q4 fechados, corrente da direita para a esquerda.
L L L L Motor desligado.
4. Concluso
Este relatrio apresentou detalhes de desenvolvimento do projeto,
implementao e montagem do prottipo de um rob para a categoria `very small size,
a ser utilizado para participao em competies robticas.
A parte mecnica est pronta: simples e robusta. Para efeito de pesquisa, a
plataforma construda suficiente para desenvolvermos o controle . Para efeito de
competio, o projeto pode ser aperfeioado. A incluso de encoders (sensoriamento
interno) pode auxiliar as coordenadas do sistema de controle (no momento esse
processo realizado somente atravs da viso).
O projeto abordou um tema muito importante e de aplicao comum em muitos
processos, tais como os motores que se deseja ter algum controle de velocidade,
(independente da aplicao). Tratando-se de um sistema robtico, a construo de uma
base mecnica , de fato, fundamental para a implementao do projeto.
O projeto mecnico baseou-se em tcnicas j utilizadas em mquinas comuns,
como a utilizao de rolamentos, a usinagem de peas e respectiva montagem de
elementos, a reduo do torque de motor por meio de engrenagens; a fim de obter uma
eficincia melhor; otimizar o gasto de energia que para o futebol de robs, assim como
qualquer outra plataforma, um fator crtico. Consumir menos energia implica em uma
plataforma de alto desempenho, menos peso, maior robustez do carro do rob.
A parte de programao do microcontrolador, por trabalhar com a linguagem
Assembly complexa, devido aos cuidados em construir cada funo e a configurao
manual de registradores. Um programa simples de controle do motor possui mais de
300 linhas de cdigo, evidenciando a falta de praticidade da linguagem.
Por outro lado, esse trabalho compensador no sentido de que o programador
adquire um maior cuidado com o espao de memria, por exemplo; com a simplificao
do cdigo e a apresentao de comentrios e identao.
O PIC16F877A foi uma ferramenta essencial para a execuo do projeto j que
este possui o recurso PWM no mdulo CPP, em que se pode modular uma faixa da
largura de pulso, pr-determinado pelo oscilador.
Agradecimentos
Os autores agradecem a FAPESP e o CNPq pelo apoio recebido durante a realizao do
presente trabalho.
28
5. Bibliografia
1. PEREIRA, F. Microcontroladores PIC: Programao em C. So Paulo: rica,
2005. 360 p.
2. FARIA, G.; ROMERO, R. A. F.; PRESTES, E.; IDIART, M. Comparing
Harmonic Functions and Potential Fields in the Trajectory Control of Mobile
Robots Control of Mobile Robots. In: IEEE RAM 2004 - IEEE Conf. on
Robotics, Automation and Mechatronics, 2004, Singapura. Proceedings of IEEE
RAM - Robotics, Automation and Mechatronics. http://ieeexplore.ieee.org/sea :
IEEE, 2004. v. 2. p. 762-767.
3. Faria, G., Uma arquitetura de controle Inteligente para Mltiplos Robs, Tese
de Doutorado, ICMC, 92 p., 2006.
4. Grabbe, Eugene Munter Handbook of automation, computation, and control /
prepared by a staff of specialists. Edited by Eugene M. Grabbe, Simon Ramo
[and] Dean E. Wooldridge, 1958 - Wiley New York
5. Dorf, Richard C. Modern control systems / Richard C. Dorf 6th edReading,
Mass. : Addison-Wesley, c1992
6. Khatib, O. (1985). Real-time obstacle avoidance for manipulators and mobile
robots. In IEEE International Conference on Robotics and Automation (pp. 500-
505). St. Louis, Missouri.
7. SOUZA, D. J.; LAVINIA, N. C. Conectando o PIC: Recursos Avanados. So
Paulo: rica, 2003. 384 p.
8. Santos, Davi Pereira dos; Penharbel, der Augusto; Faria, Gedson; Romero,
Roseli Aparecida Francelin. Um sistema integrado para controle de um time de
futebol de robs.. p. 449-457. Congresso da SBC 26, Campo Grande, 2006, Workshop
de Computao e Aplicaes 1, Campo Grande, 2006. In: Anais. 0006. SEM
CLASSIFICAO (evento com menos de 3 edies)
9. Bianchi, Reinaldo A. C.; Reali-Costa, Anna H. O sistema de viso
computacional do time FUTEPOLI de futebol de robs
10. Lopes, Alfredo, Sci-Soccer Desenvolvimento de uma Plataforma deRobs
Mveis voltada ao Futebol de Robs, FAPESP projeto PIPE 03/07973-2.
(http://www.cientistasassociados.com.br/publicacoes/Enri_final.pdf)
11. "RoboCup - Robot World Cup Initiative", http://www.robocup.org.
12. Microchip 16 F87XA Datasheet 28/40/44-Pin Enhanced Flash Microcontrollers