10

Click here to load reader

Servo Motor

Embed Size (px)

Citation preview

Page 1: Servo Motor

P M R 2 3 1 0 - L A B O R A T Ó R I O

Experiência

5 Acionamento de servo motores RC – Parte 1 Transformando comandos por software em movimentos de máquinas com servo motores RC

s experiências 5 e 6 são relacionadas com o acionamento por servo motores RC (Radio Controle). Esses servo motores são muito úteis em pequenos projetos de acionamento devido ao seu baixo custo, facilidade de controle e precisão de posicionamento. Seu

acionamento requer a geração de um sinal de PWM (Pulse Width Modulation) com características específicas. Na experiência 5 será realizado o acionamento de um servo motor com uma interface de usuário através do módulo de LCD. Já na experiência 6 deverão ser acionados dois servo motores simultaneamente.

A

Objetivo O objetivo destas duas experiências é que o aluno se familiarize com o acionamento por microprocessador aprendendo como gerar sinais PWM por interrupção, em um eixo na experiência 5 e em dois eixos na experiência 6.

Resumo Primeiramente, o aluno deverá entender como gerar um sinal de saída num bit de uma porta do 8255 e depois como controlar esse bit dentro de uma interrupção, que produzirá o sinal PWM desejado. Depois o aluno deverá implementar um programa de controle de posição do servo motor RC através de uma interface que utiliza o display LCD e os botões do módulo de LCD.

1

Page 2: Servo Motor

Estudar antes de ir para a aula Servo motores RC Servo motores RC são pequenos dispositivos de acionamento muito utilizados em aeromodelos. Devido o seu baixo custo, facilidade de acionamento e precisão de posicionamento são muito utilizados em pequenos projetos de robótica. Os servo motores RC utilizados no laboratório são alimentados por tensões até 6 Volts e operam bem com os 5 Volts que alimentam o kit. Isso torna a sua ligação ao kit praticamente direta, dispensando qualquer tipo de interface adicional. O servo motor RC possui 3 fios para sua conexão ao sistema., A Figura 2 mostra os sinais de cada um dos pinos do conector.

Figura 1. Servo motor RC

Pinos

1 2 3

1 – Sinal de controle PWM 2 – Alimentação entre 4,8 e 6 Volts 3 – Alimentação - Terra

Figura 2. Sinais no conector do servo motor RC

No pino 1 deve entrar o sinal PWM de controle de posição do servo motor. Os pinos 2 e 3 são destinados à alimentação do servo. O sinal de PWM segue níveis de tensão e corrente dentro do padrão TTL. Já pelos pinos de alimentação passarão correntes que dependem do tamanho do servo. No caso do servo do laboratório essas correntes devem ser inferiores a 1 Ampére.

Sinal de controle PWM O sinal de controle do servo é do tipo PWM, mas não é utilizado como um PWM convencional. A largura do pulso de PWM controla a posição do servo, mas ao contrário de um sinal PWM convencional, a essa variação da largura do pulso não corresponderá uma variação de corrente proporcional no motor.

Esse tipo de servo aceita pulsos periódicos a cada 20 ms continuamente. Esse tempo não é crítico podendo variar tranqüilamente 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 máximo de posição para rotação num determinado sentido que é cerca de -60º. Da mesma maneira, um pulso de 2,0 ms dever corresponder ao máximo de posição para rotação no sentido oposto, cerca de +60º. Esses são os limites especificados pelo fabricante. Valores de tempo de pulso menores que 1,0 ms e maiores que

2

Page 3: Servo Motor

2,0 ms podem ser utilizadas para se obter cerca de 180º de variação angular total, apesar de não serem garantidos pelo fabricante.

A Figura 3 mostra a forma de onda do sinal de controle PWM.

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

Para se gerar esse sinal, deve-se utilizar uma interrupção periódica a cada 20ms, a rotina de interrupção controla a largura do pulso através de um loop de software.

Os timers do 8254 deve ser utilizados para gerar o sinal de interrupção INT 1 exatamente da mesma maneira que foram utilizados na Experiência 3. A Freqüência nessa experiência, contudo, dever ser de 50Hz na saída do Timer 1. Assim, ao invés de se programar a constante 100 no Timer 0 deve-se programar a constante 20. A constante do Timer 1 deve permanecer inalterada e igual a 3.072.

Procedimento Experimental EndpP

studo obrigatório. A saída PWM é feita com o 8255 essa experiência. Assim, o aluno deverá estudar o atasheet do 8255 e saber como se configura a Porta C ara saída. O bit 2 dessa porta é utilizado como comando WM para o servo motor RC.

Ligando o servo motor RC no módulo de I/O. O servo motor RC é conectado aos terminais 12, 14 e 16 do conector P4 do módulo de I/O. A Figura 4 mostra como é feita essa ligação, 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 módulo de I/O nessa seqüência. O conector P4 do módulo do I/O fornece a alimentação necessária ao servo motor RC através de seus pinos 14 e 16

20 ms

2 ms

1,5 ms Limite superior do PWM

1 ms Limite inferior do PWM

3

Page 4: Servo Motor

Porta C – bit 2, pino 12

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

Figura 4. Conexão do servo motor RC no módulo de I/O

Projeto. O aluno deverá implementar um programa para controlar um servo motor RC com comandos de configuração e movimentação pelas teclas do módulo de LCD. Mensagens de status deverão ser dadas pelo LCD. Segue a descrição do programa a ser implementado.

1. O servo motor RC deve ser conectado no módulo de I/O de acordo com a Figura 4.

2. O 8255 do módulo de I/O deve ter suas portas configuradas da seguinte maneira: Porta A – entrada, Porta B – saída (LEDs), Porta C – saída (servo motor RC).

3. Os timers 0 e 1 do 8254 do módulo de I/O devem ser programados para gerar um pulso a cada 20 ms (modo 2), ou seja a freqüência do timer 1 é de 50Hz.

4. A saída desse timer 1 é utilizada para gerar uma interrupção periódica a cada 20 ms. No caso é gerada a INT 1 (ou 6.5 do 8085)

5. A rotina de interrupção 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 variável global que vai determinar a posição do servo e depois baixar o bit 2 deixando-o em zero até a próxima interrupção.

6. Deverão ser parâmetros configuráveis no programa: limite de tempo superior do PWM, limite de tempo inferior do PWM, velocidade máxima de deslocamento do servo motor.

7. Deverão 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.

A programação dos timers é semelhante à realizada na Experiência 3.

A interrupção utilizada é a mesma da Experiência 3.

Pino 1 1 2 3 conector do

servo motor RC Módulo de I/O

4

Page 5: Servo Motor

8. A interface de controle deverá ter dois modos de operação descritos a seguir.

Modo de operação. 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 posição até um mínimo de 0 e a tecla D4 incrementa a posição até um máximo de 10. Ao incrementar ou decrementar a posição, o servo deve ser movimentar para a posição correspondente e o valor dessa posição deve ser mostrado nas últimas posições segunda linha do display LCD com a palavra “Posição:” no início da segunda linha. A tecla D7 chaveia para o segundo modo. A Figura 5 mostra a configuração de teclas e mensagens no LCD para esse modo.

Controle servo

Posição: 05 Posição entre 0 e 10

+

Chaveia o modo -

Figura 5. Modo de operação – interface com o usuário.

Modo de configuração. Ao entrar nesse modo deve ser colocada a palavra “Configuracao” na primeira linha do LCD. As teclas são usadas para definir os diversos parâmetros segundo a Tabela 1.

Tabela 1. Funções das teclas do módulo de LCD Tecla Função

D0 Limite superior do PWM – Decrementa o valor do limite até o valor do Limite Inferior do PWM

D4 Limite superior do PWM – Incrementa o valor do limite

D1 Limite inferior do PWM – Decrementa o valor do limite até 0

D5 Limite inferior do PWM – Incrementa o valor do limite até o valor do Limite Superior do

PWM

D2 Velocidade – Decrementa o valor do tempo de espera no aumento ou redução da velocidade

D6 Velocidade – Incrementa o valor do tempo de espera no aumento ou redução da velocidade

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

5

Page 6: Servo Motor

incremento ou decremento da posição. Ou seja, no caso de uma variação continua entre o limite inferior do PWM e o limite superior do PWM, esse parâmetro especifica quanto tempo se deverá esperar entre um incremento de posição e outro.

Os valores de velocidade, limite inferior de PWM e limite superior de PWM deverão 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 próximo modo, ou volta para o anterior. A tecla D3 inicia ou para o movimento contínuo do servo motor entre o limite inferior do PWM e o limite superior do PWM com a espera em cada posição dada pelo parâmetro “velocidade”. A Figura 6 mostra a configuração de teclas e mensagens no LCD para esse modo.

Configuracao

V:150 i:08 s:25

Figura 6. Modo de configuração – Interface com o usuário

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 saída?

Você sabe programar a interrupção INT 1 para gerar o PWM para o servo motor RC?

Entregar Rotina de programação dos timers para gerar um pulso a cada 20

ms

Rotina de interrupção para gerar PWM

Programa principal de controle

-

+

Chaveia o modo

+ +

- -

Start/Stop velocidade Limite superor

do PWM Limite inferior do PWM

6

Page 7: Servo Motor

Experiência

6

Acionamento de servo motores RC – Parte 2 Transformando comandos por software em movimentos de máquinas com servo motores RC

Experiência 6 incrementa um modo de operação aos já desenvolvidos na experiência 5. Nesse novo modo serão controlados dois servo motores RC simultaneamente e será desenvolvida uma interface com o usuário através do módulo

LCD para tratar esse novo caso.

A

Objetivo O objetivo dessa experiência é fazer o controle simultâneo da posição de dois servo motores. O programa é baseado numa interrupção periódica para gerar os sinais de PWM para os dois motores.

Resumo Nessa experiência será adicionado um modo de operação à estrutura de programa desenvolvida na experiência anterior. Nesse modo serão controlados 2 servo motores RC simultaneamente. Será definido um par de valores de posicionamento através da interface do módulo de LCD e será dado um comando para movimentar os 2 servo motores RC.

7

Page 8: Servo Motor

Procedimento experimental EmapR

studo obrigatório. A base para essa experiência é a esma para a experiência anterior. Deve ser recapitulada

programação do 8255 e como utilizar a interrupção ara a geração do sinal de PWM para os servo motores C.

Ligando dois servo motores RC no módulo de I/O. Um dos servo motores RC é conectado aos terminais 12, 14 e 16 do conector P4 do módulo de I/O da mesma maneira que na experiência 5. O outro servo motor RC é conectado aos terminais 11, 13 e 15 do conector P4. A Figura 7 mostra como é feita essa ligação, 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 módulo de I/O nessa seqüência 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 módulo do I/O fornece a alimentação necessária aos servo motores RC através de seus pinos 14, 16, 13 e 15.

Figura 7. Conexão de 2 servo motores RC no módulo de I/O

Projeto. O aluno deverá implementar um programa que adiciona um modo de operação ao programa da experiência 5. Esse modo deverá fazer o controle de posição de 2 servo motores RC simultaneamente. As teclas do módulo de LCD são usadas para controlar as funções desse modo e as mensagens para o usuário são dadas no display de LCD.

1. Os servo motores RC devem ser conectados ao módulo de I/O de acordo com a Figura 7.

2. A configuração do 8255 do módulo do I/O é a mesma da experiência 5.

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

Pino 1 conector do servo motor RC Módulo de I/O

Porta C – bit 2, pino 12 conector do servo motor RC

1 2 3

1 2 3

Porta C – bit 3, pino 11

8

Page 9: Servo Motor

3. Existem duas opções para a programação dos timers do 8254: (1) a freqüência do timer 1 é a mesma que a da experiência 5, 50 Hz, e na rotina de interrupção os dois sinais de PWM devem ser gerados ao mesmo tempo; (2) a freqüência do timer 1 é o dobro da utilizada na experiência 5, ou seja 100Hz, e alternadamente na rotina de interrupção é gerado o sinal de PWM para cada um dos motores.

4. Da mesma maneira que na experiência 5, a saída do timer 1 será utilizada para gerar a interrupção INT 1 para o 8085, a cada 20 ms, na primeira opção do item 3, ou a cada 10 ms, na segunda opção do item 3.

5. A rotina de interrupção 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 módulo de LCD, deve chavear entre os dois modos da experiência 5 e depois para o modo dessa experiência. Assim, os modos serão chaveados na seqüência: modo de controle de servo, modo de configuração e modo de posicionamento. O funcionamento do novo modo é descrito a seguir.

Modo de posicionamento. Ao entrar nesse modo deve ser escrita a palavra “Posicionamento” na primeira linha do LCD. As funções das teclas é a seguinte:

Teclas D0 e D4 – servem para decremento e incremento, respectivamente, do valor da posição de um dos motores. Os valores possíveis estão limitados a 10 posições distintas, da mesma maneira que foi definido na experiência 5. O valor da posição é 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 posição do outro motor. O valor da posição é colocado na 2ª linha do display de LCD depois da legenda “x:”.

Tecla D6 – chaveia entre movimento contínuo e controle de posição. No movimento contínuo os dois motores movimentam-se continuamente entre os limites do PWM definidos no modo de configuração. A direção do movimento dos dois motores é definida pela tecla D2 conforme descrito no próximo item. A velocidade de movimentação corresponde ao parâmetro definido no modo de configuração da experiência 5. No controle de posição os motores vão simultaneamente da sua posição atual para a posição apresentada na 2ª linha do display de LCD.

9

Page 10: Servo Motor

Tecla D2 – alterna a direção de movimento dos motores no movimento contínuo. O movimento pode se dar em duas direções: (1) motores se movem na mesma direção e (2) motores se movem em direções contrárias.

Tecla D3 – Se estiver definido o controle contínuo dos motores, essa tecla inicia e para o movimento. Se estiver definido o controle de posição, após pressionar essa tecla os motores vão simultaneamente da posição atual para a posição definida na 2ª linha do display de LCD.

Tecla D8 – chaveia entre os modos, assim se o modo atual for o modo de posicionamento, após pressionar essa tecla programa irá para o modo de controle de servo.

Posicionamento

x:03 y:08

Figura 8. Modo de posicionamento - Interface com o usuário

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 interrupção?

Você sabe mover continuamente os dois servo motores RC simultaneamente?

Entregar Rotina de programação 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 interrupção para gerar dois sinais de PWM simultaneamente

Programa principal de controle

-

+

Chaveia o modo

+

-

Posição y Posição x Alterna direção

Start/Stop

Contínuo / posicionamento

10