Click here to load reader
Upload
faustotapia4067
View
278
Download
6
Embed Size (px)
Citation preview
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
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
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
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
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
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
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
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
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
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