micromouse - descrição de implementação e montagem de protótipo
TRANSCRIPT
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS
ISNTITUTO POLITÉCNICO
Campus Coração Eucarístico – Unidade Belo Horizonte Av. Dom José Gaspar, 500, Prédio 03 – Bairro Coração Eucarístico – 30.535-610 – Belo Horizonte – MG
Telefone: (0xx31) 3053-5901 – Endereço eletrônico: www.ipuc.pucminas.br
PROJETO FINAL
DESCRIÇÃO DE IMPLEMENTAÇÃO E MONTAGEM DE PROTÓTIPO
DANIEL DE CASTRO RIBEIRO RESENDE
MARCOS AZEVEDO MEIJON CAMPOLINA
Belo Horizonte
Novembro/2012
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS
ISNTITUTO POLITÉCNICO
Campus Coração Eucarístico – Unidade Belo Horizonte Av. Dom José Gaspar, 500, Prédio 03 – Bairro Coração Eucarístico – 30.535-610 – Belo Horizonte – MG
Telefone: (0xx31) 3053-5901 – Endereço eletrônico: www.ipuc.pucminas.br
O PROJETO
prático, da disciplina Laboratório Sistemas digitais II, consiste na implementação de um protótipo que
tenha seu sistema de controle e comando elétrico baseado na programação embarcada de um
microcontrolador.
Quando da apresentação do pré-projeto, sugerimos ter como objetivo a implementação de um
pequeno veículo. Este, teria certo nível de automação em sua locomoção, que o possibilitaria, apesar de
não ter rota ou destino certo, não se chocar a possíveis obstáculos. Então, orientados pelo Sr. Martinho
Henrique Novaes Murta, professor responsável pela disciplina, de que seria uma abordagem válida e
possível, seguimos adiante.
ESTRUTURA FÍSICA
O chassis
construido em alumínio, visando leveza e sustentação, foi acrescentado de três rodas. Duas rodas
maiores, possuindo diâmetro de quatro e meio centímetros e envolvidas em borracha para aderência e
uma terceira "roda livre" apenas para equilíbrio da estrutura. As duas primeiras estão vinculadas, cada
uma, à um motor "DC" ("direct current", Splindle RF-300EA 5,9V) independente, por meio de polias e
corrêias para transmissão e redução (Chassis - Figura 01).
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS
ISNTITUTO POLITÉCNICO
Campus Coração Eucarístico – Unidade Belo Horizonte Av. Dom José Gaspar, 500, Prédio 03 – Bairro Coração Eucarístico – 30.535-610 – Belo Horizonte – MG
Telefone: (0xx31) 3053-5901 – Endereço eletrônico: www.ipuc.pucminas.br
Chassis - Figura 01
O circuito,
trata-se de apenas uma placa de circuito impresso (Placa do circuito - Figura 02), sobre a estrutura do
protótipo (Protótipo - Figura 04). Planejado para a entrada de nove volts, que alimentam diretamente as
duas "pontes-h" (compostas por transistores BC327/PNP e BC337/NPN) e um regulador de tensão
(LM7805) (Esquema do circuito - Figura 03). As pontes são responsáveis por chavear a passagem de
corrente aos motores de acordo com os sinais lógicos recebidos, ocasionalmente invertendo os sentidos
de rotação e funcionando como amplicadoras de corrente. O regulador de tensão, por sua vez, fornece
cinco volts ao microcontrolador (MC68HC908QY4), que executa o comando lógico, e ao circuito
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS
ISNTITUTO POLITÉCNICO
Campus Coração Eucarístico – Unidade Belo Horizonte Av. Dom José Gaspar, 500, Prédio 03 – Bairro Coração Eucarístico – 30.535-610 – Belo Horizonte – MG
Telefone: (0xx31) 3053-5901 – Endereço eletrônico: www.ipuc.pucminas.br
integrado quádruplo de portas "NAND", que sincroniza os sinais aos motores (às "pontes-h") com a
freqüência e o "duty cicle" do "PWM" ("pulse width modulation") configurado pelo firmware, e, ainda
aos três conjuntos de "LEDs” ("light emissor diodes" de frequência infra-vermelha) e foto-transistores,
que são responsáveis por fazer o papel de sensores, enviando sinais analógicos (numa escala de zero a
cinco volts) a três canais do conversor analógico/digital do microcontrolador, como forma de mensurar
as distâncias em três direções à frente do veículo (Circuito - Figura 03).
Placa do circuito - Figura 02
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS
ISNTITUTO POLITÉCNICO
Campus Coração Eucarístico – Unidade Belo Horizonte Av. Dom José Gaspar, 500, Prédio 03 – Bairro Coração Eucarístico – 30.535-610 – Belo Horizonte – MG
Telefone: (0xx31) 3053-5901 – Endereço eletrônico: www.ipuc.pucminas.br
Esquema do circuito - Figura 03
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS
ISNTITUTO POLITÉCNICO
Campus Coração Eucarístico – Unidade Belo Horizonte Av. Dom José Gaspar, 500, Prédio 03 – Bairro Coração Eucarístico – 30.535-610 – Belo Horizonte – MG
Telefone: (0xx31) 3053-5901 – Endereço eletrônico: www.ipuc.pucminas.br
ROTINA EMBARCADA
O código,
ou "firmware" foi elaborado em Assembly. É uma notação legível por humanos para o código de
máquina que uma arquitetura computacional específica usa. Utilizada para programar dispositivos
computacionais, como microprocessadores e microcontroladores. A linguagem de máquina, que é um
mero padrão de bits, torna-se legível pela substituição dos valores em bruto por símbolos
chamados mnemónicos.
Basicamente, o código (mais detalhado em seus próprios comentários) teve como objetivo,
realizar a seguinte rotina:
A leitura e conversão por "polling" dos foto-transistores, através dos canais dois, três e quatro
do conversor analógico/digital. A comparação por operações aritméticas das respostas dessas leituras em
bits para encontrar a maior das três. O teste desta maior leitura para o conhecimento da possível
proximidade a um obstáculo, verificando se está maior do que cento e vinte e sete bits. O que seria cerca
de dois e meio volts, ou trinta centímetros de distância. Visto que nosso conversor trabalha com uma
resolução de 256 bits. Confirmada a presença de algum obstáculo, temos a execução de uma das sub-
rotinas de desvio, que se consistem em alternar quais motores tracionarão e em quais sentidos. Sendo
que para a leitura de maior proximidade à frente (em linha reta à trajetória) utilizamos um "buffer", para
certeza da ocorrência. Pois não seria ideal que esta sub-rotina de desvio, em específico, ocorresse por
ruídos de leiura. Esta sub-rotina consiste em deixar o veículo em ré durante a realização de "polling" de
leitura, até que o obstáculo esteja afastado, então os sentidos dos motores são definidos como contrários
entre si e há uma contagem de tempo de um segundo (suficiente a uma inverçao de cerca cento e oitenta
graus no sentido da rota original) antes que o veículo volte a caminhar para frente (código abaixo).
Firmware:
;************** HABBIT I **************
INCLUDE 'derivative.inc'
XDEF _Startup, main
XREF __SEG_END_SSTACK
MY_ZEROPAGE: SECTION SHORT
LEDL: DS 1
LEDM: DS 1
LEDR: DS 1
AUXCOUNT: DS 1
AUXAVERAGE: DS 1
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS
ISNTITUTO POLITÉCNICO
Campus Coração Eucarístico – Unidade Belo Horizonte Av. Dom José Gaspar, 500, Prédio 03 – Bairro Coração Eucarístico – 30.535-610 – Belo Horizonte – MG
Telefone: (0xx31) 3053-5901 – Endereço eletrônico: www.ipuc.pucminas.br
TEMPO: DS 1
CONT: DS 2
MyCode: SECTION
main:
_Startup:
INICIO:
MOV #0,CONFIG2 ;3,2MHz, SEM IRQ, COM PULLUP, SEM RESET
MOV #$19,CONFIG1 ;SEM COP,SEM LVI, 5V, STOP ILEGAL
MOV #1,DDRA ;BIT 0 DA PORTA A SAIDA
MOV #$C3,DDRB ;BITS 7,6,1,0 DA PORTA B SAIDAS
MOV #$30,TSC ;PARA E RESETA
MOV #$46,TSC ;HABILITA INTTIMER E PRESCALER 64 (CLK 50K)
LDHX #100 ;PERIODO DE 2mS
STHX TMODH
MOV #$5A,TSC0
LDHX #80 ; PWM COM OITENTA POR CENTO DE PERIODO ATIVO
STHX TCH0H
MOV #$40,ADICLK ;40uSEG POR CONVERSAO
CLI
CLR LEDL
CLR LEDM
CLR LEDR
CLR TEMPO
LDHX #0
STHX CONT
MOV #$82,PTB ;INICIA MOVIMENTO A FRENTE
READ:
MOV #1,ADSCR ;INICIA LEITURA PTA1 (SENSOR ESQUERDO)
LPL:
BRCLR 7,ADSCR,LPL ;LOOP DE ESPERA DURANTE LEITURA
MOV ADR,LEDL
MOV #2,ADSCR ;INICIA LEITURA PTA4 (SENSOR CENTRAL)
LPM:
BRCLR 7,ADSCR,LPM
MOV ADR,LEDM
MOV #3,ADSCR ;INICIA LEITURA PTA5 (SENSOR DIREITO)
LPR:
BRCLR 7,ADSCR,LPR
MOV ADR,LEDR
BSR TURN ;SEGUE OU VIRA
BRA READ ;LOOP READ
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS
ISNTITUTO POLITÉCNICO
Campus Coração Eucarístico – Unidade Belo Horizonte Av. Dom José Gaspar, 500, Prédio 03 – Bairro Coração Eucarístico – 30.535-610 – Belo Horizonte – MG
Telefone: (0xx31) 3053-5901 – Endereço eletrônico: www.ipuc.pucminas.br
TURN: ;PROCURA MAIOR
LDA LEDL ;CARREGA EM A
CMP LEDM ;COMPARA LEDL COM LEDM
BCS MIDBIGGER ;SE TEVE CARRY BRANCH (LEDM>LEDL)
;(LEDL>LEDM)
CMP LEDR
BCS RIGHTBIGGER ;(LEDR>LEDL>LEDM)
CMP #$7F ;CMP 2,5V OU 30CM ;[LEDL>(LEDM|LEDR)]
BCC TURNR
MOV #$82,PTB ;PARA FRENTE
RTS ;RETORNA DA SUB ROTINA
TURNR: ;VIRA PARA DIREITA [LEDL>(LEDM|LEDR)]
MOV #$02,PTB ;VIRA A DIREITA
RTS
RIGHTBIGGER:
LDA LEDR
CMP #$7F
BCC TURNL
MOV #$82,PTB ;PARA FRENTE
RTS
TURNL: ;VIRA PARA ESQUERDA (LEDR>LEDL>LEDM)
MOV #$80,PTB ;VIRA A ESQUERDA
RTS
MIDBIGGER: ;LEDM>LEDL
LDA LEDM
CMP LEDR
BCS RIGHTBIGGER ;(LEDR>LEDM>LEDL)
MOV #$F,AUXCOUNT ;BUFFER
CLR AUXAVERAGE
TRUE:
DEC AUXCOUNT
BEQ AVERAGE
MOV #2,ADSCR
LPAW:
BRCLR 7,ADSCR,LPAW
MOV ADR,LEDM
LDA LEDM
CMP #$7F
BCS TRUE
INC AUXAVERAGE
BRA TRUE
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS
ISNTITUTO POLITÉCNICO
Campus Coração Eucarístico – Unidade Belo Horizonte Av. Dom José Gaspar, 500, Prédio 03 – Bairro Coração Eucarístico – 30.535-610 – Belo Horizonte – MG
Telefone: (0xx31) 3053-5901 – Endereço eletrônico: www.ipuc.pucminas.br
AVERAGE:
LDA AUXAVERAGE
CMP #$B
BCS FORWARD
BACK: ;RETORNA [LEDM>(LEDL|LEDR)]
MOV #$41,PTB ;RE
AWAY:
MOV #2,ADSCR
LPA:
BRCLR 7,ADSCR,LPA
LDA ADR
CMP #$7F
BCC AWAY
MOV #$42,PTB ;SENTIDO HORARIO
MOV #1,TEMPO ;1SEG
CLOCKWISE:
LDA TEMPO
BNE CLOCKWISE
FORWARD:
MOV #$82,PTB ;PARA FRENTE
RTS
TIM:
BCLR 7,TSC0 ;LIMPA FLAG
RTI ;DESEMPILHA E RETORNA
TIMI: ;DECREMENTA TEMPO A CADA 1SEG
INC CONT
LDA CONT
CMP #100
BNE SAIROT
CLR CONT
INC CONT+1
LDA CONT+1
CMP #5
BNE SAIROT
CLR CONT+1
DEC TEMPO
SAIROT:
BCLR 7,TSC
RTI
ORG $FFF6
DC.W TIM
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS
ISNTITUTO POLITÉCNICO
Campus Coração Eucarístico – Unidade Belo Horizonte Av. Dom José Gaspar, 500, Prédio 03 – Bairro Coração Eucarístico – 30.535-610 – Belo Horizonte – MG
Telefone: (0xx31) 3053-5901 – Endereço eletrônico: www.ipuc.pucminas.br
ORG $FFF2
DC.W TIMI
END
Conclusão,
através das implementações de softwares embutidos, montagem de interfaces e simulação de códigos
utilizando o compilador Codewarrior, nosso aprendizado de conceitos de programação, compilação e
funcionamento de microcontroladores aumentaram muito ao longo do semestre letivo. Principalmente
em relação a projetos de pequeno e médio portes, utilizando linguagem C ou Assembly.
Alcançamos códigos mais lógicos e leves, com reduzida ocupação de memória, interpretamos
melhor manuais e "data sheets", praticamos o desenho e a simulação de pequenos circuitos, e,
adquirimos um ponto de vista melhor, quanto ao caminho à ser percorrido no projeto de um protótipo.
A utilização de microcontroladores de baixo custo, robustos e versáteis, como os da família
HC08 da Freescale, nos permitiu entender, que o nível de qualidade e a confiabilidade, nem sempre
dizem respeito ao investimento material, mas sim à engenharia aplicada no projeto.
O protótipo (Protótipo - Figura 04) em funcionamento, energizado por uma fonte chaveada
comum, pode ser visto em vídeo neste link: <http://youtu.be/FBhPfGrjlmM>.
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS
ISNTITUTO POLITÉCNICO
Campus Coração Eucarístico – Unidade Belo Horizonte Av. Dom José Gaspar, 500, Prédio 03 – Bairro Coração Eucarístico – 30.535-610 – Belo Horizonte – MG
Telefone: (0xx31) 3053-5901 – Endereço eletrônico: www.ipuc.pucminas.br
Protótipo - Figura 04
PONTIFÍCIA UNIVERSIDADE CATÓLICA DE MINAS GERAIS
ISNTITUTO POLITÉCNICO
Campus Coração Eucarístico – Unidade Belo Horizonte Av. Dom José Gaspar, 500, Prédio 03 – Bairro Coração Eucarístico – 30.535-610 – Belo Horizonte – MG
Telefone: (0xx31) 3053-5901 – Endereço eletrônico: www.ipuc.pucminas.br
REFERÊNCIAS
MOTOROLA. Data Sheet MC68HC908QY4/D Rev. 0.1, 12/2002. © Motorola, Inc. 2002.
http://motorola.com/semiconductors
CNZ Engenharia e Informática Ltda. Treinamento de Microcontroladores Baseado na família
MC68HC908QT/QY. www.cnz.com.br
MOTOROLA. CPU08 Central Processor Unit Reference Manual Rev. 3, 2/2001. © Motorola, Inc.
2002. http://motorola.com/semiconductors
MOTOROLA. Timer Interface Module 08 Rev. 1.0, 1996. © Motorola, Inc. 2002.
http://motorola.com/semiconductors
PEREIRA, Fábio. Microcontroladores HC908Q: teoria e prática. São Paulo: Érica, 2004.
MALVINO, Albert Paul. Eletrônica. Ed. McGraw Hill.