Escolar Documentos
Profissional Documentos
Cultura Documentos
Orientador:
Prof. António Abreu
Outubro/2003
-I-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
Agradecimentos
A equipa que projectou e construiu este robot agradece ao Prof. António Abreu pela
orientação no desenvolvimento do projecto, assim como pelos seus ensinamentos que
estiveram na base de muitas das opções feitas na construção do “RoboTank”.
Em particular agradecemos aos nossos colegas Rui Pimenta e Daniel Santos pela
ajuda prestada na obtenção de determinados componentes.
-II-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
Autores :
Orientador:
-III-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
Resumo:
-IV-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
Abstract:
-V-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
Índice
Agradecimentos ............................................................................................................. II
Índice ............................................................................................................................. VI
1. Introdução ........................................................................................................... 1
2. Corpo do Relatório......................................................................................... 2
2.1. Estrutura Metálica................................................................................................ 2
2.2. Esquema de Blocos................................................................................................ 3
2.3. Motores.................................................................................................................. 4
4. MicroControlador ........................................................................................ 12
4.1. Introdução ........................................................................................................... 12
4.2. Algumas Noções Teóricas ................................................................................... 12
-VI-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
6. Ponte em H ................................................................................................. 30
6.1. Introdução ........................................................................................................... 30
6.2. Algumas Noções Teóricas ................................................................................... 30
6.3. Desenvolvimento.................................................................................................. 32
6.4. Descrição do Circuito (figura 6.4) ...................................................................... 32
6.5. Melhorias Introduzidas ....................................................................................... 33
6.5.1. Protecção Contra Sobrecargas ........................................................................ 33
6.6. Placas PCB.......................................................................................................... 35
6.7. Modo de Utilização ............................................................................................. 35
6.8. Testes ................................................................................................................... 36
6.9. Conclusões........................................................................................................... 36
-VII-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
7. Realimentação .......................................................................................... 37
7.1. Introdução ........................................................................................................... 37
7.2. Algumas Noções teóricas .................................................................................... 37
7.3. Desenvolvimento.................................................................................................. 38
7.4. Testes ................................................................................................................... 39
7.5. Conclusões........................................................................................................... 39
8. Alimentação ............................................................................................... 40
8.1. Introdução ........................................................................................................... 40
8.2. Algumas Noções Teóricas .................................................................................. 40
8.3. Desenvolvimento.................................................................................................. 42
8.4. Testes ................................................................................................................... 43
8.5. Conclusões........................................................................................................... 43
9. Carregamento de Baterias............................................................... 44
12. Conclusões................................................................................................... 56
-VIII-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
Anexos........................................................................................................................ 58
-IX-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
Lista de Figuras
Figura 2.1 – Perspectiva geral da estrutura metálica (vista a partir da frente do veículo)
Figura 3.1 - Ligação série entre 1 DTE (computador) e 1 DCE (dispositivo), usando os
pinos 2 e 3, para transmissão de dados (TD) e recepção dos mesmos (RD).
Figura 3.3 - Definição dos estados dos sinais de dados e sinais de controlo.
Figura 6.2 – Input 2_1 e Input 2_2 com 24 Volts e Input 1_1 e Input 1_2 com 0Volts.
Figura 6.3 – Input 1_1 e Input 1_2 com 24 Volts e Input 2_1 e Input 2_2 com 0 Volts.
-X-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
-XI-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
Lista de Tabelas
-XII-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
TD – Transmitted Data
RD – Received Data
CD – Carrier Detect
RI – Ring Indicator
-XIII-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
1. Introdução
O Projecto RoboTank é um projecto de mecatrónica, pelo que abrange componentes
de hardware (mecânica e electrónica) e de software (programação), realizado no âmbito
da cadeira de Projecto I do Curso de Engenharia em Electrónica e Computadores da
ESTS do Instituto Politécnico de Setúbal. O principal objectivo é realizar o controlo
independente de 2 motores de Corrente Contínua, inseridos num veículo capaz de se
deslocar em qualquer direcção. O controlo dos motores é realizado através de PWM
com realimentação através de encoders.
Convém deste já realçar o facto de que não tivemos qualquer tipo de influência na
escolha de alguns dos materiais empregues na estrutura do veículo, nomeadamente qual
o tipo de material empregue no chassi, quais as dimensões, os tipos de rodas, que tipos
de motores a usar e tipo de baterias.
1 – Estrutura metálica
2 – Motores
3 – Interface de comunicação
4 – Microcontroladores
5 – Drivers
6 – Ponte em H
7 – Realimentação
8 – Alimentação
9 – Software de Controlo
-1-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
2. Corpo do Relatório
Segue-se uma explicação mais detalhada dos blocos que constituem o veículo.
Como o próprio nome indica, a estrutura é em metal e foi construída por colegas de
anos anteriores, também no âmbito do projecto final de curso. Não fazendo parte do
nosso projecto, damos a conhecer um pouco da estrutura.
A estrutura é constituída por uma base em metal, revestida nas partes laterais por uma
protecção em borracha, como medida de segurança tomada para amortecer eventuais
choques do veículo. Contém ainda duas rodas fixas ligadas a dois motores por meio de
cintas de borracha, assim como duas rodas “loucas”. Existe ainda um contador de
rotações cujo nome técnico é tacómetro, que permite calcular a que velocidade se move
o veículo.
A figura 2.1 representa a configuração da base do RoboTank que assume uma forma
rectangular.
Figura 2.1 – Perspectiva geral da estrutura metálica (vista a partir da frente do veículo)
-2-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
As dimensões do veículo são 160×130×35 cm, o que faz com que as manobras de
contorno de obstáculos e prevenção de colisões se tornam complicadas, exigindo uma
maior carga computacional.
O sistema terá uma constituição do tipo modular, conforme a figura 2.2, em que cada
módulo terá ligação a uma unidade central. Toda a informação relevante será
visualizada num PC.
O diagrama de blocos da figura 2.2 pretende dar uma perspectiva funcional geral do
sistema, agregando todos os blocos.
-3-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
2.3. Motores
-4-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
3. Interface de Comunicação
3.1. Introdução
Esta interface permite a comunicação entre uma unidade de comando (PC), que faz o
controlo do RoboTank, e o próprio veículo.
O protocolo escolhido para a implementação deste módulo de comunicação foi o RS-
232, devido à facilidade de implementação e às suas características apropriadas para
este tipo de aplicações, como por exemplo a utilização de apenas 3 fios.
A necessidade da utilização deste módulo vem do facto da incompatibilidade de
níveis de tensão existentes entre a porta série de um PC e a porta série de um micro
controlador.
No standard RS-232, os dois dispositivos ligados com cabo série são designados por
DTE (Data Terminal Equipment) e DCE (Data Communication Equipment). Esta
terminologia reflecte-se na origem da norma RS-232 como o standard para
comunicação entre um computador e um outro dispositivo, no nosso caso o
microcontrolador. O computador é considerado um DTE, enquanto que o dispositivo
periférico é assumido como DCE.
-5-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
Basicamente a ligação entre um DTE e um DCE é feita como mostra a figura 3.1
Figura 3.1 - Ligação série entre 1 DTE (computador) e 1 DCE (dispositivo), usando os
pinos 2 e 3, para transmissão de dados (TD) e recepção dos mesmos (RD).
-6-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
Os outros pinos não são utilizados neste projecto, mas deve ficar a ideia de que
existem pinos de controlo (RTS e CTS, DTR e DSR, CD, e RI) que permitem sinalizar a
presença de dispositivos ligados e controlar o fluxo de dados.
Os sinais podem estar num estado activo ou estado inactivo. Para sinais de dados, o
estado on (activo) corresponde ao ‘1’ lógico, representado pela gama de valores de
tensão dos sinais de [-3 V , -15 V], enquanto que o estado off (inactivo, ou ‘0’ lógico)
ocorre para tensões no intervalo [+3 V , +15 V].
Para sinais de controlo, o estado on (activo) corresponde ao ‘0’ lógico, ocorrendo para
valores de tensão positivos [+3 V , +15 V]. O estado off (inactivo, ou ‘1’ lógico) ocorre
para tensões na gama [-3 V , -15 V].
-7-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
Figura 3.3 - Definição dos estados dos sinais de dados e sinais de controlo.
O formato dos dados série utilizados neste projecto incluem 1 bit de início (start bit),
8 bits de dados e 1 bit de fim (stop bit). A figura 3.4 ilustra o formato dos dados série.
Por definição, os dados série são transmitidos 1 bit de cada vez. A ordem pela qual
cada bit é enviado é feita de acordo com as considerações seguintes:
-8-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
Baud Rate
O número de bits transferidos por segundo é designado baud rate. Os bits transferidos
incluem, como já visto, o start bit, os bits de dados, o bit de paridade (se definido), e
o(s) stop bits. Por exemplo, 300 baud corresponde a 300 bits/segundo. Quando é
referido um ciclo de relógio, fala-se da baud rate. Baud rates comuns para linhas
telefónicas são 14400, 28800, e 33600.
1. Quando um pino da porta série está idle (não transmitindo dados), então está num
estado on;
2. Quando os dados estão prestes a ser transmitidos, o pino da porta série alterna para
um estado off devido ao start bit;
3. O pino da porta série alterna novamente para o estado on devido ao(s) stop bit(s),
indicando o fim do byte transmitido.
O(s) stop bit(s) são usados então para sinalizar o fim de um pacote de dados. Valores
típicos correspondem a 1, 1.5, e 2 bits. Uma vez que os dados são sincronizados ao
longo das linhas e que cada dispositivo possui o seu próprio relógio (na comunicação
assíncrona), é possível que os dois dispositivos apareçam ligeiramente
dessincronizados. Assim, o(s) stop bit(s) permitem alguma “folga” ao computador para
compensar desvios nas velocidades dos relógios. Quanto mais stop bits forem usados,
melhor será feita a sincronização entre os diferentes relógios, mas mais lenta será a taxa
de transmissão.
-9-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
3.11. Desenvolvimento
A conversão de níveis tem por base um circuito integrado designado por MAX232,
que permite converter os níveis TTL e RS-232 entre si.
O esquemático do circuito implementado é apresentado na figura 3.6.
-10-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
3.12. Testes
3.13. Conclusões
-11-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
4. MicroControlador
4.1. Introdução
Este módulo tem como objectivo gerar o PWM para os drivers de forma a que o
veículo se possa movimentar e fazer a contagem do número de impulsos dos tacómetros
num determinado intervalo de tempo, de forma a calcular a velocidade real a que o
veículo se movimenta.
4.2.1. Microcontrolador
-12-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
4.2.2. PWM
O Pulse Width Modulation (PWM) é uma poderosa técnica para controlar circuitos
analógicos a partir de circuitos digitais. O PWM é utilizado num vasto campo de
aplicações, como por exemplo: controlo de motores, medidas de temperaturas,
comunicações, etc.
Um circuito analógico, por mais intuitivo e simples que seja, nem sempre é atractivo
economicamente, nem prático, e tende a “desafinar” com o passar do tempo, devido ao
desgaste de um ou outro componente.
Os circuitos analógicos tem tendência a aquecer, pois o calor dissipado por cada
elemento activo é proporcional à tensão e à corrente que por ele passa, sendo também
sensíveis ao ruído, devido à sua resolução infinita.
Por sua vez, utilizando circuitos digitais, o custo do equipamento e o consumo irão
ser bastante reduzidos em relação aos analógicos, e muitos microcontroladores, como é
o caso do utilizado PIC16F877, já possuem um módulo de PWM, o que facilita muito a
implementação de circuitos de controlo por PWM.
-13-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
De uma maneira simples, o PWM é uma forma de codificar um sinal analógico com
sinais digitais. O dutty cycle de uma onda quadrada é determinado de forma a codificar
um sinal analógico.
Um sinal PWM continua a ser um sinal digital, pois num dado instante é “1” ou “0”.
O valor “1” é o tempo durante o qual a carga é alimentada, e o valor “0” é o tempo
durante o qual a carga não é alimentada. Assim, qualquer sinal analógico pode ser
codificado num sinal digital, como se pode ver na seguinte figura 4.1.
O primeiro sinal da figura 4.1 é um sinal PWM com 10% de duty cycle, ou seja,
durante 10% do valor do período do sinal este encontra-se “1” e 90% do período
encontra-se “0”.
O segundo e terceiro sinais representam também sinais PWM, agora com 50% e 90%
de duty cycle, respectivamente. Todos estes sinais representam um sinal analógico
diferente.
-14-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
4.3. Desenvolvimento
Comando Acção
"A" Velocidade motor M1(Direita)
"B" Velocidade motor M2 (Esquerda)
"C" Valor do Tacometro1 (Direita)
"D" Valor do Tacometro2 (Esquerda)
“E” Valor da Direcção motor M1 (Direita)
“F” Valor da Direcção motor M2 (Esquerda)
Declaração de Constantes
Declaração de Variáveis
Atendimento de Interrupções
Rotina que recebe os dados da porta série
Rotina que recebe os Impulsos Tacómetro motor esquerdo EXT
Rotina que recebe os Impulsos Tacómetro motor direito RB4
-15-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
Inicio do Programa
Limpeza de registos
Habilita interrupções
Inicialização de Leitores de tacómetros (Timer,RB0,RB4)
Inicialização da Porta Série
Inicialização do PWM
Loop de espera de novo comando
Descodificação do comando
Fim Programa
Inicializa_PortaSerie
bsf STATUS,RP0
bcf STATUS,RP1 ;Banco 1
clrf TXSTA
bsf TXSTA,BRGH ;Duplica a velocidade de comunicação
clrf SPBRG
movlw D'64' ;19200 Kb/s
movwf SPBRG
bcf TXSTA,SYNC ;Comunicação Assíncrona
bcf TXSTA,TX9 ;8 bits de transmissão
bcf STATUS,RP0 ;Banco 0
clrf RCSTA
bsf RCSTA,SPEN ;Liga a porta série
bcf RCSTA,RX9 ;8 bits de recepção
bsf STATUS,RP0 ;Banco 1
bcf PIE1,TXIE ;Sem Interrupções em TX
-16-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
Como se pode ver o porto série irá funcionar com um baud rate de 19,2Kb/s, com
uma trama de 8 bits, 1 start bit e 1 stop bit. Para além disso foi activada a interrupção de
recepção, fazendo com que ao receber um trama o processo “salte” para o código de
atendimento de pedido de interrupção, código esse que é mostrado de seguida :
Tudo o que este código faz é guardar o valor do comando recebido na porta série, em
uma variável designada por <rcreg_temp>, e afectar uma flag (<new_rcreg>), que
indica que recebemos um novo comando. Ambas serão posteriormente interpretadas
pelo processo de descodificação de comando.
A função deste processo é esperar por um novo comando. Quando este chega é
interpretado pelo descodificador de comandos, e executado voltando ao ponto de espera
de novo comando. Para além disso, detectam-se erros que possam ocorrer na
comunicação com o PC, ou seja, passado um determinado tempo sem que se receba
informação proveniente do PC, o veículo pára os motores por razões de segurança.
loop
-17-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
A função deste bloco de código é gerar o sinal PWM para o bloco de drivers, de
forma a que posteriormente os motores sejam alimentados e postos a rodar à velocidade
requerida. O módulo gerador de PWM do microcontrolador necessita que se configurem
certos parâmetros, como por se pode ver no seguinte código :
Inicializa_PWM
bsf STATUS,RP0 ;Banco 1
movlw d'125'
movwf PR2 ;PWM Período de 26khz
bcf TRISC,2 ;CCP1 como saída
bcf TRISC,1 ;CCP2 como saída
bcf TRISC,3 ;Direcção Motor1
bcf TRISC,0 ;Direcção Motor2
bcf STATUS,RP0 ;Banco 0
clrf CCPR1L ;dutyCycle =0
clrf CCPR2L ;dutyCycle =0
clrf T2CON
bsf T2CON,TMR2ON ;liga o timer 2
movlw b'00001111'
movwf CCP1CON ;configura para módulo pwm
movwf CCP2CON ;configura para módulo pwm
-18-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
;**********************************************************************
; Rotina que recebe os Impulsos Tacómetro motor esquerdo EXT
;**********************************************************************
btfss INTCON,INTF ;Recebemos impulso do tacómetro
goto NextInt1
incf Tacometro2_temp,1 ; incrementa valor de Tacometro2_temp
bcf INTCON,INTF ;Limpa pedido de interrupção
goto ExitInt
NextInt1
;**********************************************************************
; Rotina que recebe os Impulsos Tacómetro motor direito RB4
;**********************************************************************
btfss INTCON,RBIF ;Recebemos impulso do tacómetro
goto NextInt2
movf PORTB,w ;Lê o valor da PORTB para W
movwf Temp ;Guarda o valor lido
xorwf LastPB,1 ;faz um xor do valor anterior com o lido
btfsc LastPB,RB4 ;Testa se houve alteração no pino RB4
call RB4Change ;Alteração no pino RB4
movf Temp,w ;Guarda o valor lido
movwf LastPB ;em LastPB
bcf INTCON,RBIF ;Limpa Pedido de interrupção
goto ExitInt ;Sai do atendimento de interrupções
RB4Change
btfsc PORTB,RB4 ;Testa se é flanco ascendente
return ;Ignora flanco descendente
incf Tacometro1_temp,1 ;incrementa valor de Tacometro1_temp
return
NextInt2
;**********************************************************************
; Rotina De Fim de temporizador
;**********************************************************************
btfss INTCON,T0IF
goto ExitInt
movf Tacometro1_temp,w ;lê valor temporário para W
movwf Tacometro1 ;Guarda valor definitivo em Tacometro1
movf Tacometro2_temp,w ;lê valor temporário para W
movwf Tacometro2 ;Guarda valor definitivo em Tacometro2
clrf Tacometro1_temp ;Limpa variáveis definitivas
clrf Tacometro2_temp ;Limpa variáveis definitivas
bcf INTCON,T0IF ;Limpa pedido de interrupção
;**********************************************************************
; Inicialização de leitura de tacómetros
;**********************************************************************
movlw b'00000000'
movwf TMR0
bsf STATUS, RP0
bcf STATUS, RP1 ;Banco 1
-19-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
-20-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
btfsc STATUS, Z
call direcaoM2Forward
movf rcreg_temp,w ;carrega o comando recebido
xorlw '9'
btfsc STATUS, Z
call direcaoM1Backward
movf rcreg_temp,w ;carrega o comando recebido
xorlw '0'
btfsc STATUS, Z
call direcaoM2Backward
movf rcreg_temp,w ;carrega o comando recebido
xorlw 'A'
btfsc STATUS, Z
call SendVelM1
movf rcreg_temp,w ;carrega o comando recebido
xorlw 'B'
btfsc STATUS, Z
call SendVelM2
movf rcreg_temp,w ;carrega o comando recebido
xorlw 'C'
btfsc STATUS, Z
call SendTac1
movf rcreg_temp,w ;carrega o comando recebido
xorlw 'D'
btfsc STATUS, Z
call SendTac2
movf rcreg_temp,w ;carrega o comando recebido
xorlw 'E'
btfsc STATUS, Z
call SendDirM1
movf rcreg_temp,w ;carrega o comando recebido
xorlw 'F'
btfsc STATUS, Z
call SendDirM2
clrf rcreg_temp
bcf FLAGS,new_rcreg
goto loop
A função deste processo é realizar a acção pretendida pelo comando recebido sobre os
motores.
aceleraM1
movf MOTOR1,w
xorlw b'11111111'
btfsc STATUS, Z
return
movf aceleracao_temp,w ;carrega factor de aceleração
-21-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
addwf MOTOR1,1
movf MOTOR1,w ;Carrega valor de MOTOR1
movwf CCPR1L ;gera PWM
return
aceleraM2
movf MOTOR2,w
xorlw b'11111111'
btfsc STATUS, Z
return
movf aceleracao_temp,w ;carrega factor de aceleração
addwf MOTOR2,1 ;adiciona factor de aceleração
movf MOTOR2,w ;carrega valor de MOTOR2
movwf CCPR2L ;gera PWM
return
travaM1
movf MOTOR1,w
xorlw b'00000000'
btfsc STATUS, Z
return
movf aceleracao_temp,w ;carrega factor de aceleração
subwf MOTOR1,1 ;subtrai factor de aceleração
movf MOTOR1,w ;carrega valor de MOTOR1
movwf CCPR1L ;gera PWM
return
travaM2
movf MOTOR2,w
xorlw b'00000000'
btfsc STATUS, Z
return
movf aceleracao_temp,w ;carrega factor de aceleração
subwf MOTOR2,1 ;subtrai factor de aceleração
movf MOTOR2,w ;guarda valore de MOTOR2
movwf CCPR2L ;gera PWM
return
paraM1
movlw b'00000000' ;valor para parar o motor
movwf MOTOR1 ;guarda novo valor para motor1
movwf CCPR1L ;gera PWM
return
paraM2
movlw b'00000000' ;valor para parar o motor
movwf MOTOR2 ;guarda novo valor para motor2
movwf CCPR2L ;gera PWM
return
direcaoM1Forward
bcf PORTC,dirM1 ;põe direcção 1
return
direcaoM2Forward
bcf PORTC,dirM2 ;põe direcção 0
-22-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
return
direcaoM1Backward
bsf PORTC,dirM1 ;põe direcção 1
return
direcaoM2Backward
bsf PORTC,dirM2 ;põe direcção 0
return
A função deste processo é enviar a informação sobre os motores, através da porta série
do microcontrolador.
-23-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
btfss PORTC,dirM2
movlw '0'
movwf TXREG
call JaMandou ; rotina que espera que a trama seja enviada
return
JaMandou
bsf STATUS,RP0
bcf STATUS,RP1 ;Banco 1
Attend
btfss TXSTA,TRMT ;Testa se o byte já foi enviado, se não foi espera
goto Attend
bcf STATUS,RP0
bcf STATUS,RP1 ;Banco 0
return
-24-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
4.4. Testes
4.5. Conclusões
Houve algumas dificuldades a nível de programação, pois foi a primeira vez que se
programou um microcontrolador da Microchip. Foi necessário aprender um novo
conjunto de instruções, uma nova arquitectura, uma nova forma de configurar os
registos de forma a executarem as tarefas pretendidas, por vezes até através da
experimentação.
-25-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
5.1. Introdução
5.3. Desenvolvimento
Tendo por base a figura 5.1, fornecida através da datasheet do dispositivo, foi
possível efectuar as ligações para cada um dos motores. Após aplicação dos
correspondentes níveis de tensão às entradas do driver foi observado o correcto
funcionamento de cada um dos motores, estando possibilitado o controlo independente
de cada um deles.
-26-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
-27-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
5.4. Testes
-28-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
5.5. Conclusões
Uma vez que um driver L298 permite o controlo de dois motores, optou-se apenas
por utilizar um único driver.
Com base nos esquemáticos apresentados nas figuras 5.1 e 5.2, e após efectuada a
interligação entre o circuito de comando e o circuito de potência, o funcionamento
esperado foi o observado.
-29-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
6. Ponte em H
6.1. Introdução
Por forma a fazer com que cada um dos motores possa ser controlado em ambos os
sentidos, optou-se por uma configuração de ponte em H, constituída por 2 transístores
de potência do tipo NPN e 2 do tipo PNP, como ilustra a figura seguinte.
-30-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
Figura 6.2 – Input 2_1 e Input 2_2 com 24 Volts e Input 1_1 e Input 1_2 com 0 Volts.
Figura 6.3 – Input 1_1 e Input 1_2 com 24 Volts e Input 2_1 e Input 2_2 com 0 Volts.
-31-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
6.3. Desenvolvimento
A disposição dos transístores de potência faz com que conduzam aos pares, bastando
para isso que as entradas designadas por input 2_1 e input 2_2 se encontrem
alimentadas com 24V, ou vice versa, que as entradas input 1_1 e input 1_2 se
encontrem com o mesmo nível de tensão para que o motor inverta o sentido.
-32-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
V1
24
+V
D8 D7
D1
BD 249 BYV32 BYV32 BD 249 D2
Q11 input2_1
input1_1 Q21
249
249
0V - 24V 0V - 24V
M1
BD 250 BD 250
Q22 Q12
LED1 250 250
R7
input2_2 LED2
Q1 D5 D6 R8
2.2K input1_2
0V - 24V BD 241 BYV32 BYV32 Q3 2.2K
BD 241 0V - 24V
Nó A
Q2 R1 Q4
68 R4
BD 241 BD 241
0.1
R2
18
R3
150 R5 R6
0.1 0.1
Foi desenvolvida uma protecção que nos permite controlar o fluxo de corrente que
atravessa cada um dos motores. Para isso existem 3 resistências de potência de 0,1Ω,
formando duas delas um paralelo estando a outra em série (R5 // R6) + R4.
A protecção é activada quando a corrente que atravessa cada uma dos motores
ultrapassa-se os 5 Amperes. As resistências têm por objectivo provocar uma queda de
tensão de 0,75V no nó A, ver figura 6.4
-33-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
VA
0.75V
Nó A
R1
86
VB Q4
Q2
Rpotênc R2
150
0.15
-34-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
Lado 1 Lado 2
-35-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
Este valor (24V) é o que permite que o motor tenha um desempenho regular.
6.8. Testes
A melhor forma que se encontrou de testar este módulo foi alimentar as entradas e
medir os valores à sua saída.
6.9. Conclusões
Este foi sem dúvida o bloco mais difícil de desenvolver devido aos valores de
corrente que iriam atravessá-lo. Foram desenvolvidos e testados vários circuitos, desde
simples drivers como o utilizado no módulo de drivers (L298), a ponte em H simples
com transístores de potência, mas o apresentado revelou-se melhor.
-36-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
7. Realimentação
7.1. Introdução
O canal A e B encontram-se desfasados 90º entre si, de forma a que seja possível
detectar o sentido de rotação do encoder. Por sua vez o canal C, gera um impulso
sempre o eixo do tacómetro der um volta de 360º.
-37-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
7.3. Desenvolvimento
-38-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
Referência Designação
Castanho 5 a 12 VDC
Azul 0 V (Comum)
Preto Saída A (Canal A)
Branco Saída B (Canal B)
Laranja Saída C (Canal C)
Malha GND
7.4. Testes
A melhor forma de testar este módulo foi colocar o motor em rotação e ver num
osciloscópio se as forma de ondas eram as esperadas, o que aconteceu sem problemas.
7.5. Conclusões
-39-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
8. Alimentação
8.1. Introdução
As baterias escolhidas têm que fornecer corrente suficiente para alimentar os motores
e os circuitos de controlo, ser recarregáveis e ter uma boa autonomia. Como se pode
observar na tabela 8.1, apenas as baterias Níquel-Cádmio, Ni-MH e as Ácido-Chumbo
são aquelas que podem ser utilizadas. Assim, por razões de custo, as baterias de Níquel-
Cádmio são preferíveis às NI-MH e, por razões de peso e segurança, são preferíveis às
de ácido-chumbo. As baterias de Níquel-Cádmio são aquelas em que se obtém uma
melhor relação preço/potência.
Apesar de não serem aquelas em que se obtém uma melhor relação preço/potência,
pois para isso teríamos que utilizar as baterias de Níquel-Cadmio, as baterias que fazem
parte deste projecto são baterias de ácido - chumbo, com as seguintes características:
Tensão: V=12V
Capacidade: 17Ah
Tipo de célula: Ácido-Chumbo
Comprimento: L=13.4cm
Largura: 6.7cm
Altura: 6.7cm
Peso: 1.170Kg
-40-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
O RoboTank está preparado para ser alimentado por três baterias Ácido-Chumbo.
Estas baterias têm a capacidade de debitar 17 Ah.
Uma das desvantagens deste tipo de alimentação é que o carregamento das baterias é
muito moroso (cerca de 12 horas).
De modo a que não hajam interferências por parte dos motores, a alimentação destes é
isolada da restante electrónica, tanto pelo regulador de tensão como pela ponte em H.
-41-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
8.3. Desenvolvimento
-42-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
8.4. Testes
Este módulo foi testado apenas medindo os valores de tensão à saída com um
multímetro.
8.5. Conclusões
Este módulo foi o mais simples de implementar pois apenas utiliza cabos; é preciso
ter atenção à sua secção, pois por eles passam correntes bastante elevadas.
A maior dificuldade é a sua manutenção, pois é necessário estar constantemente a
carregar as baterias, principalmente as que alimentam os motores.
-43-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
9. Carregamento de Baterias
A utilização de baterias recarregáveis tem sempre associado um processo de
carregamento. Esse carregamento têm de ser efectuado mediante características
específicas, relacionado com o tipo de células e capacidade que compõem a bateria.
Uma regra básica usada para o carregamento é o de carregar a uma taxa igual a um
décimo da capacidade em Amper-hora da bateria. Assim, a utilização de uma bateria
Ácido-Chumbo com uma capacidade de 17 AH deve ser carregada com uma corrente de
1.7 A.
-44-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
10. Controlo RF
10.1. Introdução
-45-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
Normalmente, este tipo de modulação não é usado nas linhas telefónicas devido às
grandes variações de atenuação que podem ocorrer nos circuitos, tornando difícil fixar
um limiar para decidir entre os valores binários ‘0’ e ‘1’.
-46-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
-47-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
10.4. Desenvolvimento
A utilização deste kits é bastante simples e basta apenas seguir as ligações existentes
na datasheet (ver anexo).
10.5. Testes
10.6. Conclusões
Foi interessante pôr este módulo a funcionar no projecto, devido a sua simplicidade
de implementação e à facilidade que nos dá na movimentação do robô.
Para implementar este módulo na sua totalidade, basta apenas adquirir mais um kit
com uma frequência de trabalho diferente do já existente 433.9MHz e colocá-lo a
funcionar no sentido Robot→PC.
-48-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
11. Software
11.1. Introdução
A função deste módulo é facilitar a interacção entre o utilizador e o veículo,
fornecendo uma interface mais atractiva que um “monte” de botões e um display.
Sendo assim, o módulo de software, a instalar num PC, permite ao utilizador conduzir o
veículo através das teclas de cursor do teclado, e visualizar algumas informações
importantes.
11.3. Desenvolvimento
-49-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
-50-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
que permite configurar a porta série, porta pela qual se comunica com o veículo. A
janela que permite configurar os outros dois parâmetros apresenta-se de seguida.
Factor de aceleração - Permite definir o valor numérico que irá ser incrementado ou
decrementado ao valor da velocidade, consoante a tecla de acelerar ou travar seja
premida. Exemplo: se a velocidade actual for 100 e o factor de aceleração 2 quando a
tecla de acelerar for premida ficamos como uma velocidade de 102, se o factor de
aceleração em vez de 2 fosse 4, ficaríamos com 104.
Para criar um novo utilizador, basta clicar na opção Create, que dará acesso à seguinte
janela, introduzindo-se para o efeito o nome do novo utilizador e a password pretendida.
-51-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
Para criar a sua própria configuração, o novo utilizador deverá sair e voltar a entrar na
aplicação com o respectivo user name e password.
Para apagar um utilizador, bastar clicar na opção Delete, que dará acesso à seguinte
janela.
-52-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
11.3.3. Comando
O utilizador interage com o comando através do teclado do PC, a descrição das teclas
utilizadas assim com a sua funcionalidade são as seguintes:
-53-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
Motor
Propriedades:
ForwardChar – Caracter que coloca o motor em marcha a frente
BackwardChar – Caracter que coloca o motor em marcha a trás
Valor – Valor da velocidade do motor
ValorMinimo – Valor mínimo que o motor pode atingir
ValorMaximo – Valor máximo que o motor pode atingir
AcelerarChar – Caracter para acelerar o motor
PararChar – Caracter para Parar o motor
TravarChar – Caracter para Travar/desacelerar o motor
Métodos
Acelerar()
Travar()
DirForward()
DirBackward()
Eventos
Public Event MotorAcelerou(NovoValor As Integer)
Public Event MotorTravou(NovoValor As Integer)
Public Event MotorParou(NovoValor As Integer)
Public Event ValorMaxAtingido(ValorMaximo As Integer)
Public Event ValorMinAtingido(ValorMinimo As Integer)
Encoder
Propriedades:
Valor - Valor no tacómetro
LeituraChar - Caracter para leitura do tacómetro
Métodos
LerEncoder
11.4. Testes
À medida que o código foi sendo desenvolvido, foi testado a sua funcionalidade.
-54-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
11.5. Conclusões
Ao utilizar um novo tipo de linguagem de programação ficamos a aperceber-nos das
suas potencialidades, neste caso o VB, no rápido desenvolvimento de aplicações.
-55-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
12. Conclusões
Definição de objectivos. Nesta fase, que foi constituída basicamente por discussões
entre nós e troca de impressões com o professor orientador do projecto, ficaram
definidos em traços gerais os objectivos do projecto; foi delineada também a
constituição física dos vários módulos, protocolos a usar e lista de componentes.
Preparação teórica. Esta fase coexistiu com a fase anterior durante algum tempo e
foi caracterizada pelo estudo teórico de alguns campos de interesse, e pela investigação
de assuntos de natureza prática como o assembler da Microchip e especificações de
microcontroladores.
Os alunos consideram que esta foi uma boa experiência, uma vez que os
conhecimentos adquiridos foram sem dúvida interessantes. Devido à abrangência deste
projecto foi possível aplicar conhecimentos já adquiridos ao longo do curso, e de certa
forma até consolidá-los, mas também existiu um grande esforço de investigação e
aprendizagem de novos conceitos e técnicas. Fica no entanto a noção que quanto mais
se progride em conhecimento mais coisas há que é necessário saber.
-56-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
-57-
EST Setúbal/IPS – Escola Superior de Tecnologia de Setúbal EST/DEE/ET
Referências Bibliográficas
Notas da disciplina de Sistemas Digitais1 leccionada no 2º semestre de 1996 no âmbito
do Bacharelato em Engenharia de Electrónica e Computadores.
Smith & Amundsen, Teach yourself database programming with visual basic 6 in 21
days, Sams
http://www.maxonmotor.com/index_a.cfm
http://www.datasheetlocator.com/po/
http://www.rfsolutions.co.uk/
Anexos
-58-