12
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

VEÍCULO AUTÔMATO COM PERCEPÇÃO DE OBSTÁCULOS

Embed Size (px)

Citation preview

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.