Upload
phamtuong
View
216
Download
1
Embed Size (px)
Citation preview
CENTRO UNIVERSITÁRIO POSITIVO
NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS
ENGENHARIA DA COMPUTAÇÃO
ECOBATIMETRO – SISTEMA PARA MEDIÇÃO DE
PROFUNDIDADE
Eduardo Bittencourt Robin
Monografia apresentada à disciplina de Projeto Final como requisito parcial à conclusão
do Curso de Engenharia da Computação, orientada pelo Prof. Alessandro Zimmer.
UNICENP/NCET
Curitiba
2
2007
TERMO DE APROVAÇÃO
Eduardo Bittencourt Robin
Ecobatimetro – Sistema para medição de profundidade.
Monografia aprovada como requisito parcial à conclusão do curso de Engenharia da Computação
do Centro Universitário Positivo, pela seguinte banca examinadora:
Prof. Alessandro Zimmer (orientador)
Prof. Marcelo Mikosz Gonçalves
Prof. Adriana Cursino Thomé
Curitiba, 5 de Novembro de 2007.
3
AGRADECIMENTOS
Primeiramente agradeço a Deus por ter me dado à oportunidade de cursar uma faculdade e
chegar até onde eu cheguei.
Agradeço a meu professor orientador Alessandro Zimmer que me ajudou e me deu todo o apoio
necessário durante o desenvolvimento deste projeto.
A meus pais por terem se esforçado para que eu tenha as oportunidades que eles não tiveram.
A todos os meus familiares que me deram força e apoio.
A minha noiva que me agüentou por todo este período de dificuldades.
E a todos os professores da Engenharia da computação pelos conhecimentos compartilhados.
4
RESUMO
Este projeto visa desenvolver um sistema completo para medições de profundidade, com uma
maior precisão facilitando assim a fase do desenho técnico ou realizar a verificação da
profundidade de um canal em um porto, por exemplo.
A idéia é que o profissional da área utilize o equipamento traçando todo o trajeto andando de
uma extremidade até a outra. No caso deste projeto o hardware será apresentado em uma
maquete retangular que simulará o ambiente com desníveis (retangular e sem a presença de
água), os sensores ultrasonicos serão movidos através de 2 eixos (x,y), que se moverão através
de toda a área retangular utilizando motores de passo. O movimento será dado através de duas
rotas pré-definias via software em que o usuário inicia o processo utilizando a rota que mais lhe
agrada.
Poderá também ser configurado via software a precisão na qual o sistema irá executar as
medidas, na precisão mais baixa está disponível a opção de gravar os pontos da medição na
memória no hardware.
Terminada a medição, ou quando uma medição salva é aberta, será disponibilizada ao usuário do
software a opção de representação dos pontos medidos em um gráfico em 3D.
Palavras chave:
Ultrasom, microcontrolador, batimetria
5
Ecobatimetro - A kind of deep measurer
ABSTRACT
This project has the objective to develop a complete system for depth measurements, with a great
precision thus facilitating the technician drawing of this phase or making the verification in a sea
port depth for example.
The ideia will be the professional of this area uses the equipment for tracing the entire dimension
around the area, as some lines.
In the case of this project the hardware will be presented in a rectangular mockup that will
simulate the environment of a lake without the water, the ultrasonic sensors will be moved
through 2 axles (x, y), that they will move through all the rectangular area using the step motors.
The movement will be given through two daily routes before defined by the software where the
user initiates the process using the route that more pleases to it.
All the measured points will be stored in an external memory to the microcontroller and if case
the system will be connected witch the microcomputer, it will be shown in real time the graph of
the measurement current.
Finished the measurement, it´ll be resulted the points measured in a 3D grafh the representation
option to software user.
Key words:
Ultrasonic, microcontroler
6
SUMÁRIO
LISTA DE FIGURAS
LISTA DE TABELAS
LISTA DE SIGLAS
LISTA DE SÍMBOLOS
Pág.
CAPÍTULO 1 - INTRODUÇÃO...............................................................................................13
CAPÍTULO 2 – FUNDAMENTAÇÃO TEÓRICA...................................................................15
2.1-Microcontrolador.............................................................................................................15
2.1.1-Unidade de Memória .................................................................................................15 2.1.2-Unidade Central de Processamento............................................................................16 2.1.3-Barramento................................................................................................................17 2.1.4-Unidade de Entrada e Saída .......................................................................................18 2.1.5-Microcontrolador PIC................................................................................................19
2.2-Memória..........................................................................................................................20
2.2.1 – Memória Rom.........................................................................................................20 2.2.2 - Memória utilizada no projeto. ..................................................................................21
2.3-Filtros..............................................................................................................................22
2.4-Transdutores....................................................................................................................23
2.5-Sensores ..........................................................................................................................23
2.5.1 - Sensores de Ultra-som:............................................................................................23
CAPÍTULO 3 – ESPECIFICAÇÃO DO PROJETO..................................................................26
3.1 – Especificação de hardware ............................................................................................26
3.2 – Especificação de Software.............................................................................................29
CAPÍTULO 4 – DESENVOLVIMENTO E IMPLEMENTAÇÃO............................................31
4.1 – Testes ...........................................................................................................................31
4.1.1 – Teste dos sensores...................................................................................................31 4.1.2 – Teste de comunicação serial e Unidade de controle.................................................31 4.1.3 – Teste da fonte de alimentação .................................................................................33
4.2 Projeto do Hardware ........................................................................................................33
4.2.1 Fonte de alimentação. ................................................................................................34 4.2.2 Drivers de Potencia....................................................................................................34 4.2.3 Unidade de Controle ..................................................................................................35 4.2.4 Kit Sonar ...................................................................................................................36
4.3 Projeto do Software .........................................................................................................37
7
4.3.1 – Firmware ................................................................................................................37 4.3.1.1 Trechos de código do firmware............................................................................39
4.3.2 – Software .................................................................................................................44 4.3.2.1 Diagrama de Casos de Uso ..................................................................................44 4.3.2.2 Diagrama de UML...............................................................................................45 4.3.2.3 Interface ..............................................................................................................47 4.3.2.3 Trechos de código................................................................................................49
CAPÍTULO 5 – VALIDAÇÃO E RESULTADOS ...................................................................52
CAPÍTULO 6 – CONCLUSÃO................................................................................................57
CAPÍTULO 7 - REFERÊNCIAS BIBLIOGRÁFICAS .............................................................58
APÊNDICE A – CRONOGRAMA...........................................................................................60
APÊNDICE B – CUSTOS........................................................................................................61
8
LISTA DE FIGURAS
Fig. 1.1 - Diagrama em Blocos do Sistema...................................................................................14
Fig. 2.1 – Funcionamento Simplificado da Memória do Microcontrolador..................................16
Fig. 2.2 - Funcionamento Simplificado do Processamento do Microcontrolador.........................16
Fig. 2.3 - Funcionamento Simplificado do Barramento do Microcontrolador.Fig........................17
Fig. 2.4 - Esquema de um Microcontrolador com os seus Elementos Básicos.............................18
Fig. 2.5 – Funcionamento de Sensores de Ultra-Som....................................................................24
Fig. 2.6 - Foto do Kit Sonar Utilizado...........................................................................................25
Fig. 3.1 - Diagrama em Blocos do Sistema...................................................................................26
Fig. 3.2 - Rotas Pré-definidas Via Software..................................................................................27
Fig 3.3 – Desenho do Protótipo.....................................................................................................28
Fig 3.4 – Diagrama de Estados do Firmware................................................................................29
Fig 3.5 – Diagrama de Blocos do Software...................................................................................30
Fig. 4.1 – Gráfico de Fesposta do Kit Sonar..................................................................................31
Fig. 4.2 – Programa para teste da serial.........................................................................................32
Fig. 4.3 – Visualização dos Dados da Serial..................................................................................32
Fig. 4.4 – Medição da fonte +12v..................................................................................................33
Fig. 4.5 – Medição da fonte +5v....................................................................................................33
Fig. 4.6 – Esquemático da Fonte 12v ............................................................................................34
Fig. 4.7 – Esquemático da Fonte 5v...............................................................................................34
Fig. 4.8 – Esquemático dos Drivers de Potência...........................................................................35
Fig. 4.9 – Esquemático da Unidade de Controle...........................................................................35
Fig. 4.10 – Esquemático da Memória............................................................................................36
Fig. 4.11 – Esquemático da Interface Serial..................................................................................36
Fig. 4.12 – Fluxograma do Firmware............................................................................................48
Fig. 4.13 – Diagrama de Casos de Uso..........................................................................................44
Fig. 4.14 – Diagrama UML da Classe Packet................................................................................45
Fig. 4.15 – Diagrama UML da Classe PortaSerial........................................................................45
Fig. 4.16 – Diagrama UML da Classe trdVaiOrigem....................................................................46
Fig. 4.17 – Diagrama UML da Classe trdColetaTotal...................................................................46
Fig. 4.18 – Diagrama UML da Classe tdrMedições......................................................................47
Fig. 4.19 – Tela Principal do EcoView..........................................................................................48
Fig. 4.20 – Tela de Configuração da Serial...................................................................................59
Fig. 5.1 – Foto do Protótipo (Vista Frontal)..................................................................................52
Fig. 5.2 – Foto do Protótipo (Vista de cima).................................................................................52
9
Fig. 5.3 – Pontos Recém Medidos.................................................................................................53
Fig. 5.4 – Pontos Lidos da Memória..............................................................................................53
Fig. 5.5 – Gráfico 3D com 3200 Pontos........................................................................................54
Fig. 5.6 – Tela Principal................................................................................................................55
Fig. 5.7 – Visualização do Ruído no Gráfico................................................................................55
10
LISTA DE TABELAS
Tabela 2.1 - Informações do Microcontrolador.................................................................... 20
Tabela 2.2 - Informações da Memória................................................................................. 21
11
LISTA DE SIGLAS
NCET- Núcleo de Ciências Exatas e Tecnológicas
UNICENP – Centro Universitário Positivo
RAM - Random Access Memory
ROM - Read-Only Memory
CPU - Unidade Central de Processamento
TTL - Transistor-transistor logic
CMOS - Complementary metal-oxide-semiconductor
I/O - Input/Output
AD – Analógico/Digital
PROM - Programmable Read-Only Memory
EPROM - Electrically Programmable Read-Only Memory
EEPROM - Electrically Erasable Programmable Read-Only Memory
TOF - Time of flight
ECE - Escola de Engenharia
UFRGS - Universidade Federal do Rio Grande do Sul
12
LISTA DE SÍMBOLOS
ΩΩΩΩ - ohm
Hz - hertz
v - volts
M - mega
K - kilo
dB - decibel
m - metro
mm - milimetro
p – pico
F - Faraday
Vp-p – volts pico a pico
13
CAPÍTULO 1 - INTRODUÇÃO
A batimetria é a medição da profundidade e é expressa cartograficamente por curvas batimétricas
que unem pontos da mesma profundidade com eqüidistâncias verticais, à semelhança das curvas
de nível topográfico.
A intenção deste projeto é facilitar a visualização gráfica dos pontos medidos utilizando o
aparelho chamado ecobatimetro.
Para que as medições sejam realizadas com sucesso o ecobatimetro utiliza sensores de ultrasom,
para assim ser capaz de medir a distancia da superfície até o fundo do ambiente que está sendo
medido.
Duas grandes aplicações desse projeto são:
• Facilidade na fase do desenho técnico, pois o sistema já disponibilizará para o
profissional da área todos os pontos da medição com suas respectivas coordenadas.
• Realização da verificação da profundidade de um canal em um porto para prevenir que
um navio venha a encalhar no mesmo.
A compra ou até mesmo o aluguel de um aparelho similar a este possui um custo muito elevado,
por esse motivo foi desenvolvido este projeto que visa ser um produto com um custo inferior aos
que existem no mercado.
14
A figura a seguir (Figura 1.1) mostra o diagrama em blocos do sistema.
Fig. 1.1 - Diagrama em Blocos do Sistema
15
CAPÍTULO 2 – FUNDAMENTAÇÃO TEÓRICA
Neste capitulo são apresentados os principais temas utilizados no projeto.
• Microcontrolador;
• Memória;
• Filtros;
• Transdutores;
• Sensores.
2.1-Microcontrolador
Os microcontroladores são diferentes dos processadores, pois integram em um único CHIP: o
processador, uma memória RAM (dados), uma memória ROM (programa) e outros recursos.
2.1.1-Unidade de Memória
A memória é a parte do microcontrolador cuja função é guardar dados.
A maneira mais fácil de explicar é descrevê-la como uma grande prateleira cheia de gavetas. Se
supusermos que marcamos as gavetas de modo a elas não se confundirem umas com as outras,
então o seu conteúdo será facilmente acessível. Basta saber a designação da gaveta e o seu
conteúdo será conhecido. (MIKROE, 2007)
16
Fig. 2.1 – Funcionamento Simplificado da Memória do Microcontrolador.
FONTE: adaptada de MIKROE (2007).
2.1.2-Unidade Central de Processamento
Adicionar vários locais de memória a um bloco específico pode-se ter a capacidade de
multiplicar, dividir, subtrair e mover o seus conteúdos de um local de memória para outro. Essa
parte é chamada "central processing unit" (CPU) ou Unidade Central de Processamento. Os
locais de memória nela contidos chamam-se registros.
Fig. 2.2 - Funcionamento Simplificado do Processamento do Microcontrolador.
FONTE: adaptada de MIKROE (2007).
17
Os registros são, portanto, locais de memória cujo papel é ajudar a executar várias operações
matemáticas ou quaisquer outras operações com dados, quaisquer que sejam os locais em que
estes se encontrem.
2.1.3-Barramento
Este "caminho" designa-se por "bus". Fisicamente ele corresponde a um grupo de 8, 16 ou mais
fios.
Existem dois tipos de bus: bus de dados e de endereço. O número de linhas do primeiro depende
da quantidade de memória que desejamos endereçar e o número de linhas do outro depende da
largura da palavra de dados. O primeiro bus serve para transmitir endereços do CPU para a
memória e o segundo para ligar todos os blocos dentro do microcontrolador.
Fig. 2.3 - Funcionamento Simplificado do Barramento do Microcontrolador.
FONTE: adaptada de MIKROE (2007).
18
2.1.4-Unidade de Entrada e Saída
Estas localizações que acabamos de adicionar, chamam-se "portas". Existem vários tipos de
portas: de entrada, de saída e de entrada/saída. Quando trabalhamos com portas, primeiro de tudo
é necessário escolher a porta com que queremos trabalhar e, em seguida, enviar ou receber dados
para ou dessa porta.
Fig. 2.4 - Esquema de um Microcontrolador com os seus Elementos Básicos
e Ligações Internas.
FONTE: adaptada de MIKROE (2007).
19
Numa aplicação real, um microcontrolador, por si só, não é suficiente. Além dele, nós
necessitamos do programa que vai ser executado e de mais alguns elementos que constituirão
uma interface lógica para outros elementos.
2.1.5-Microcontrolador PIC
O PIC é um circuito integrado produzido pela Microchip Technology Inc. , que pertence a
categoria dos microcontroladores, ou seja, um componente integrado que em um único
dispositivo contem todos os circuitos necessários para realizar um completo sistema digital
programável. O microcontrolador PIC pode ser visto externamente como um circuito integrado
TTL ou CMOS normal, mas internamente dispõe de todos os dispositivos típicos de um sistema
microprocessado, ou seja: Uma CPU (Central Processor Unit ou Unidade de Processamento
Central) e sua finalidade é interpretar as instruções de programa; Uma memória PROM
(Programmable Read Only Memory ou Memória Programável Somente para Leitura) na qual ira
memorizar de maneira permanente as instruções do programa; Uma memória RAM (Random
Access Memory ou Memória de Acesso Aleatório) utilizada para memorizar as variáveis
utilizadas pelo programa; Uma serie de portas de I/O (entrada e saída) para controlar dispositivos
externos ou receber pulsos de sensores, chaves, etc.; Uma serie de dispositivos auxiliares ao
funcionamento, ou seja, gerador de clock, bus, contador, etc. O PIC esta disponível em uma
ampla gama de modelos para melhor adaptar-se as exigências de projetos específicos,
diferenciando-se pelo numero de portas de I/O e pelo espaço disponível para código. Uma
descrição detalhada da topologia do PIC está disponível no site da Microchip, onde conseguimos
encontrar grandes e variadas quantidades de informações técnicas, software de apoio, exemplos
de aplicações e atualizações disponíveis.
Na tabela abaixo (Tabela 2.1) obtem-se as informações do PIC utilizado.
20
TABELA 2.1 - Informações do Microcontrolador
Part Number PIC18F4620
Arquitetura 8Bits
Memória de programação Flash
Espaço para código 64Kbytes
EEPROM interna 1Kbyte
Ram 3968Bytes
Pinos de I/O 36
Canais de AD 13
Timers 1-8Bit e 3-16Bits
Clock máximo 40Mhz
Oscilador Interno 8Mhz
Mínima tensão de alimentação 2v
Máxima tensão de alimentação 5.5v
Invólucro 40 pinos – socket DIP
FONTE: adaptada de MICROCHIP (2007).
2.2-Memória
As memórias são as responsáveis pelo armazenamento de dados e instruções em forma de sinais
digitais em computadores. Para que o processador possa executar suas tarefas, ele busca na
memória todas as informações necessárias ao processamento.
2.2.1 – Memória Rom
ROM (“Read-Only Memory”) como o nome diz é memória somente de leitura. Portanto, só
permite leitura, ou seja, suas informações são gravadas pelo fabricante uma única vez e não
podem ser alteradas ou apagadas depois, podendo apenas ser acessadas. Ou seja, seu conteúdo é
gravado de modo permanente.
21
Existem alguns tipos básicos de memória ROM:
- PROM ("Programmable Read-Only Memory"): Tem sua gravação feita por aparelhos especiais
que trabalham através de uma reação física com elementos elétricos. Os dados gravados na
memória PROM não podem ser apagados ou alterados.
- EPROM ("Electrically Programmable Read-Only Memory"): Os dados gravados na memória
EPROM pode ser apagados pelo uso de radiação ultravioleta permitindo sua reutilização.
- EEPROM ("Electrically Erasable Programmable Read-Only Memory"): Tipo similar à
EPROM. Seu conteúdo pode ser apagado aplicando-se uma voltagem específica aos pinos de
programação. Portanto, pode ter seu conteúdo modificado eletricamente, mesmo quando já
estiver funcionando num circuito eletrônico.
- FlashROM: Memória flash semelhante às EEPROMs. São mais rápidas e de menor custo. É um
tipo de chip de memória para BIOS de computador que permite que esta seja atualizada através
de softwares apropriados.
2.2.2 - Memória utilizada no projeto.
No projeto será utilizada uma memória do tipo EEPROM do fabricante Microchip com as
seguintes características:
TABELA 2.2 - Informações da Memória
Part Number 25AA640
Tensão de operação 1.8v até 5.5v
Tamanho total 8Kbytes
Tamanho da página 32 bytes
Freqüência máxima de clock 1Mhz
Ciclos de escrita (ms) 5
Numero máximo de ciclos de escrita/leitura 1.000.000
Invólucro 8 pinos socket DIP
FONTE: adaptada de MICROCHIP (2007).
22
2.3-Filtros
Filtros são circuitos eletrônicos que tem como finalidade limpar sinais retirando sinais ou ruídos
indesejados no sinal recebido.
Um Filtro pode ser:
• Um circuito de dois acessos chamado de quadripolo, podendo ser linear ou não linear,
concentrado ou distribuído, passivo ou ativo, invariante ou variante no tempo, capaz de
processar sinais elétricos analógicos ou digitais.
• Qualquer quadripolo linear, concentrado e invariante no tempo, capaz de produzir uma
resposta especificada para uma dada excitação.
• Mecanismos ou dispositivos que atuam como filtro de áudio ou instrumentos que
transmitem e absorvem sons seletivamente, são denominados filtros acústicos.
• Determinados dispositivos ópticos que absorvem, em geral seletivamente, radiação
luminosa.
• Dispositivos que além de componentes passivos, contém uma ou mais fontes de tensão
ou corrente dependentes.
• Filtro Butterworth: Filtro que tem função de transferência com característica plana em
baixas freqüências, queda acentuada a partir da freqüência de corte, caindo a zero na
freqüência infinita.
• Filtro Chebyshev: Filtro que apresenta uma característica de amplitude equiondulante na
faixa de passagem.
• Filtro Passa-Alta: Filtro elétrico ou eletrônico que permite a passagem de sinais de altas
freqüências, bloqueando sinais abaixo da freqüência de corte do filtro.
• Filtro Passa-Baixas: Filtro elétrico ou eletrônico que permite a passagem de sinais de
baixas freqüências, atenuando sinais acima da freqüência de corte do filtro.
• Filtro Passa-Faixa: Filtro elétrico ou eletrônico que só permite a passagem de sinais de
freqüências compreendidas dentro de certa faixa de freqüência.
• Filtro Rejeita-Faixa: Filtro elétrico ou eletrônico que rejeita sinais numa dada faixa de
freqüências e permite a passagem de todos os demais.
23
2.4-Transdutores
Segundo Seippel um transdutor é um dispositivo que converte uma forma de energia ou
quantidade física em outra. (FONSECA)
Os transdutores dividem-se em dois subconjuntos, sensores fornecem informações de entradas
em nosso sistema a partir do mundo externo e atuadores que executam ações de saída para o
mundo externo.
2.5-Sensores
Para se poder automatizar um sistema de produção é necessário coletar informações sobre o
estado dos equipamentos, das peças, etc. Esta informação deve ser fornecida de alguma maneira
para o computador digital. Para tanto duas fases são necessárias: primeiro, a coleta da
informação através de sensores que convertam a informação de estado para um sinal elétrico, e
segundo, a conversão do sinal elétrico para um sinal digital compreensível pelos programas
manipuladores da informação.
O princípio de funcionamento de um sensor é relativamente simples: o valor de estado de uma
grandeza deve ser quantificado por alguma grandeza física, intensidade de luz, calor, som ou
posição, força, pressão ou velocidade. Uma variação da grandeza física provoca no sensor uma
variação do seu sinal elétrico de saída.
2.5.1 - Sensores de Ultra-som:
Usam um emissor de ultra-som, tipicamente, um cristal piezo-elétrico, e um receptor.
Uma onda de som ultra-sônica, acima de 20 kHz é emitida e refletida por um obstáculo, através
do cálculo do tempo de ida e volta é possível determinar a presença dos obstáculos e a sua
posição. Através do diagrama abaixo, pode-se verificar o funcionamento funcionalidade de
sensores deste tipo.
24
Fig. 2.5 – Funcionamento de Sensores de Ultra-Som
FONTE: adaptada de ECE-UFRGS (2007).
Torna-se evidente que o sonar funciona como um temporizador, que começa a atuar quando a
onda sonora de alta freqüência é enviada, e mantém-se ativo até o eco da onda retornar ao
transdutor.
O tempo que o sinal leva para retornar denomina-se TOF, (Time of flight); e através dele pode-se
calcular a distância de um objeto.
A distância do alvo e dada por :
(1)
Sabe-se ainda que a velocidade do som á dependente da temperatura, o que leva a estabelecer
parâmetros como a temperatura do ambiente de prova.
25
Neste projeto para realizar as medições será utilizado um kit fabricado pela TATO Equipamentos
Eletrônicos (Figura 2.6), que ao ser ligado em 5v já começa a realizar medição e disponibiliza ao
usuário um pulso em nível alto cuja duração é o tempo para som ir até o obstáculo e voltar, então
é necessário dividir este tempo por dois. A figura a seguir mostra uma foto do sensor utlizado.
Fig. 2.6 - Foto do Kit Sonar Utilizado
26
CAPÍTULO 3 – ESPECIFICAÇÃO DO PROJETO
Neste capítulo é apresentado uma visão geral do projeto com seus principais componentes de
hardware e software.
3.1 – Especificação de hardware
Neste tópico é apresentada uma visão geral da parte de hardware do sistema que é composto por,
microcontrolador PIC18F4620, memória do tipo EEPROM, um kit sonar da TATO
Equipamentos Eletrônicos que será responsável pelas medidas do ambiente, 2 motores de passo
responsáveis pela simulação do movimento, o diagrama em blocos do sistema pode ser
visualizado abaixo (Figura 3.1).
Fig. 3.1 - Diagrama em Blocos do Sistema
O ecobatimetro tem por função realizar medições de profundidade em geral para os mais
variáveis fins, também disponibilizando através do software gráficos de perfil do ambiente
medido.
O hardware consiste basicamente na aquisição, processamento dos dados e comunicação com
um microcomputador através da porta serial utilizando RS232.
27
Para a aquisição dos dados será utilizado o kit sonar da TATO Equipamentos Eletrônicos ligado
ao microcontrolador.
Nesse sistema é utilizado o microprocessador da Microchip (PIC18F4620), utilizando o kit de
gravação da Microchip ICD2, que possui o sistema de in circuit debug (debug em tempo real)
que facilitam o desenvolvimento. O PIC é programado em linguagem C através do Programa
MPLAP IDE e o compilador MCC18.
Para armazenamento dos pontos coletados será utilizando memória do tipo EEPROM da
Microchip ( 25AA640 ) externa ao PIC com o tamanho de 8Kb.
O hardware funciona da seguinte maneira: o usuário do software primeiramente manda o sensor
para a origem, após feito isso seleciona uma entre duas rotas pré-definidas mostradas na figura
abaixo (Figura 11), e clica em iniciar, feito isso o hardware irá realizar todas a medição do
perímetro sozinho, realizando uma medição com uma resolução configurável através do
software, essas resoluções são: Máxima no eixo x é de 2774dpi e mínima de 285dpi já no eixo y
a máxima é de 3439dpi e mínima de 690dpi. Enviando os dados da medição serialmente para o
software e ao mesmo tempo também irá gravar todos os pontos medidos com suas coordenadas e
profundidades em sua memória estando configurado na resolução mínima.
Fig. 3.2 - Rotas Pré-definidas Via Software
Para realizar a medida de um ponto o software realiza 8 (oito) medidas de um mesmo ponto
descartando os dois primeiros valores, o maior e o menor, com isso os outros 4 pontos restante é
tirado uma média, se não for ponto de nenhuma das extremidades o software se encarrega de
somar com os últimos 2 pontos e fazer assim uma média móvel, diminuindo assim a
possibilidade de erro.
28
Para os sensores se movimentarem nos eixos X e Y serão utilizados dois motores de passo um
para cada eixo.
O protótipo é apresentado na Figura 3.3, tem o formato das arestas de um cubo de
aproximadamente 60x60x60cm (L x C x H). As arestas são de metal, e servem de fixação para o
carro que percorrerá todo o espaço. O meio utilizado é o ar, podendo assim, facilitar o
desenvolvimento e ter uma maior variedade de medidas visto que qualquer objeto pode servir de
obstáculo.
Fig 3.3 – Desenho do Protótipo.
Pelo fato de se tratar de um protótipo fica restrito que a distancia mínima para medição é de
25cm a partir de onde os sensores se encontram, tal restrição se deve ao fato de que a distancia
mínima que os sensores conseguem medir é de 20cm. Existem sensores cuja distancia mínima é
menor que 20cm porem seu custo é mais elevado.
Uma limitação física dos sensores utilizados é que a distancia máxima que eles conseguem medir
é de 2 metros.
29
3.2 – Especificação de Software.
O software do projeto está dividido em duas partes: firmware e programa visualização
(EcoView). O firmware é responsável pela configuração do microcontrolador, fazendo
constantemente da distancia a deixando a pronta para ser senviada ao software quando for
solicitado, no diagrama de estados do firmware é apresentado na (Figura 3.4) podemos
vizualizar melhor como o firmware irá funcionar.
Toda a parte de código do firmware foi implementado em linguagem C utilizando os ambientes
Visual Studio 2003 e MPLAB, ambos utilizando o compilador para microprocessadores
Microchip MCC18.
O software de visualização tem como função mostrar para o usuário todas as opções de
configuração disponíveis e alem disso mostrar gráficos em 2D e 3D de uma medição, no
diagrama em blocos (Figura 3.5) podemos vizualizar melhor seu funcionamento.
Fig 3.4 – Diagrama de Estados do Firmware
30
Fig 3.5 – Diagrama de Blocos do Software
31
CAPÍTULO 4 – DESENVOLVIMENTO E IMPLEMENTAÇÃO
4.1 – Testes
Neste capítulo é apresentado todos os testes realizados com o sistema, divididos em alguns
itens.
4.1.1 – Teste dos sensores
Para testar o circuito dos sensores basta alimentar a placa do kit sonar com 5v e apontá-la para
um obstáculo a uma distancia de 25cm até 1.5mm e verificar com o osciloscópio, conectado ao
pino de saída, uma forma de onda como a mostrada na figura abaixo ( Figura 4.1).
Fig. 4.1 – Gráfico de Resposta do Kit Sonar
4.1.2 – Teste de comunicação serial e Unidade de controle
Para realizar o teste da unidade de controle e da comunicação serial, foi criado um firmware que
a cada 1 segundo replica um dado valor na serial, por exemplo, ao mandar o valor 0x31 na serial
através do programa criado para realizar os testes, o microprocessador fica repetindo esse valor
até que receba um novo valor, Com isso podemos concluir que alem da comunicação serial estar
funcionando o microprocessador está funcional.
A figura abaixo (Figura 4.2), mostra a tela do software criado para realizar os testes de serial.
32
Fig. 4.2 – Programa para teste da serial
Para a visualização dos dados enviados e recebidos da porta serial foi utilizado o programa
AccessPort 1.31 como mostra a figura abaixo(Figura 4.3).
Fig. 4.3 – Visualização dos Dados da Serial.
33
4.1.3 – Teste da fonte de alimentação
Para realizar o teste da fonte de alimentação do projeto foi utilizado um multímetro, a fonte
possui dois níveis de tensão +12 e +5v.
Fig. 4.4 – Medição da fonte +12v
Fig. 4.5 – Medição da fonte +5v
4.2 Projeto do Hardware
O hardware tem a função de executar todos os comandos solicitados pelo software e foi dividido
em quatro partes para um melhor intendimento.
34
4.2.1 Fonte de alimentação.
A fonte de alimentação é dividida em duas uma para gerar os 12v (Figura 4.6) para a
alimentação dos motores e uma de 5v (Figura 4.7) para o restante do circuito.
Fig. 4.6 – Esquemático da Fonte 12v
Fig. 4.7 – Esquemático da Fonte 5v
4.2.2 Drivers de Potência
Para fazer o acionamento das bobinas dos motores é necessário a utlização de um driver de
potencia como mostra a figura abaixo (Figura 4.8).
35
Fig. 4.8 – Esquemático dos Drivers de Potência
4.2.3 Unidade de Controle
É na unidade de controle é a principal placa do hardware pois nela se encontra o
microprocessador (Figura 4.9), a memória (Figura 4.10) e a interface serial (Figura 4.11).
Fig. 4.9 – Esquemático da Unidade de Controle
36
Fig. 4.10 – Esquemático da Memória
Fig. 4.11 – Esquemático da Interface Serial
4.2.4 Kit Sonar
É através desse módulo que as medidas são feitas pode se tratar de um módulo comprado a parte
não possuímos o esquemático.
37
4.3 Projeto do Software
Neste ítem é mostrado como foi desenvolvido toda a parte relaciona aos softwares do projeto.
4.3.1 – Firmware
O firmware implementado no projeto segue a seqüência lógica mostrada fluxograma e no
diagrama de estados (Figura 4.12) e do diagrama de estados (Figura 3.4). Primeiramente é
estabelecida uma conexão serial com velocidade de 19.200bits/s com o software.
Após ser conectado com o microcomputador o hardware fica aguardando o que o software envie
os comandos a serem executados.
38
Fig. 4.12 – Fluxograma do Firmware
39
4.3.1.1 Trechos de código do firmware
Abaixo segue o código da interrupção do Timer1 que é onde se conta o tempo em que o sinal
demorou para ir até o obstáculo e voltar, em seguida segue o código da interrupção INT0 onde o
Timer é ligado, desligado e o tempo total é mandando para o software.
//**************************************
//* INTERRUPCAO DO TIMER1 20us*
//**************************************
// Foi este flag um dos
// causadores da interrupção?
// A interrupção ainda esta habilitada?
if ((PIR1bits.TMR1IF != 0) && (PIE1bits.TMR1IE != 0))
// Limpa o flag causador da interrupção
PIR1bits.TMR1IF = 0;
CPL_BIT_PORTB(4);
gwTimerTick = gwTimerTick + 1;
// Recarrega o timer
TIMER1_RELOAD();
//*********************************************
//* INTERRUPCAO INT0 *
//*********************************************
// Foi este flag um dos
// causadores da interrupção?
// A interrupção ainda esta habilitada?
if ((INTCONbits.INT0IF != 0) && (INTCONbits.INT0IE != 0))
if(INTCON2bits.INTEDG0 == 1)
gwTimerTick = 0;
TIMER1_START();
INTCON2bits.INTEDG0 = 0;
else
40
TIMER1_STOP();
bytIgnoraInt = 0;
INTCON2bits.INTEDG0 = 1;
CLR_BIT_PORTB(5);
MandaMedida(gwTimerTick);
// Limpa o flag causador da interrupção
INTCONbits.INT0IF = 0;
Outro trecho importante do código é a interpretação e tratamento dos pacotes recebidos via
serial.
/**
* Rotina que processa do dado recebido e coloca no pacote.
*
* @author Robin.
*/
void PacoteRecebido(BYTE bytDado)
// Verifica qual o estado inicial da maquina
switch( mbytEstadoAtual )
// Caso seja WAIT_AA
case WAIT_AA:
// Verifica se o dado que chegou é 0xAA
/////////////////////////////////////////
if(bytDado==0xAA)
// É 0xAA, então indica que o proximo
//estado é WAIT_55
mbytEstadoAtual = (BYTE)WAIT_55;
// Armazena o dado recebido
PacotaoRecebido.bytIdentificador1 = 0xAA;
// Incrementa o Checksum
mbytCheckSum += bytDado;
else
// Não é 0xAA, então reseta a serial.
41
ResetSerial();
break;
// Caso seja WAIT_55
case WAIT_55:
// Verifica se o dado que chegou é 0xAA
/////////////////////////////////////////
if(bytDado==0x55)
// É 0xAA, então indica que o próximo
//estado é WAIT_OPCODE
mbytEstadoAtual = (BYTE)WAIT_OPCODE;
// Armazena o dado recebido
PacotaoRecebido.bytIdentificador2 = 0x55;
// Incrementa o Checksum
mbytCheckSum += bytDado;
else
// Não é 0x55, então reseta a serial.
ResetSerial();
break;
// Caso seja WAIT_OPCODE
case WAIT_OPCODE:
//Indica que o próximo estado é WAIT_PARAM1
mbytEstadoAtual = (BYTE)WAIT_PARAM1;
// Armazena o dado recebido
PacotaoRecebido.bytOpcode = bytDado;
// Incrementa o Checksum
mbytCheckSum += bytDado;
break;
// Caso seja WAIT_PARAM1
case WAIT_PARAM1:
//Indica que o próximo estado é WAIT_PARAM2
mbytEstadoAtual = (BYTE)WAIT_PARAM2;
42
// Armazena o dado recebido
PacotaoRecebido.bytParam1 = bytDado;
// Incrementa o Checksum
mbytCheckSum += bytDado;
break;
// Caso seja WAIT_PARAM2
case WAIT_PARAM2:
//Indica que o próximo estado é WAIT_PARAM3
mbytEstadoAtual = (BYTE)WAIT_PARAM3;
// Armazena o dado recebido
PacotaoRecebido.bytParam2 = bytDado;
// Incrementa o Checksum
mbytCheckSum += bytDado;
break;
// Caso seja WAIT_PARAM3
case WAIT_PARAM3:
//Indica que o próximo estado é WAIT_PARAM4
mbytEstadoAtual = (BYTE)WAIT_PARAM4;
// Armazena o dado recebido
PacotaoRecebido.bytParam3 = bytDado;
// Incrementa o Checksum
mbytCheckSum += bytDado;
break;
// Caso seja WAIT_PARAM4
case WAIT_PARAM4:
//Indica que o próximo estado é WAIT_CHECKSUM
mbytEstadoAtual = (BYTE)WAIT_CHECKSUM;
// Armazena o dado recebido
PacotaoRecebido.bytParam4 = bytDado;
// Incrementa o Checksum
mbytCheckSum += bytDado;
break;
// Caso seja WAIT_CHECKSUM
case WAIT_CHECKSUM:
43
// Verifica se o dado recebido como checksum
// é igual ao calculado.
//////////////////////////////////////////////
if(bytDado == mbytCheckSum)
// É igual, muda o estado para WAIT_AA
mbytEstadoAtual = (BYTE)WAIT_AA;
// Armazena o dado recebido
PacotaoRecebido.bytChecksum = bytDado;
// Zera o checksum
mbytCheckSum = 0;
// MANDA O DADO PARA TRATRAMENTO
TrataPacotao();
else
//O checksum não bateu.
/////////////////////////
// Reseta a serial
ResetSerial();
//Envia resposta dizendo que não
//validou o pacote
SendPacket(RESP_NOK,NULL,0x00);
break;
// Caso qualquer outro dado
default:
// Erro, então reseta a serial.
ResetSerial();
44
4.3.2 – Software
Nesse sistema a linguagem de programação escolhida é a linguagem C++ utilizando os softwares
Borland C++ Builder 6.0, devido as sua grande eficiência, praticidade e funcionalidade.
Também foi escolhido o Gnuplot que foi usado devido ao fato da possibilidade de criação do
desenho do ambiente medido em 3D, pelo fato de sua linguagem ser simples e eficaz alem de
não exigir muito do microcomputador..
A lógica usada do software é mostrada nos diagramas mostrados a seguir.
4.3.2.1 Diagrama de Casos de Uso
O diagrama de casos de uso (Figura 4.13) descreve a funcionalidade proposta do sistema.
Fig. 4.13 – Diagrama de Casos de Uso
45
4.3.2.2 Diagrama de UML
Diagramas UML (Figura 4.14, Figura 4.15, Figura 4.16, Figura 4.17, Figura 4.18) mostram a
estrutura das principais classes do software.
Fig. 4.14 – Diagrama UML da Classe Packet
Fig. 4.15 – Diagrama UML da Classe PortaSerial
46
Fig. 4.16 – Diagrama UML da Classe trdVaiOrigem
Fig. 4.17 – Diagrama UML da Classe trdColetaTotal
47
Fig. 4.18 – Diagrama UML da Classe tdrMedições
4.3.2.3 Interface
A Figura 4.19 mostra a tela principal do EcoView, é nela onde todas as configurações e ações
do usuário serão feitas.
48
Fig. 4.19 – Tela Principal do EcoView
A Figura 4.20, mostra a tela de configuração da serial onde o usuário pode escolher dois modos,
o automático onde o próprio software varre todas as portas seriais em busca do hardware ou no
modo manual onde o usuário seleciona a porta serial manualmente para detecção do hardware.
49
Fig. 4.20 – Tela de Configuração da Serial
4.3.2.3 Trechos de código
Um trecho importante do código utilizado no software é onde ele pega o vetor com as medidas
de certo ponto e calcula sua média como podemos visualizar a seguir.
void trdMedicao::CalcMedia(void)
try
double MaiorPonto = 0;
int MaiorPontoIndex = 0;
double MenorPonto = 99999;
int MenorPontoIndex = 0;
double MediaMedidas = 0;
50
for(int Cont = 0; Cont <6; Cont++)
if(Distancia[Cont]>MaiorPonto)
MaiorPonto = Distancia[Cont];
MaiorPontoIndex = Cont;
if(Distancia[Cont]<MenorPonto)
MenorPonto = Distancia[Cont];
MenorPontoIndex = Cont;
for(int Cont = 0; Cont <6; Cont++)
if((Cont!=MaiorPontoIndex)&&(Cont!=MenorPontoIndex))
MediaMedidas += Distancia[Cont];
if((this->Umtimos2Pontos[0]!= 0) && (this->Umtimos2Pontos[1]!= 0))
MediaMedidas += (this->Umtimos2Pontos[0]*(-1));
MediaMedidas += (this->Umtimos2Pontos[1]*(-1));
MediaMedidas = MediaMedidas/6;
else
MediaMedidas = MediaMedidas/4;
this->Umtimos2Pontos[0] = this->Umtimos2Pontos[1];
this->Umtimos2Pontos[1] = MediaMedidas*(-1);
this->Profundidade = MediaMedidas*(-1);
catch(Exception *ex)
ShowMessage(ex->Message);
51
Outro trecho interessante é o código utilizado pelo GnuPlot para gerar os gráficos em 3D:
# Visualização de Pontos no espaço 3D
#
# Eduardo Robin - Eng da Computação.
#
# PF - 2007 - Ecobatimetro.
#
# Aplicativo: Visualisação da area medida.
#
reset
set grid
set xtics 5
set ytics 5
set ztics 10
set title "Superfície medida com o EcoView"
set xlabel "X"
set ylabel "Y"
set zlabel "Z(m)"
set hidden3d
set view 40,30,1,1
set data style points
set dgrid3d 30,30,2
splot '3d.dat' using ($1):($2):($3) t"" with lines 5
pause -1 "Fechar?"
#
52
CAPÍTULO 5 – VALIDAÇÃO E RESULTADOS
Apesar da forma artesanal de como foi feito o protótipo e a pouca sensibilidade dos sensores de
ultrasom, os resultados foram bastante satisfatórios na Figura 5.1 vemos uma foto do protótipo
vista de frente e na Figura 5.2 uma foto do protótipo vista de cima.
Fig. 5.1 – Foto do Protótipo (Vista Frontal)
Fig. 5.2 – Foto do Protótipo (Vista de cima)
53
O sistema mostrou-se também muito estável quanto a gravação dos dados na memória a pequena
diferença que se encontra entre um dado recém medido e o mesmo gravado na memória se da ao
fato de que quem manda gravar o dado na memória é o software depois da média e como no
firmware não se trabalha com números reais, após o calculo da média o numero é novamente
convertido a tempo para ai ser gravado, podemos ver essa pequena diferença nas figuras
abaixo(Figura 5.3 e Figura 5.4).
Fig. 5.3 – Pontos Recém Medidos
Fig. 5.4 – Pontos Lidos da Memória
A criação de gráficos em 3D utilizando o software GnuPlot se mostrou muito confiável pois
alem de fácil de trabalhar é extremamente rápida ao gerar gráficos com muitos pontos como
podemos ver na figura abaixo (Figura 5.5) possui 3200 pontos e demorou menos de 1s para ser
gerado.
54
Fig. 5.5 – Gráfico 3D com 3200 Pontos
A interface do software EcoView acabou ficando bem fácil e amigável com o usuário final, e
cumpri seu objetivo principal que é auxiliar na visualização gráfica da área medida com mostra a
figura abaixo (Figura 5.6).
55
Fig. 5.6 – Tela Principal
Após realizar algumas medições com o sistema ele se mostrou pouco instável ao chegar nas
bordas da área delimitada pelo protótipo gerando nessas áreas muito ruído e utilizando o kit do
sonar não é possível elimina-los pois não se tem controle algum sobre o sinal. Na figura abaixo
(Figura 5.7) podemos verificar esses ruídos.
Fig. 5.7 – Visualização do Ruído no Gráfico
56
Um grande desafio realizado na criação deste projeto foi a utilização de uma memória EEPROM
com comunicação SPI visto que não chegamos a trabalhar com essa arquitetura no decorrer do
curso.
57
CAPÍTULO 6 – CONCLUSÃO
O sistema como um todo se mostrou muito eficiente e cumpriu tudo o que foi proposto, a
montagem e instalação ficaram muito acessíveis a um usuário com pouca habilidade em frente a
um computador.
A utilização do software ficou muito amigável e acaba gerando pouco processamento do
computador não deixando ele lento enquanto o software é executado.
O sistema não foi testado em um ambiente com a presença de água pelo fato dos sensores
utilizados não serem capas de medir na água.
Infelizmente as medições executadas com o sistema continham alguns ruídos pelo fato do kit
sonar não ser de muita precisão, uma solução para esse problema seria a implementação de um
kit sonar com sensores de ultrasom mais sensíveis e com uma precisão maior.
Outro tópico a ser tratado em trabalhos futuros é criação de uma interface que exporte arquivos
para o AutoCad para que os pontos sejam exportados diretamente para ele facilitando a fase do
desenho.
Por final conclui-se que ao longo do ano na pesquisa e implementação deste projeto, foi
utilizando varias técnicas aprendidas no decorrer do curso como, por exemplo, a criação de
fluxogramas, diagramas em bloco, algoritmos, programações em C, C++ e muitas outras mas a
principal e que acaba sendo mais usada é a saber correr atrás para descobrir novos recursos e
métodos para melhorar o que se está fazendo.
58
CAPÍTULO 7 - REFERÊNCIAS BIBLIOGRÁFICAS
Memória EEPRON 25AA640. Disponível em
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1335&dDocNa
me=en010848. Acesso em: Abril 2007.
Microcontrolador PIC18F4620. Disponível em
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1335&dDocNa
me=en010304. Acesso em: Abril 2007.
Introdução aos Microcontroladores. Disponível em
http://www.mikroe.com/pt/product/books/picbook/capitulo1.htm. Acesso em: Junho 2007
Sensores Ultrasônicos. Disponível em
http://search.murata.co.jp/Ceramy/CatsearchAction.do?LBCD=L0560&sCategory=secondary&s
Lang=en&UBNM=Sensors&UBCD=U0110. Acesso em: Abril 2007.
Sensores de UltraSom. Disponível em
http://www.ece.ufrgs.br/~fetter/robnav/sensor.html.Acesso em: Junho 2007
Sensores, Transdutores e Detectores. Disponível em
http://www2.dem.inpe.br/ijar/SenTrand3.doc. Acesso em: Abril 2007.
Ultrassonic Range Finder. Disponivel em
http://www.web-ee.com/Schematics/Ultrasonic%20Range%20Finder/Ultrasonic.htm. Acesso
em: Junho 2007.
Introdução aos microcontroladores PIC. Disponivel em
http://paginas.terra.com.br/educacao/mdmau/Microcontrolador%20PIC16F84.pdf. Acesso em:
Abril 2007.
59
Sonar, medindo distancia com o Basic Step. Disponivel em
http://www.tato.ind.br/files/sonar.pdf. Acesso em: Novembro 2007.
Documentação sobre Gnuplot. Disponivel em http://www.gnuplot.info/documentation.html.
Acesso em: Novembro 2007.
60
APÊNDICE A – CRONOGRAMA
61
APÊNDICE B – CUSTOS
Componente Valor Unitário Quantidade Valor Total
Placa padrão para corroer 10x30cm R$ 2,50 01 R$ 2,50
Microprocessador PIC18F4620 R$ 35,80 01 R$ 35,80
Kit Sonar R$ 64,00 01 R$ 20,00
Trafo 12+12 R$ 18,50 01 R$ 18,50
Componentes diversos R$ 25,00 01 R$ 25,00
Mecânica R$ 70,00 01 R$ 50,00
Compilador MCC18 R$ 990,00 01 R$ 990,00
Borland C++ Builder R$ 1.600,00 01 R$ 1.600,00
ICD2-BR R$ 250,00 01 R$ 250,00
Hora de trabalho R$ 10,00 650 R$ 6.500,00
TOTAL R$ 9.535,80
62
APÊNDICE C – ARTIGO