Você está na página 1de 10

P M R 2 3 1 0

L A B O R A T R I O

Experincia

Acionamento de servo motores RC Parte 1


Transformando comandos por software em movimentos de mquinas com servo motores RC

s experincias 5 e 6 so relacionadas com o acionamento por servo motores RC (Radio Controle). Esses servo motores so muito teis em pequenos projetos de acionamento devido ao seu baixo custo, facilidade de controle e preciso de posicionamento. Seu acionamento requer a gerao de um sinal de PWM (Pulse Width Modulation) com caractersticas especficas. Na experincia 5 ser realizado o acionamento de um servo motor com uma interface de usurio atravs do mdulo de LCD. J na experincia 6 devero ser acionados dois servo motores simultaneamente.

Objetivo
O objetivo destas duas experincias que o aluno se familiarize com o acionamento por microprocessador aprendendo como gerar sinais PWM por interrupo, em um eixo na experincia 5 e em dois eixos na experincia 6.

Resumo
Primeiramente, o aluno dever entender como gerar um sinal de sada num bit de uma porta do 8255 e depois como controlar esse bit dentro de uma interrupo, que produzir o sinal PWM desejado. Depois o aluno dever implementar um programa de controle de posio do servo motor RC atravs de uma interface que utiliza o display LCD e os botes do mdulo de LCD.

Estudar antes de ir para a aula


Servo motores RC

Servo motores RC so pequenos dispositivos de acionamento muito utilizados em aeromodelos. Devido o seu baixo custo, facilidade de acionamento e preciso de posicionamento so muito utilizados em pequenos projetos de robtica. Os servo motores RC utilizados no laboratrio so alimentados por tenses at 6 Volts e operam bem com os 5 Volts que alimentam o kit. Isso torna a sua ligao ao kit Figura 1. Servo motor RC praticamente direta, dispensando qualquer tipo de interface adicional. O servo motor RC possui 3 fios para sua conexo ao sistema., A Figura 2 mostra os sinais de cada um dos pinos do conector.
Pinos

1 2 3
1 Sinal de controle PWM 2 Alimentao entre 4,8 e 6 Volts 3 Alimentao - Terra

Figura 2. Sinais no conector do servo motor RC

No pino 1 deve entrar o sinal PWM de controle de posio do servo motor. Os pinos 2 e 3 so destinados alimentao do servo. O sinal de PWM segue nveis de tenso e corrente dentro do padro TTL. J pelos pinos de alimentao passaro correntes que dependem do tamanho do servo. No caso do servo do laboratrio essas correntes devem ser inferiores a 1 Ampre.
Sinal de controle PWM

O sinal de controle do servo do tipo PWM, mas no utilizado como um PWM convencional. A largura do pulso de PWM controla a posio do servo, mas ao contrrio de um sinal PWM convencional, a essa variao da largura do pulso no corresponder uma variao de corrente proporcional no motor. Esse tipo de servo aceita pulsos peridicos a cada 20 ms continuamente. Esse tempo no crtico podendo variar tranqilamente entre 10 e 30 ms. O pulso de 1,5 ms considerado o meio do curso no posicionamento do servo. Um pulso de 1,0 ms deve corresponder ao mximo de posio para rotao num determinado sentido que cerca de -60. Da mesma maneira, um pulso de 2,0 ms dever corresponder ao mximo de posio para rotao no sentido oposto, cerca de +60. Esses so os limites especificados pelo fabricante. Valores de tempo de pulso menores que 1,0 ms e maiores que

2,0 ms podem ser utilizadas para se obter cerca de 180 de variao angular total, apesar de no serem garantidos pelo fabricante. A Figura 3 mostra a forma de onda do sinal de controle PWM.

2 ms 1,5 ms 1 ms Limite superior do PWM

Limite inferior do PWM

20 ms

Figura 3. Forma de onda do PWM para o servo motor RC

Para se gerar esse sinal, deve-se utilizar uma interrupo peridica a cada 20ms, a rotina de interrupo controla a largura do pulso atravs de um loop de software. Os timers do 8254 deve ser utilizados para gerar o sinal de interrupo INT 1 exatamente da mesma maneira que foram utilizados na Experincia 3. A Freqncia nessa experincia, contudo, dever ser de 50Hz na sada do Timer 1. Assim, ao invs de se programar a constante 100 no Timer 0 devese programar a constante 20. A constante do Timer 1 deve permanecer inalterada e igual a 3.072.

Procedimento Experimental
A sada PWM feita com o 8255 nessa experincia. Assim, o aluno dever estudar o datasheet do 8255 e saber como se configura a Porta C para sada. O bit 2 dessa porta utilizado como comando PWM para o servo motor RC.
Estudo obrigatrio. Ligando o servo motor RC no mdulo de I/O.

O servo motor RC conectado aos terminais 12, 14 e 16 do conector P4 do mdulo de I/O. A Figura 4 mostra como feita essa ligao, ou seja os pinos 1, 2 e 3 do conector do servo motor RC devem ser conectados nos pinos 12, 14 e 16 do conector P4 do mdulo de I/O nessa seqncia. O conector P4 do mdulo do I/O fornece a alimentao necessria ao servo motor RC atravs de seus pinos 14 e 16

Porta C bit 2, pino 12


2 4 6 8 10 12 14 16 18 20 21 22 26

Pino 1 Mdulo de I/O

1 2 3

conector do servo motor RC

Figura 4. Conexo do servo motor RC no mdulo de I/O

Projeto.

O aluno dever implementar um programa para controlar um servo motor RC com comandos de configurao e movimentao pelas teclas do mdulo de LCD. Mensagens de status devero ser dadas pelo LCD. Segue a descrio do programa a ser implementado.
1. O servo motor RC deve ser conectado no mdulo de I/O de

acordo com a Figura 4.


2. O 8255 do mdulo de I/O deve ter suas portas configuradas

da seguinte maneira: Porta A entrada, Porta B sada (LEDs), Porta C sada (servo motor RC).
3. Os timers 0 e 1 do 8254 do mdulo de I/O A programao dos

devem ser programados para gerar um pulso a cada 20 ms (modo 2), ou seja a freqncia do timer 1 de 50Hz.

timers semelhante realizada na Experincia 3.

4. A sada desse timer 1 utilizada para gerar A interrupo

uma interrupo peridica a cada 20 ms. No caso gerada a INT 1 (ou 6.5 do 8085)

utilizada a mesma da Experincia 3.

5. A rotina de interrupo deve controlar o bit

2 do Port C do 8255 que o sinal de controle PWM para o servo motor RC. Essa rotina deve levantar o bit 2 do Port C do 8255, ficar num loop de software pelo tempo dado por uma varivel global que vai determinar a posio do servo e depois baixar o bit 2 deixando-o em zero at a prxima interrupo.
6. Devero ser parmetros configurveis no programa: limite de

tempo superior do PWM, limite de tempo inferior do PWM, velocidade mxima de deslocamento do servo motor.
7. Devero ser criadas 10 constantes de posicionamento (que

correspondem a 10 valores de tempo do PWM) que estejam entre os limites inferior e superior do PWM.

8. A interface de controle dever ter dois modos de operao

descritos a seguir.
Modo de operao.

Ao entrar nesse modo deve ser colocada a frase Controle servo na primeira linha do LCD. Nesse modo as teclas D0 e D4 controlam posicionamento do servo em 10 valores discretos entre 0 e 10. A tecla D0 decrementa a posio at um mnimo de 0 e a tecla D4 incrementa a posio at um mximo de 10. Ao incrementar ou decrementar a posio, o servo deve ser movimentar para a posio correspondente e o valor dessa posio deve ser mostrado nas ltimas posies segunda linha do display LCD com a palavra Posio: no incio da segunda linha. A tecla D7 chaveia para o segundo modo. A Figura 5 mostra a configurao de teclas e mensagens no LCD para esse modo.

Controle Posio:

servo 05
Posio entre 0 e 10

+
Chaveia o modo

Figura 5. Modo de operao interface com o usurio.

Modo de configurao. Ao entrar nesse modo deve ser colocada a palavra Configuracao na primeira linha do LCD. As teclas so usadas para definir os diversos parmetros segundo a Tabela 1.

Tabela 1. Funes das teclas do mdulo de LCD


Tecla D0 D4 D1 D5 Funo Limite superior do PWM Decrementa o valor do limite at o valor do Limite Inferior do PWM Limite superior do PWM Incrementa o valor do limite Limite inferior do PWM Decrementa o valor do limite at 0 Limite inferior do PWM Incrementa o valor do limite at o valor do Limite Superior do PWM Velocidade Decrementa o valor do tempo de espera no aumento ou reduo da velocidade Velocidade Incrementa o valor do tempo de espera no aumento ou reduo da velocidade

D2 D6

O primeiro conjunto de teclas D0 e D4 ajustam o limite superior do PWM, o segundo conjunto de teclas, D1 e D5, ajustam o limite inferior do PWM enquanto que o conjunto de teclas D2 e D6 ajustam a velocidade de

incremento ou decremento da posio. Ou seja, no caso de uma variao continua entre o limite inferior do PWM e o limite superior do PWM, esse parmetro especifica quanto tempo se dever esperar entre um incremento de posio e outro. Os valores de velocidade, limite inferior de PWM e limite superior de PWM devero se apresentados na 2 linha do display LCD, cada um precedido de uma legenda que identifique o valor. Assim, a velocidade dever ser precedida do identificador v:, o limite inferior de PWM dever ser precedido por i: e o limite superior de PWM dever ser precedido por s:, conforme mostrado na Figura 6. A tecla D7 chaveia para o prximo modo, ou volta para o anterior. A tecla D3 inicia ou para o movimento contnuo do servo motor entre o limite inferior do PWM e o limite superior do PWM com a espera em cada posio dada pelo parmetro velocidade. A Figura 6 mostra a configurao de teclas e mensagens no LCD para esse modo.

Configuracao V:150 i:08 s:25 +


Chaveia o modo Start/Stop velocidade Limite inferior do PWM Limite superor do PWM

+ -

+ -

Figura 6. Modo de configurao Interface com o usurio

Check List Voc sabe programar os timers do 8254 para gerar um pulso a cada 20 ms? Voc sabe configurar a porta C do 8255 para sada? Voc sabe programar a interrupo INT 1 para gerar o PWM para o servo motor RC?

Entregar Rotina de programao dos timers para gerar um pulso a cada 20 ms Rotina de interrupo para gerar PWM Programa principal de controle

Experincia

Acionamento de servo motores RC Parte 2


Transformando comandos por software em movimentos de mquinas com servo motores RC

Experincia 6 incrementa um modo de operao aos j desenvolvidos na experincia 5. Nesse novo modo sero controlados dois servo motores RC simultaneamente e ser desenvolvida uma interface com o usurio atravs do mdulo LCD para tratar esse novo caso.

Objetivo
O objetivo dessa experincia fazer o controle simultneo da posio de dois servo motores. O programa baseado numa interrupo peridica para gerar os sinais de PWM para os dois motores.

Resumo
Nessa experincia ser adicionado um modo de operao estrutura de programa desenvolvida na experincia anterior. Nesse modo sero controlados 2 servo motores RC simultaneamente. Ser definido um par de valores de posicionamento atravs da interface do mdulo de LCD e ser dado um comando para movimentar os 2 servo motores RC.

Procedimento experimental
A base para essa experincia a mesma para a experincia anterior. Deve ser recapitulada a programao do 8255 e como utilizar a interrupo para a gerao do sinal de PWM para os servo motores RC.
Estudo obrigatrio. Ligando dois servo motores RC no mdulo de I/O. Um dos servo motores

RC conectado aos terminais 12, 14 e 16 do conector P4 do mdulo de I/O da mesma maneira que na experincia 5. O outro servo motor RC conectado aos terminais 11, 13 e 15 do conector P4. A Figura 7 mostra como feita essa ligao, ou seja os pinos 1, 2 e 3 do conector de um dos servo motores RC devem ser conectados nos pinos 12, 14 e 16 do conector P4 do mdulo de I/O nessa seqncia enquanto que o segundo servo motor RC deve ter seus pinos 1, 2 e 3 conectados nos pinos 11, 13 e 15, respectivamente. O conector P4 do mdulo do I/O fornece a alimentao necessria aos servo motores RC atravs de seus pinos 14, 16, 13 e 15.

Porta C bit 2, pino 12


2 4 6 8

1 2 3

conector do servo motor RC

10 12 14 16 18 20 21 22 26

Pino 1 Mdulo de I/O Porta C bit 3, pino 11

1 2 3

conector do servo motor RC

Figura 7. Conexo de 2 servo motores RC no mdulo de I/O

Projeto. O aluno dever implementar um programa que adiciona um modo

de operao ao programa da experincia 5. Esse modo dever fazer o controle de posio de 2 servo motores RC simultaneamente. As teclas do mdulo de LCD so usadas para controlar as funes desse modo e as mensagens para o usurio so dadas no display de LCD.
1. Os servo motores RC devem ser conectados ao mdulo de

I/O de acordo com a Figura 7.


2. A configurao do 8255 do mdulo do I/O a mesma da

experincia 5.

3. Existem duas opes para a programao dos timers do 8254:

(1) a freqncia do timer 1 a mesma que a da experincia 5, 50 Hz, e na rotina de interrupo os dois sinais de PWM devem ser gerados ao mesmo tempo; (2) a freqncia do timer 1 o dobro da utilizada na experincia 5, ou seja 100Hz, e alternadamente na rotina de interrupo gerado o sinal de PWM para cada um dos motores.
4. Da mesma maneira que na experincia 5, a sada do timer 1 ser

utilizada para gerar a interrupo INT 1 para o 8085, a cada 20 ms, na primeira opo do item 3, ou a cada 10 ms, na segunda opo do item 3.
5. A rotina de interrupo dever levantar e baixar o bit 2 do Port

C para um dos servo motores RC e o bit 3 do Port C para o outro motor.


6. A tecla de chaveamento de modo, tecla D7 do mdulo de

LCD, deve chavear entre os dois modos da experincia 5 e depois para o modo dessa experincia. Assim, os modos sero chaveados na seqncia: modo de controle de servo, modo de configurao e modo de posicionamento. O funcionamento do novo modo descrito a seguir. Ao entrar nesse modo deve ser escrita a palavra Posicionamento na primeira linha do LCD. As funes das teclas a seguinte:
Modo de posicionamento.

Teclas D0 e D4 servem para decremento e incremento, respectivamente, do valor da posio de um dos motores. Os valores possveis esto limitados a 10 posies distintas, da mesma maneira que foi definido na experincia 5. O valor da posio colocado na 2 linha do display de LCD depois da legenda y:. Teclas D1 e D5 servem para decremento e incremento, respectivamente, do valor da posio do outro motor. O valor da posio colocado na 2 linha do display de LCD depois da legenda x:. Tecla D6 chaveia entre movimento contnuo e controle de posio. No movimento contnuo os dois motores movimentam-se continuamente entre os limites do PWM definidos no modo de configurao. A direo do movimento dos dois motores definida pela tecla D2 conforme descrito no prximo item. A velocidade de movimentao corresponde ao parmetro definido no modo de configurao da experincia 5. No controle de posio os motores vo simultaneamente da sua posio atual para a posio apresentada na 2 linha do display de LCD.

Tecla D2 alterna a direo de movimento dos motores no movimento contnuo. O movimento pode se dar em duas direes: (1) motores se movem na mesma direo e (2) motores se movem em direes contrrias. Tecla D3 Se estiver definido o controle contnuo dos motores, essa tecla inicia e para o movimento. Se estiver definido o controle de posio, aps pressionar essa tecla os motores vo simultaneamente da posio atual para a posio definida na 2 linha do display de LCD. Tecla D8 chaveia entre os modos, assim se o modo atual for o modo de posicionamento, aps pressionar essa tecla programa ir para o modo de controle de servo.

Posicionamento x:03 y:08 +


Chaveia o modo Start/Stop Contnuo / posicionamento Alterna direo Posio x Posio y

+ -

Figura 8. Modo de posicionamento - Interface com o usurio

Check List Voc sabe programar os timers do 8254 para gerar um pulso a cada 20 ms ou 10 ms? Voc sabe gerar dois sinais de PWM na Porta C do 8255 simultaneamente dentro da rotina de interrupo? Voc sabe mover continuamente os dois servo motores RC simultaneamente?

Entregar Rotina de programao dos timers para gerar um pulso a cada 20 ms ou a cada 10 ms (dependendo da escolha de como implementar o programa) Rotina de interrupo para gerar dois sinais de PWM simultaneamente Programa principal de controle

10