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

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

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

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.