Universidade de São Paulo - USP · Este é um “Application Kit” bastante interessante, pois...

35
Universidade de São Paulo Escola de Engenharia de São Carlos Departamento de Engenharia Elétrica Plano de Trabalho – SEL0626 - Projeto de Formatura II Jen John Lee Monitoração remota via IP de sensores industriais Trabalho de Conclusão de Curso apresentado à Escola de Engenharia de São Carlos, da Universidade de São Paulo Curso de Engenharia de Computação com ênfase em Sistemas Embarcados ORIENTADOR: Professor Doutor Carlos Dias Maciel São Carlos 2007

Transcript of Universidade de São Paulo - USP · Este é um “Application Kit” bastante interessante, pois...

Universidade de São Paulo Escola de Engenharia de São Carlos

Departamento de Engenharia Elétrica

Plano de Trabalho – SEL0626 - Projeto de Formatura II Jen John Lee

Monitoração remota via IP de

sensores industriais

Trabalho de Conclusão de Curso

apresentado à Escola de Engenharia de

São Carlos, da Universidade de São Paulo

Curso de Engenharia de Computação com

ênfase em Sistemas Embarcados

ORIENTADOR: Professor Doutor Carlos Dias Maciel

São Carlos

2007

1

SUMÁRIO

RESUMO ................................................................................................................................ 3

ABSTRACT ............................................................................................................................ 4

1. INTRODUÇÃO .............................................................................................................. 5

1.1. ORGANIZAÇÃO DA MONOGRAFIA ............................................................................ 5

1.2. MOTIVAÇÃO ................................................................................................................... 5

1.3. OBJETIVO ......................................................................................................................... 6

1.4. MATERIAIS E MÉTODOS .............................................................................................. 7

1.4.1. Resumo dos métodos ...................................................................................... 7

1.4.2. RCM 3000 ....................................................................................................... 7

1.4.3. DynamiC ......................................................................................................... 8

1.4.4. ADC0809 ...................................................................................................... 10

1.4.5. Protel e CircuitCAM ..................................................................................... 12

1.4.6. JAVA ............................................................................................................ 13

2. FUNDAMENTOS TEÓRICOS .................................................................................... 15

2.1. SENSORES INDUSTRIAIS ............................................................................................ 15

2.1.1. SENSORES ANALÓGICOS ....................................................................... 15

2.2. COMUNICAÇÃO ETHERNET E O IP .......................................................................... 18

2.3. CONVERSORES ANALÓGICOS DIGITAIS ................................................................ 19

3. MÉTODOS E IMPLEMENTAÇÕES .......................................................................... 21

3.1. PROJETO ......................................................................................................................... 21

3.1. DESCRIÇÃO DAS ATIVIDADES REALIZADAS ....................................................... 23

3.1.1. Concepção inicial do hardware ..................................................................... 23

3.1.2. Estudo e análise dos componentes eletrônicos utilizados ............................. 24

3.1.3. Software embarcado ..................................................................................... 26

3.1.1. Placa de circuito impresso ............................................................................ 28

4. RESULTADOS ............................................................................................................ 30

4.1. DIFICULDADES, LIMITAÇÕES E DECISÕES ........................................................... 32

5. CONCLUSÃO .............................................................................................................. 33

6. BIBLIOGRAFIA .......................................................................................................... 34

2

LISTA DE FIGURAS

Figura 1 - DataQ: DI-710-EH ................................................................................................. 5

Figura 2 - Dickson Data Logger com 2 sensores .................................................................... 6

Figura 3 - RCM3000 ............................................................................................................... 8

Figura 4 - Ambiente de desenvolvimento DynamicC............................................................. 9

Figura 5 - ADC0809CCN ..................................................................................................... 10

Figura 6 - Diagrama de pinos do ADC0809 ......................................................................... 11

Figura 7 - Diagrama de temporização da operação do ADC0809 ........................................ 11

Figura 8 - Interface Protel ..................................................................................................... 12

Figura 9 - Interface CircuitCAM 5.0 .................................................................................... 13

Figura 10 - Strain Gage em configuração Zig-Zag ............................................................... 17

Figura 11 - Sensor de pressão do tipo Strain-gage ............................................................... 17

Figura 12 - Esquema geral do projeto ................................................................................... 21

Figura 13 - Formato dos dados proveniente do Módulo de Aquisição em conexão Telnet . 22

Figura 14 - Interface de aquisição e gravação no terminal cliente ....................................... 23

Figura 15 - Esquemático final do projeto ............................................................................. 25

Figura 16 - Montagem em Protoboard .................................................................................. 25

Figura 17 - layout da placa de face dupla desenvolvida ....................................................... 28

Figura 18 - Placas projetadas em Protel ................................................................................ 29

Figura 19 - Perspectiva da montagem final da placa sem o CI de AD ................................. 29

Figura 20 - Gráfico da tabela obtida ..................................................................................... 32

LISTA DE TABELAS

Tabela 1 - Limite de erro de termopares de acordo com a ASTM E-230 ............................ 16

Tabela 2 - Pinagem entre A/D e Módulo Microcontrolador ................................................ 24

Tabela 3 - Configuração das portas do RCM3000 .............................................................. 26

Tabela 4 - Multiplexação das 8 entradas do AD .................................................................. 27

Tabela 5 - Formatação dos dados para envio ....................................................................... 27

Tabela 6 - Instruções na interrupção do timerB para comparação do contador................... 28

Tabela 7 - Arquivo de "log" gravado durante testes ............................................................ 32

Tabela 8 - BOM ................................................................................................................... 32

3

Resumo do Projeto de Formatura apresentado à EESC-USP como parte dos requisitos necessários

para a obtenção da conclusão do curso de Engenharia de Computação.

Monitoração remota via IP de sensores industriais

Jen John Lee

12 / 2007

Orientador: Prof. Dr. Carlos Dias Maciel

Área de Concentração: Engenharia Elétrica

Palavras-chave: A/D, Rabbit, DataLogger, Comunicação Ethernet, Dynamic C, Java.

RESUMO

Grande parte das variáveis presentes em um ambiente industrial podem ser convertidas em

sinais elétricos, o que torna possível seu tratamento em meio computacional. Isto, aliado ao advento

das tecnologias de transmissão de dados, permite que estas variáveis sejam analisadas,

acompanhadas e registradas de forma precisa e eficiente.

Ao imaginar um processo industrial simples, não é difícil identificar o uso de sensores como

temperatura, velocidade e pressão, entre outros. Dentre as benesses resultantes deste monitoramento

citam-se: aumento da eficiência do processo, redução de desperdícios, redução de acidentes e

aumento da vida útil dos equipamentos, tudo isto culminando na diminuição do custo global do

processo.

Este trabalho envolve o desenvolvimento de um hardware com software embarcado, para

aquisição e transmissão via IP de dados de sensores analógicos, bem como um ambiente amigável

para visualização destes.

4

Abstract of Graduation Project presented to EESC-USP as a partial fulfillment of the requirements

to conclude the Computer Engineering course.

Remote Monitoration of Industrial Sensors through IP

Jen John Lee

12 / 2007

Advisor: Dr. Carlos Dias Maciel

Concentration Area: Electrical Engineering

Keywords: A/D, Rabbit, DataLogger, Ethernet Communication, Dynamic C, Java.

ABSTRACT

Many of the variables present in an industrial facility can be converted to electrical signals,

so it is possible to manipulate this data through computer power. This fact and the rise of new and

cheaper data transmission technologies, allow us to analyse, register and monitor these data in a

precise and efficient way.

While imagining a simple industrial process, it is easy to identify the use of sensors to

monitor temperature, velocity and pressure. Some of the benefits of this monitoring are: more

efficiency of processes, less wastage of materials, reduction of accidents and the improvement of

equipments lifetime culminating in a global cost reduction of the process.

This work intends to develop hardware with embedded software for acquisition and

transmission through IP of data from analog sensors and a user friendly interface for their

visualization.

5

1. INTRODUÇÃO

1.1. ORGANIZAÇÃO DA MONOGRAFIA

Neste primeiro capítulo introdutório são apresentadas as motivações para o desenvolvimento do

trabalho, o seu objetivo e os materiais e métodos envolvidos na sua construção. O segundo capítulo

apresenta uma explicação dos conceitos teóricos envolvidos no projeto. No terceiro capítulo são

descritos o estado atual do projeto, as atividades realizadas durante o desenvolvimento. Já no quarto

capítulo são apresentados os resultados obtidos durante os testes efetuados com o intuito de validar

o trabalho, além das dificuldades e limitações e as decisões para contorná-las no decorrer do

mesmo. No quinto capítulo é feita uma conclusão, apresentadas as considerações finais, bem como

as possíveis melhorias do projeto. Finalmente, no sexto e último capítulo são apresentadas as obras

bibliográficas consultadas para a realização do projeto.

1.2. MOTIVAÇÃO

Os tipos de sensores e suas aplicabilidades aumentam diariamente. Novos sensores são

introduzidos constantemente para resolver novas necessidades e problemas industriais. O uso

inteligente de sensores pode ajudar aumentar a segurança, a confiabilidade, a produtividade e a

qualidade dos processos.

Contudo, boa parte dos sistemas disponíveis são demasiadamente complexos, portanto caros, ou

específicos demais, não atendendo às aplicações de “datalogging” com flexibilidade.

Exemplos:

• DataQ: DI-710-EH:

Figura 1 - DataQ: DI-710-EH

6

“Low-cost, portable, Ethernet data acquisition system featuring 16 single-ended or 8

differential analog inputs, a maximum sample rate up to 4800 samples/second, and programmable

gain ranges of 1, 2, 4, and 8. Includes Power cable, software, and documentation (Ethernet cable

not included).”

Preço em novembro 2007: US$599. (1)

• Dickson Data Logger With 2 Probes

Figura 2 - Dickson Data Logger com 2 sensores

“Manage all data loggers in your network from one PC - connecting data loggers to your

Ethernet network is as easy as installing a printer! 24/7 feedback through Min/Max or Real-Time

,Display ,Visual/Audio alarms, Optional Email alerts, Remote access via Interne, 2 K-

thermocouple probes”

Preço em novembro 2007: US$599. (2)

1.3. OBJETIVO

O projeto foi desenvolvido como Trabalho de Conclusão de Curso e teve como objetivo

principal desenvolver um sistema (hardware e software) simples e barato de monitoração remota

utilizando sensores como termopares, sensores de pressão e fluxo de fluidos. O projeto como um

todo foi dividido em quatro partes (concepção do hardware, desenvolvimento do software

embarcado no hardware e desenvolvimento da camada de alto nível para visualização e gravação de

modo amigável dos dados e design da placa de circuito impresso), sendo desenvolvido em parceria

com outro estudante de graduação do curso de Engenharia de Computação, Eduardo Siufi

Magalhães. Mais especificamente, a parte correspondente a esse documento, apresenta a concepção

7

e montagem do hardware, desenvolvimento do software embarcado (em Dynamic C) responsável

por dar suporte ao circuito integrado de conversão analógica digital e transmissão dos dados obtidos

via Ethernet para um terminal remoto e os resultados obtidos. Os detalhes do software de alto nível

para manipulação e visualização dos dados serão detalhados no trabalho do Eduardo.

1.4. MATERIAIS E MÉTODOS

1.4.1. Resumo dos métodos

Boa parte do projeto foi desenvolvido em Dynamic C utilizando um RCM3000 baseado no

microprocessador Rabbit3000 que disponibiliza 52 portas de I/O e conectividade Ethernet nativa.

Toda a montagem de dispositivos e desenvolvimento na fase de protótipo foi feita em

protoboard, sendo que a alimentação, interface de I/Os e interface serial para programação e

configuração local do microprocessador foi feita através de uma placa de I/O compatível com o

processador emprestada pela SV Consultoria.

O código responsável por alimentar o clock, controlar as linhas de sincronismo e multiplexação

de portas do CI de A/D, receber os dados referentes às portas analógicas e enviá-las para o PC via

comunicação Ethernet foi desenvolvido em Dynamic C. Ao serem requisitadas via Telnet1, estas

informações são coletadas e enviadas ao PC a uma taxa de 2Hz e exibidas no PC por um programa

feito em Java confeccionado no ambiente de desenvolvimento Netbeans (Netbeans IDE 5.5.1).

Além dos materiais e ferramentas acima descritos, utilizou-se ainda o Protel para o design da

placa de circuito impresso e o CircuitCAM (CircuitCam 5.0) para conversão do projeto de Protel

para LMD (tipo de arquivo reconhecido pela fresadeira disponível na USP).

1.4.2. RCM 3000

Este é um “Application Kit” bastante interessante, pois possui várias funcionalidades, sem

ser demasiadamente complexo, apresenta um desempenho honesto e custo relativamente baixo.

Algumas de suas principais características são:

• Operação à 3.3V (compatível com TTL 5V). • Núcleo baseado no microprocessador Rabbit 3000™ • Baixo-EMI (tipicamente <10 dB µV/m à 3m) • Ethernet nativo para simplificar conectividade

1 Protocolo cliente-sevidor para comunicação entre computadores

8

• 512K Flash/512K SRAM • 52 I/Os digitais • 6 portas seriais (IrDA, SDLC/HDLC, Async, SPI) • baixo consumo (modo de espera opera abaixo de 2mA)

Figura 3 - RCM3000

A família RabbitCore foi desenvolvida para facilitar e acelerar o desenvolvimento de

sistemas embarcados, os RabbitCores são montados em placas-mães desenvolvidas pelo usuário

e age como um microprocessador de controle para o sistema do usuário. Pequeno no tamanho,

com muitos recursos e em conjunto com Dynamic C (um software de desenvolvimento que

acompanha uma vasta biblioteca e exemplos), esses núcleos disponibilizam aos designers um

pacote completo para controle e comunicação. (3)

Preço em novembro 2007 (1,100 ou 1000 unidades em US$): 79/64/57

1.4.3. DynamiC

O Dynamic C integra as funções de

9

• Edição • Compilação • Linkagem • Carregamento do programa no microprocessador • Debugging

em um único programa. Na realidade, compilação, linkagem e carregamento se agrupam em

uma única ação da IDE2. O Dynamic C possui um editor de textos honesto e versátil. E os

programas desenvolvidos em Dynamic C podem ser executados e “degubados” interativamente

no código fonte ou no nível do código de máquina.

O Dynamic C também suporta programação em Assembly. Não é necessário optar por C ou

Assmbly ao se desenvolver um sistema. C e Assembly podem coexistir e serem misturados no

código fonte.

Além disso, o Dynamic C acompanha uma vasta biblioteca de funções e rotinas, além de

exemplos práticos, prontos para rodar. (4)

Figura 4 - Ambiente de desenvolvimento DynamicC

2 Integrated Development Environment

1.4.4. ADC0809

O componente de aquisição de dados ADC0809

um CMOS monolítico com um conversor analógico digital com resolução de 8

multiplexados e lógica de controle compatível com microcontroladores. O conversor A/D de 8

bits usa a técnica de “aproximação sucessiva” como método de conversão. O

um comparador de alta impedância estabilizado, um divisor de voltagem de 256 ohms com uma

árvore de chaveamento analógica e um registrador de aproximação sucessiva. O multiplexador

de 8 canais pode acessar diretamente qualquer um dos 8 sin

O dispositivo elimina a necessidade do uso de “zero” externo. Facilmente integrado com

processadores por entradas multiplexadas e saídas TTL TRI

O design do ADC0809 foi otimizado para oferecer alta velocidade, alta precisão, mínina

dependência térmica e precisão durante sucessiva

consumo.

Funcionalidades e especificação

• Fácil de integrar com microprocessadores• Opera proporcionalmente ou com 5Vdc• Sem “zero” ou ajuste de escala requerido• 8 canais multiplexados com lógica de endereçamente (3 bits)• Escala de input de 0V à 5V com única fonte de 5V• Output segue especificação TTL• tamanho de 28 DIP• Resolução de 8 bits

O componente de aquisição de dados ADC0809 fabricado pela National Semiconductors

um CMOS monolítico com um conversor analógico digital com resolução de 8

multiplexados e lógica de controle compatível com microcontroladores. O conversor A/D de 8

bits usa a técnica de “aproximação sucessiva” como método de conversão. O conversor possui

um comparador de alta impedância estabilizado, um divisor de voltagem de 256 ohms com uma

árvore de chaveamento analógica e um registrador de aproximação sucessiva. O multiplexador

de 8 canais pode acessar diretamente qualquer um dos 8 sinais analógicos.

O dispositivo elimina a necessidade do uso de “zero” externo. Facilmente integrado com

processadores por entradas multiplexadas e saídas TTL TRI-STATE.

O design do ADC0809 foi otimizado para oferecer alta velocidade, alta precisão, mínina

cia térmica e precisão durante sucessiva repetição, além de funcionar com baixo

Figura 5 - ADC0809CCN

Funcionalidades e especificação:

Fácil de integrar com microprocessadores Opera proporcionalmente ou com 5Vdc Sem “zero” ou ajuste de escala requerido 8 canais multiplexados com lógica de endereçamente (3 bits) Escala de input de 0V à 5V com única fonte de 5V Output segue especificação TTL tamanho de 28 DIP Resolução de 8 bits

10

fabricado pela National Semiconductors é

um CMOS monolítico com um conversor analógico digital com resolução de 8-bits, 8 canais

multiplexados e lógica de controle compatível com microcontroladores. O conversor A/D de 8

conversor possui

um comparador de alta impedância estabilizado, um divisor de voltagem de 256 ohms com uma

árvore de chaveamento analógica e um registrador de aproximação sucessiva. O multiplexador

O dispositivo elimina a necessidade do uso de “zero” externo. Facilmente integrado com

O design do ADC0809 foi otimizado para oferecer alta velocidade, alta precisão, mínina

repetição, além de funcionar com baixo

11

• Erro total não ajustável: +- ½ LSB e +- 1 LSB • Baixo consumo: 15mW • Tempo de conversão: 100µs (5)

Figura 6 - Diagrama de pinos do ADC0809

Figura 7 - Diagrama de temporização da operação do ADC0809

Um ciclo de operação do A/D passa por 9 fases

1. Endereçamento do multiplexador (3 pinos de endereçamento)2. Subida de pulso de ALE (Address Latch Enable)3. Subida de pulso de START4. Descida de pulso de ALE5. Descida de pulso de START6. Aguarda subida de pulso 7. Subida de pulso de OE (Output Enable)8. Leitura da saída digital (8 pinos)9. Descida de pulso de OE

1.4.5. Protel e CircuitCAM

Protel é um programa de design de layout de placas de circuito produzido pela Altium

também a manipulação e simulação de projetos em FPGA.

CircuitCAM é um software que acompanha

separadamente pela LPKF, é uma interface sofisticada para

projetos para placas de circuito impresso. Ele pode controlar dados de produção, modificar o

3 Computer Aided Manufacturing

de operação do A/D passa por 9 fases em seqüência:

Endereçamento do multiplexador (3 pinos de endereçamento) Subida de pulso de ALE (Address Latch Enable) Subida de pulso de START Descida de pulso de ALE Descida de pulso de START Aguarda subida de pulso de EOC Subida de pulso de OE (Output Enable) Leitura da saída digital (8 pinos) Descida de pulso de OE

e CircuitCAM

é um programa de design de layout de placas de circuito produzido pela Altium

também a manipulação e simulação de projetos em FPGA.

Figura 8 - Interface Protel

é um software que acompanha o equipamento de usinagem

é uma interface sofisticada para manipulação e controle

projetos para placas de circuito impresso. Ele pode controlar dados de produção, modificar o

12

é um programa de design de layout de placas de circuito produzido pela Altium, permite

o equipamento de usinagem ou é vendido

e controle CAM3 de

projetos para placas de circuito impresso. Ele pode controlar dados de produção, modificar o

design, realizar várias verificações do layout, gerar “plano terra”, inserir texto na placa e gerar

estratégias de usinagem. Além d

Gerber.

Figura

1.4.6. JAVA

Java é uma linguagem de programação orientada a objetos desenvolvida pela

no início dos anos 90.

As aplicações Java são compiladas para

(programa escrito em código nativo que interpreta

para código de máquina nativo atualmente seja possível e mais rápi

bytecodes são interpretados ou compilados para código nativo para que possam ser executados,

embora a execução direta do bytecode

justamente o fato de Java utilizar uma represe

interpretada pelas máquinas virtuais Java (JVMs) que faz com que

nessa linguagem possam ser executados em qualquer sistema que possua uma máquina

virtual.

A linguagem Java ainda é proprietária e é controlada pela

lançamento em 1995, a linguagem passou por diversas modificações e atualizações, sendo que sua

versão atual foi liberada em 2006, já tendo uma nova publicação prevista para 2008.

design, realizar várias verificações do layout, gerar “plano terra”, inserir texto na placa e gerar

estratégias de usinagem. Além de importar e exportar vários tipos de arquivos, como AutoCAD e

Figura 9 - Interface CircuitCAM 5.0

Java é uma linguagem de programação orientada a objetos desenvolvida pela Sun Microsystems

As aplicações Java são compiladas para bytecodes que são executados por uma máquina virtual

(programa escrito em código nativo que interpreta bytecodes Java genéricos), embora a compilação

para código de máquina nativo atualmente seja possível e mais rápida. Em tempo de execução, os

são interpretados ou compilados para código nativo para que possam ser executados,

bytecode por um processador Java também já seja possível. É

justamente o fato de Java utilizar uma representação intermediária de código (bytecode

interpretada pelas máquinas virtuais Java (JVMs) que faz com que os programas desenvolvidos

nessa linguagem possam ser executados em qualquer sistema que possua uma máquina

roprietária e é controlada pela Java Community Process

lançamento em 1995, a linguagem passou por diversas modificações e atualizações, sendo que sua

versão atual foi liberada em 2006, já tendo uma nova publicação prevista para 2008.

13

design, realizar várias verificações do layout, gerar “plano terra”, inserir texto na placa e gerar

e importar e exportar vários tipos de arquivos, como AutoCAD e

Sun Microsystems

que são executados por uma máquina virtual

Java genéricos), embora a compilação

da. Em tempo de execução, os

são interpretados ou compilados para código nativo para que possam ser executados,

por um processador Java também já seja possível. É

bytecode) que é

os programas desenvolvidos

nessa linguagem possam ser executados em qualquer sistema que possua uma máquina

Java Community Process. Desde seu

lançamento em 1995, a linguagem passou por diversas modificações e atualizações, sendo que sua

14

Possui várias características da sintaxe do C e C++, mas apresenta um modelo de objeto mais

simples e algumas outras facilidades. Java foi projetada tendo em vista os seguintes objetivos:

• Utilizar a metodologia de programação orientada a objetos.

• Permitir que o mesmo programa pudesse ser executado em diferentes sistemas operacionais

(portabilidade).

• Fornecer recursos e suporte para redes de computadores.

• Ser projetada para executar código de fontes remotas de forma segura.

• Ser fácil de usar, e selecionar o que fosse considerado bom das outras linguagens de

programação.

Além dos aspectos acima citados, a linguagem possui outras vantagens, tais como a facilidade

de internacionalização, uma vez que ela suporta nativamente caracteres Unicode, possui um vasto

conjunto de bibliotecas e APIs4, facilitando a programação; facilidades para criação de programas

distribuídos e multitarefa; desalocação de memória automática por processo de coletor de lixo

(garbage collector) que previne os vazamentos de memória (memory leaks), dentre outras.

As principais críticas quanto a linguagem giram em torno do seu desempenho, dita ser

significativamente mais lenta e consumir mais memória do que as linguagens compiladas

nativamente como o C ou C++. Entretanto, a velocidade de execução de programas Java tem

melhorado com a introdução da compilação Just-In Time (JIT), que faz com que a máquina virtual

analise o código e realize otimizações em certas partes mais críticas, e de otimizações na Máquina

Virtual Java feitas ao longo do tempo. As primeiras implementações da linguagem eram

interpretadas pela máquina virtual para alcançar os requisitos de portabilidade. Essas

implementações produziam programas que rodavam mais lentos que os compilados para

executáveis nativos, uma vez que o processo de interpretação dos bytecodes pela JVM é um

processo muito custoso, o que fez com que Java sofresse com a fama de ter um pobre desempenho.

Já as implementações mais recentes da JVM produzem programas significativamente mais rápidos

que os anteriores.

Há ainda outros aspectos considerados negativos, mas mesmo assim, a plataforma Java foi

adotada mais rapidamente do que qualquer outra linguagem de programação na história da

computação. Em 2003 Java atingiu a marca de 4 milhões de desenvolvedores em todo mundo. Java

continuou crescendo e hoje é uma referência no mercado de desenvolvimento de software. Ela

tornou-se popular pelo seu uso na Internet e hoje possui seu ambiente de execução presente em web

browsers, mainframes, SOs, celulares, palmtops, cartões inteligentes, entre outros. (6)

4 Application Programming Interface

15

2. FUNDAMENTOS TEÓRICOS

2.1. SENSORES INDUSTRIAIS

Os sensores tornaram-se vitais na indústria e os fabricantes estão mostrando uma tendência de

integração de equipamentos controlados por computador. No passado, os operadores eram os

cérebros de um equipamento e fonte de toda informação sobre a operação de um processo. O

operador podia detectar problemas na operação vendo, ouvindo, sentindo (vibração, etc..), e

cheirando problemas.

Uma maneira de classificar sensores é: digitais ou analógicos. As aplicações industriais

necessitam tanto de sensores digitais quanto de analógicos. Um sensor digital tem dois estados:

ligado ou desligado. Parte das aplicações envolve monitorar a presença/ausência de peças e

procedimentos de contagem, o que um sensor digital faz de maneira perfeita e barata. Os sensores

digitais são mais simples e mais fáceis de usar do que os analógicos, o que é um fator determinante

para o seu largo uso.

Já os sensores analógicos, também chamados de sensores de saída linear, são mais complexos

do que os digitais, mas podem fornecer muito mais informação sobre um processo. Um bom

exemplo seria um sensor usado para medir temperatura. Uma temperatura é uma informação

analógica. Um sensor analógico detecta a temperatura e emite uma corrente (ou uma diferença de

potencial) ao sistema de controle. Quanto mais elevada a temperatura, mais elevada a saída do

sensor. O sensor pode, por exemplo, apresentar na saída entre 4mA e 20mA dependendo da

temperatura real, embora haja um ilimitado numero de temperaturas (e de correntes elétricas). A

saída de um sensor digital tem dois estados possíveis: ligado ou desligado. Por outro lado, a saída

de um sensor analógico pode ser qualquer valor dentro da escala. Assim, o sistema de controle pode

monitorar a temperatura muito precisamente e controlar o processo.

Sensores de pressão também estão disponíveis como dispositivos analógicos. Fornecem uma

escala da tensão de saída (ou de corrente), dependendo da pressão a que estão submetidos. (7)

2.1.1. SENSORES ANALÓGICOS

Antes de iniciarmos uma explicação sobre os sensores analógicos, precisamos entender os

conceitos de Acuidade, Precisão e Repetibilidade.

Acuidade pode ser definida como quão próxima é a medida fornecida pelo sensor da quantidade

verdadeira que está sendo medida. A precisão determina quão próximos são os valores fornecidos

16

por diversos sensores ao medir uma mesma variável, repetibilidade é habilidade de um sensor de

repetir suas leituras precedentes.

Alguns exemplos de sensores analógicos:

Termopares: Muitos dos princípios básicos da termometria de termopares já eram conhecidos

por volta de 1900, mas só recentemente tornou-se clara a verdadeira fonte do potencial

termoelétrico. O princípio da operação baseia-se em unir metais diferentes e produzir uma pequena

tensão. A saída da tensão é proporcional à diferença na temperatura entre as partes frias e quentes.

Existem três categorias de tipos de termopares: termopares padronizados de metal nobre (R, S,

B), termopares padronizados de metal base (K, J, N, E, T) e termopares não definidos por letras. N

prática a distinção entre “base” e “nobre” é que metais nobres contêm platina e metais base contêm

níquel. (8)

Alguns tipos de termopares e suas faixas de operação:

Tipo de sensor Faixa de Utilização (°C°C°C°C) Limite de Erro Padrão

E 0 a 870

-200 a 30

±1,7°C

±1,7°C

J 0 a 760 ±2,2°C

K, N 0 a 1260

-200 a 30

±2,2°C

±2,2°C

T 0 a 370

-200 a 30

±1°C

±1°C

R, S 0 a 1480 ±1,5°C

B 870 a 1700 ±0,5°C

Tabela 1 - Limite de erro de termopares de acordo com a ASTM E-2305

Strain Gages: Strain gages medem a força baseado no princípio que quanto mais fino é um fio,

mais elevada sua resistência. Em outras palavras, um fio com um diâmetro menor apresenta uma

resistência mais elevada do que um fio com um diâmetro maior. Se pegarmos um fio elástico,

podemos esticá-lo e medir a mudança na resistência porque seu diâmetro diminui no meio,

aumentando a resistência. A mudança na resistência comparada à mudança na voltagem apresenta

um comportamento linear. Se uma corrente constante for fornecida a um strain gage e a força

aplicada ao mesmo variar, a resistência do strain gage variará e a mudança na voltagem medida será

5 American Society for Testing and Materials (ASTM)

17

proporcional à esta mudança na força. Este tipo de sensor tem muitos usos. São usados para a

medida da pressão ligando-os a uma membrana que seja exposta à pressão e também são utilizados

para medidas de cargas. Outra aplicação é em acelerômetros. A maioria dos strain gages têm o fio

disposto em zig-zag e colado sobre um revestimento protetor de papel ou membrana flexível.

Figura 10 - Strain Gage em configuração Zig-Zag

Sensores de Pressão: Sensores de pressão tipicamente medem e controlam fluidos tais como

gases e líquidos. Alguns sensores da pressão operam através de uma mudança na resistência, alguns

através de uma mudança na capacitância e alguns através das mudanças na indutância. Um sensor

da pressão tipo strain gage une um strain gage a uma membrana que é esticada proporcionalemte à

pressão aplicada a ela. Se uma corrente constante for aplicada ao strain gage, sua tensão da saída

muda de maneira corresponde à mudança na pressão. (7)

Figura 11 - Sensor de pressão do tipo Strain-gage

18

2.2. COMUNICAÇÃO ETHERNET E O IP

Ethernet é uma tecnologia de interconexão LAN6 baseada no envio de pacotes. Ela define

cabeamento e sinais elétricos para a camada física, e formato de pacotes e protocolos para a camada

de controle de acesso ao meio MAC7 do modelo OSI8. A Ethernet foi padronizada pelo IEEE como

802.3

A identificação dos dispositivos é feita por um cabeçalho nos pacotes de dados trafegando na

rede que contém o IP9 que tem a função de identificar o dispositivo na rede. O endereço IP, na

versão 4 (IPv4), é um número de 32 bits, portanto dentro de uma LAN temos 232 endereços IP

possíveis e é escrito na chamada notação decimal deparada por pontos (i.e: 192.168.0.2), na qual

cada byte do endereço é escrito em sua forma decimal e separado dos outros por um ponto.

Devemos notar que um endereço IP não identifica uma máquina individual, mas uma conexão à

inter-rede. Assim, um gateway10 conectando à n redes tem n endereços IP diferentes, um para cada

conexão.

A Ethernet praticamente tomou conta do mercado de redes locais. Na década de 80 e início dos

anos 90, ela enfrentou muitos desafios vindos de outras tecnologias LAN, como ring, FDDI e ATM.

Algumas dessas tecnologias conseguiram ficar com parte do mercado durante alguns anos. Mas,

desde sua invenção em meados dos anos 70, a Ethernet tem se desenvolvido e crescido. Além disso,

ela conservou sua participação de mercado dominante. Hoje, ela é de longe a tecnologia LAN mais

preponderante, e é provável que continue assim no futuro próximo. Podemos dizer que a Ethernet

está sendo para rede local o que a Internet tem sido para a rede global.

Há muitas razões para o sucesso da Ethernet. Em primeiro lugar, ela foi a primeira LAN de alta

velocidade amplamente disseminada. Como foi disponibilizada de modo precoce, os

administradores de rede ficaram bastante familiarizados com a Ethernet e relutam em mudar para

outras tecnologias. Em segundo lugar, token ring, FDDI e ATM são tecnologias mais complexas e

mais dispendiosas do que a Ethernet, o que desencoraja ainda mais qualquer mudança de tecnologia

de LAN. Em terceiro lugar, a razão mais óbvia e atraente para mudar para outra tecnologia era

normalmente as velocidades mais altas destas tecnologias, contudo, a Ethernet sempre evoluiu,

produzindo versões que funcionavam a velocidades iguais, se não superiores às concorrentes. Por

6 Local Area Network 7 Media Access Control 8 Open Systems Interconnection: É um modelo que divide as redes de computadores em sete camadas, de forma a se obter camadas de abstração 9 Internet Procotol 10 É uma máquina intermediária geralmente destinada a interligar redes, separar domínios de colisão, ou mesmo traduzir protocolos.

19

fim, como a Ethernet se tornou muito popular, o hardware para Ethernet (em particular, as placas de

interface de rede) se tornou mercadoria comum e, assim, de baixo custo. (9)

2.3. CONVERSORES ANALÓGICOS DIGITAIS

Sinais gerados por circuitos analógicos são muitas vezes processados por circuitos digitais, por

exemplo, por um microcontrolador ou por um microcomputador.

Para processar sinais analógicos usando circuitos digitais, deve-se efetuar uma conversão para

essa última forma, a digital. Tal conversão é efetuada por um Conversor Analógico-Digital ("A/D

converter" ou ADC).

O sinal recebido, depois de digitalizado, é processado e, na maioria das vezes, será utilizado

para atuar sobre o circuito analógico que gerou o sinal original ou até mesmo sobre outro circuito.

Por isso, um sinal na forma digital, para ser processado por um bloco funcional analógico, deve

ser previamente convertido (ou reconvertido) para a forma analógica equivalente. (10)

A resolução do conversor indica o número de valores discretos que ele pode produzir sobre à

partir de uma faixa de valores analógicos. Como esses valores são, usualmente, registrados

eletronicamente em formato binário, a resolução é expressa em bits. Por conseqüência, o número de

valores discretos ou “níveis”, é geralmente uma potência de dois. Por exemplo, um ADC com uma

resolução de 8 bits pode converter um sinal analógico em uma faixa de 256 níveis, uma vez que 28

= 256. Por exemplo: os valores podem ser expressos em um valor de 0 a 255 (quando usamos

variáveis inteiras sem sinal) ou -128 a 127 (inteiros com sinal).

Na prática, a resolução útil do conversor é limitada pela relação “sinal-ruído” do sinal em

questão. Se houver muito ruído presente na entrada analógica, será impossível haver precisão além

de um certo número de bits de resolução, o ENOB11. Neste caso, o ADC não produzirá uma

conversão precisa, uma vez que os bits menos significativos estarão apenas medindo ruído. A

relação “sinal-ruído” deve ser em torno de 6 dB por bit de resolução requerido. (11)

Existem diversos tipos de conversores A/D que utilizam diversas estratégias de conversão, entre

eles:

Conversores de "Amostragem":

• Aproximações Sucessivas

• Flash

• Rampa

11 Effective Number of Bits

20

Convertem proporcionalmente o valor digital equivalente à tensão analógica no instante em que

é realizada a amostragem.

Conversores Integradores:

• Dupla rampa

• Tensão-Frequência.

Nestes conversores é calculado o valor médio sobre um tempo fixo de medição. Esses

conversores demoram mais tempo para fornecer a leitura, porém são menos sensíveis a ruído,

devido o processamento matemático intrínseco.

21

3. MÉTODOS E IMPLEMENTAÇÕES

3.1. PROJETO

Como explicado anteriormente, o projeto abordado neste documento teve por objetivo

desenvolver um sistema de aquisição de dados provenientes de sensores analógicos. Um esquema

geral do projeto pode ser conferido na Figura 12 - Esquema geral do projeto.

Como o sistema trabalha em sinergia com a rede de transmissão dos dados, o armazenamento

local dos dados coletados foi excluído do projeto para simplificar e baratear o custo do hardware. A

visualização e a gravação das informações provenientes do sistema são feitas no terminal remoto

através de uma ferramenta JAVA (o que a torna muti-plataforma12). Como um todo, o sistema foi

dividido em: Módulo de Aquisição/Transmissão e Software de Visualização.

Figura 12 - Esquema geral do projeto

O Módulo de Aquisição basicamente responde as requisições feitas pelo Software de

Visualização enviando as leituras dos sensores naquele momento. A ampla disseminação e

padronização do protocolo IP justificam a escolha deste como meio para transmissão dos dados.

12 Independente de sistema operacional

Aquisição/Transmissão

Software de Visualização

A facilidade de integração do sistema é em boa parte garantida pela presença de uma interface

ethernet no Módulo de Aquisição

(através de um switch13 por exemplo) para que os dados possam ser transmitidos.

Finalmente, para obtenção dos dados, foi determinado o estabelecimento de uma conexão via

telnet. Pela Figura 13 - Formato dos dados proveniente do Módulo de Aquisição em conexão

Telnet, percebemos que o Módulo de Aquisição

podem ser ligados ao dispositivo) no formato: “‘Sensor’: ‘valor lido’”, separ

de quebra de linha, neste caso: ‘\n’

Figura 13 - Formato dos dados proveniente do Módulo de Aquisição em conexão

Respeitando esse formato, qualquer software é capaz de coletar e tratar os dados

isso viabiliza o desenvolvimento de um software próprio para aquisição quando há interesse por

parte do usuário. Neste projeto, optamos pela construção de uma ferramenta de visualização e

gravação de dados em JAVA para aproveitarmos o suporte

Por se tratar de uma ferramenta JAVA, não há necessidade de instalação do Software de

Visualização (uma vez que a máquina virtual JAVA esteja presente no terminal cliente) para que a

coleta de dados seja realizada. Uma vez iniciado, e

Aquisição e de tempos em tempos requisita os dados dos sensores, exibindo na tela e armazenando

13 Dispositivo utilizado para troca de quadros entre nós de uma rede de computadores14 Este caractere equivale a LF (line-

A facilidade de integração do sistema é em boa parte garantida pela presença de uma interface

Módulo de Aquisição. A este é atribuído um endereço IP, e basta conectá

por exemplo) para que os dados possam ser transmitidos.

Finalmente, para obtenção dos dados, foi determinado o estabelecimento de uma conexão via

Formato dos dados proveniente do Módulo de Aquisição em conexão

Módulo de Aquisição envia os dados de cada sensor (até 8 sensores

podem ser ligados ao dispositivo) no formato: “‘Sensor’: ‘valor lido’”, separados por um caractere

n’14.

Formato dos dados proveniente do Módulo de Aquisição em conexão

Respeitando esse formato, qualquer software é capaz de coletar e tratar os dados

isso viabiliza o desenvolvimento de um software próprio para aquisição quando há interesse por

parte do usuário. Neste projeto, optamos pela construção de uma ferramenta de visualização e

A para aproveitarmos o suporte a multi-plataformas.

Por se tratar de uma ferramenta JAVA, não há necessidade de instalação do Software de

Visualização (uma vez que a máquina virtual JAVA esteja presente no terminal cliente) para que a

coleta de dados seja realizada. Uma vez iniciado, este estabelece conexão com o

e de tempos em tempos requisita os dados dos sensores, exibindo na tela e armazenando

Dispositivo utilizado para troca de quadros entre nós de uma rede de computadores

-feed) ou 10 em ASCII

22

A facilidade de integração do sistema é em boa parte garantida pela presença de uma interface

. A este é atribuído um endereço IP, e basta conectá-lo a uma rede

Finalmente, para obtenção dos dados, foi determinado o estabelecimento de uma conexão via

Formato dos dados proveniente do Módulo de Aquisição em conexão

envia os dados de cada sensor (até 8 sensores

ados por um caractere

Formato dos dados proveniente do Módulo de Aquisição em conexão Telnet

Respeitando esse formato, qualquer software é capaz de coletar e tratar os dados dos sensores,

isso viabiliza o desenvolvimento de um software próprio para aquisição quando há interesse por

parte do usuário. Neste projeto, optamos pela construção de uma ferramenta de visualização e

Por se tratar de uma ferramenta JAVA, não há necessidade de instalação do Software de

Visualização (uma vez que a máquina virtual JAVA esteja presente no terminal cliente) para que a

ste estabelece conexão com o Módulo de

e de tempos em tempos requisita os dados dos sensores, exibindo na tela e armazenando

os mesmos em um arquivo para posterior tratamento. Tal arquivo possui formato de texto,

permitindo assim que seja process

exemplo, Microsoft Excel.

Figura 14 - Interface de aquisição e gravação no terminal cliente

3.1. DESCRIÇÃO DAS ATIVIDADES REALIZADAS

3.1.1. Concepção inicial do hardware

Num levantamento inicial do hardware necessário para cumprimento da proposta do sistema

três necessidades fundamentais foram identificadas:

• Conversor A/D: Necessário para tratamento dos dados analógicos em meio digital.

• Microprocessador: Controle e leitura do

• Interface de rede: Transmissão dos dados.

os mesmos em um arquivo para posterior tratamento. Tal arquivo possui formato de texto,

permitindo assim que seja processado em qualquer software de planilha de dados

Interface de aquisição e gravação no terminal cliente

DESCRIÇÃO DAS ATIVIDADES REALIZADAS

ial do hardware

levantamento inicial do hardware necessário para cumprimento da proposta do sistema

três necessidades fundamentais foram identificadas:

Conversor A/D: Necessário para tratamento dos dados analógicos em meio digital.

Microprocessador: Controle e leitura do A/D e comunicação.

Interface de rede: Transmissão dos dados.

23

os mesmos em um arquivo para posterior tratamento. Tal arquivo possui formato de texto,

de dados como, por

levantamento inicial do hardware necessário para cumprimento da proposta do sistema

Conversor A/D: Necessário para tratamento dos dados analógicos em meio digital.

24

Tendo em mente estes requisitos, iniciou-se a etapa de estudo e busca de componentes

necessários à construção do hardware.

3.1.2. Estudo e análise dos componentes eletrônicos utilizados

Devido principalmente à disponibilidade e conhecimento prévio sobre o módulo RCM3000 e

por possuir um processador eficiente, fácil e rápido de programar e principalmente interface de

rede, este foi escolhido como sendo a base do hardware a ser desenvolvido.

Este módulo dispõe de um processador Rabbit 3000™ de 14,7 Mhz 512K de memória Flash e

512K SRAM além de diversos outras características (como já descrito anteriormente). Em seguida,

para que fosse possível conectar múltiplos sensores e com uma precisão razoável de conversão foi

escolhido o ADC0809 da National Semiconductor. Um conversor A/D de 8 bits multiplexado para

8 sensores (também descrito anteriormente). Assim como o RCM3000, a disponibilidade deste

dispositivo em laboratório foi o ponto chave para sua escolha no projeto.

Ademais, um regulador de tensão de 5V (L7805) e capacitores de acoplamento (10uF e 100nF)

foram necessários para a construção de um protótipo.

As portas de controle e saída digital do A/D foram ligados em I/Os selecionados do módulo

como descrito na tabela abaixo:

PORT

(Rabbit)

PORT

(A/D)

PORT

(Rabbit)

PORT

(A/D)

Co

ntr

ole

INT2 EOC PA0 2^-1

Sa

ída

Dig

ital

INT1 START PA1 2^-2

PG3 OE PA2 2^-3

PF4 ALE PA3 2^-4

Mu

ltip

lex

açã

o

PG2 ADD0 PA4 2^-5

PG6 ADD1 PA5 2^-6

PG7 ADD2 PA6 2^-7

PF7 Clk PA7 2^-8

Tabela 2 - Pinagem entre A/D e Módulo Microcontrolador

Figura

Figura

Figura 15 - Esquemático final do projeto

Figura 16 - Montagem em Protoboard

25

26

3.1.3. Software embarcado

Seguindo as especificações do módulo, a plataforma de desenvolvimento do software

embarcado foi a Dynamic C 8.51.

O firmware desenvolvido foi organizado em três grandes domínios:

• Configuração e inicialização das portas (em linguagem C).

Setup da rede e outras inicializações seguidas da configuração das portas de I/O.

WrPortI(SPCR, NULL, 0x80); // Port A como “input”

WrPortI(PFFR, &PFFRShadow, 0x00); // Port F em modo “standard”

WrPortI(PFDDR, &PFDDRShadow, 0xFF); // Port F como “output”

WrPortI(PEDDR, &PEDDRShadow, 0xFD);

// Port E: 0, 2, 3, 4, 5, 6, 7 como “output”, 1 como “input”

// Port F gera “clock” na interrupção de B1

WrPortI(PFCR, &PFCRShadow, 0x20);

WrPortI(PGFR, &PGFRShadow, 0x00); // Port G em modo “standard”

WrPortI(PGDDR, &PGDDRShadow, 0xFF); // Port G como “output”

Tabela 3 – Configuração inicial das portas do RCM3000

• Tratamento de eventos de rede e leitura dos sinais digitais provenientes do ADC0809

(em linguagem C).

Engloba a recepção dos eventos do terminal cliente e a seqüência de operação do ADC,

descritos em 1.4.3 ADC0809.

Trechos do código são mostradas à seguir:

for (i=0;i<8;i++){

waitfor(DelayMs(10));

if (i == 0){

BitWrPortI(PGDR, &PGDRShadow, 0, 2);

BitWrPortI(PGDR, &PGDRShadow, 0, 6);

BitWrPortI(PGDR, &PGDRShadow, 0, 7);

} else if (i == 1){

BitWrPortI(PGDR, &PGDRShadow, 0, 2);

BitWrPortI(PGDR, &PGDRShadow, 0, 6);

BitWrPortI(PGDR, &PGDRShadow, 1, 7);

} else if (i == 2){

BitWrPortI(PGDR, &PGDRShadow, 0, 2);

BitWrPortI(PGDR, &PGDRShadow, 1, 6);

BitWrPortI(PGDR, &PGDRShadow, 0, 7);

} else if (i == 3){

27

BitWrPortI(PGDR, &PGDRShadow, 0, 2);

BitWrPortI(PGDR, &PGDRShadow, 1, 6);

BitWrPortI(PGDR, &PGDRShadow, 1, 7);

} else if (i == 4){

BitWrPortI(PGDR, &PGDRShadow, 1, 2);

BitWrPortI(PGDR, &PGDRShadow, 0, 6);

BitWrPortI(PGDR, &PGDRShadow, 0, 7);

} else if (i == 5){

BitWrPortI(PGDR, &PGDRShadow, 1, 2);

BitWrPortI(PGDR, &PGDRShadow, 0, 6);

BitWrPortI(PGDR, &PGDRShadow, 1, 7);

} else if (i == 6){

BitWrPortI(PGDR, &PGDRShadow, 1, 2);

BitWrPortI(PGDR, &PGDRShadow, 1, 6);

BitWrPortI(PGDR, &PGDRShadow, 0, 7);

} else if (i == 7){

BitWrPortI(PGDR, &PGDRShadow, 1, 2);

BitWrPortI(PGDR, &PGDRShadow, 1, 6);

BitWrPortI(PGDR, &PGDRShadow, 1, 7);

}

Tabela 4 - Multiplexação das 8 entradas do AD

iValue = RdPortI(PADR);

printf("Value = %d\n", iValue);

voltage = iValue + 0; //Casting int to float

voltage = voltage / 51;

printf("Voltage = %f\n", voltage);

sprintf(wr_buffer, "%d: %f\n\r", i, voltage);

sock_fastwrite(&Socket_1, wr_buffer, strlen(wr_buffer));

Tabela 5 - Formatação dos dados para envio

• Geração de pulso de clock para o CI de A/D (em linguagem Assembly).

Neste bloco, o gerador de clock foi implementado usando o contador timerB que é

incrementado automaticamente pelo Rabbit e gera mudança do nível lógico na porta F quando o

contador atinge um valor de comparação definido pelo programador através de uma interrupção.

Neste caso: 0x80h para atingirmos um clock de 14kHz

28

match_0100:

ld (count), hl

ld a, (PFDRShadow) ;registro do contador a cada interrupção

xor 0x80

ioi ld (PFDR), a ;carrega valor de “output” para a próxima comparação

ld (PFDRShadow), a

jp done

Tabela 6 - Instruções na interrupção do timerB para comparação do contador

3.1.1. Placa de circuito impresso

Ainda em fase de finalização e montagem, uma placa projetada a partir do circuito montado no

software Protel e convertido para LMD pelo CircuitCAM para compatibilidade com a fresadeira foi

fabricada para possibilitar o uso, homologação e testes em campo.

Figura 17 - layout da placa de face dupla desenvolvida

Figura

Figura 19 - Perspectiva da montagem final da placa sem o CI de AD

Figura 18 - Placas projetadas em Protel

pectiva da montagem final da placa sem o CI de AD

29

30

4. RESULTADOS

De posse do hardware montado em protoboard e o módulo devidamente programado iniciou-se

a etapa de testes do hardware. Dois potenciômetros foram adicionados em duas entradas do A/D

para simular sensores. As demais entradas do A/D foram conectadas em níveis de 5, 2,5 ou 0V.

O hardware foi então conectado a uma rede de computadores e o resultado, como esperado, foi

o sucesso na leitura dos valores dos sensores. Para fins de validação dos valores indicados, um

multímetro fazia as mesmas leituras na entrada do A/D, confirmando a veracidade destes. As

variações dos dados dos sensores foram simuladas através de variações nos potenciômetros e

novamente, os dados oriundos do hardware de aquisição estavam coerentes e com variação de erro

de 0,02V entre multímetro e o monitor JAVA.

O tempo de resposta do hardware (tempo transcorrido entre uma requisição e sua respectiva

resposta) foi suficiente para permitir leituras a cada 500ms.

Tabelas de dados foram registradas automaticamente em arquivo texto, posteriormente

importadas e tratadas no Microsoft Excel.

Hora Sensor

1

Sensor

2

Sensor

3

Sensor

4

Sensor

5

Sensor

6

Sensor

7

Sensor 8

15:47:50:296 4,98 2,50 2,09 0,00 0,01 0,84 0,00 0

15:47:51:015 4,98 2,50 2,07 0,00 0,03 0,86 0,01 0,01

15:47:51:515 5,00 2,49 2,11 0,00 0,01 0,84 0,01 0,01

15:47:52:015 4,96 2,50 2,15 0,01 0,00 0,86 0,00 0

15:47:52:890 4,96 2,52 2,05 0,00 0,03 0,84 0,01 0,01

15:47:53:640 4,98 2,50 2,78 0,00 0,01 0,84 0,01 0

15:47:54:140 4,98 2,50 3,11 0,00 0,00 0,86 0,01 0,01

15:47:54:640 4,96 2,50 3,68 0,01 0,01 0,86 0,00 0

15:47:55:140 4,96 2,50 4,31 0,00 0,00 0,86 0,01 0

15:47:55:640 5,00 2,52 4,88 0,01 0,00 0,86 0,00 0

15:47:56:265 5,00 2,52 4,13 0,00 0,00 0,86 0,00 0,01

15:47:56:765 4,98 2,50 3,27 0,00 0,01 0,86 0,01 0,01

15:47:57:265 5,00 2,52 2,64 0,01 0,01 0,84 0,00 0

15:47:57:765 4,98 2,49 1,58 0,00 0,00 0,86 0,01 0,01

15:47:58:265 5,00 2,50 0,62 0,00 0,01 0,84 0,00 0

15:47:58:765 5,00 2,52 0,03 0,01 0,01 0,86 0,00 0

15:47:59:265 4,98 2,50 0,35 0,00 0,00 0,84 0,00 0

15:47:59:890 5,00 2,50 2,11 0,01 0,01 0,86 0,00 0

15:48:00:390 4,98 2,50 2,62 0,00 0,00 0,86 0,00 0,01

15:48:00:890 5,00 2,49 3,15 0,01 0,01 0,84 0,00 0

15:48:01:578 4,98 2,49 4,39 0,00 0,00 0,86 0,00 0,01

31

15:48:02:250 4,96 2,5 4,98 0,01 0 0,84 0,01 0,01

15:48:02:984 4,96 2,5 5 0 0 0,86 0 0

17:27:11:765 4,98 2,49 5 0,03 0,01 0,86 0,01 0

17:27:12:187 5 2,52 4,98 0,01 0,01 0,84 0 0,03

17:27:12:984 5 2,52 5 0 0,01 0,84 0,01 0,01

17:27:13:734 4,98 2,5 5 0 0,01 0,86 0,01 0,01

17:27:14:484 5 2,52 5 0 0,01 0,86 0 0

17:27:14:984 4,98 2,49 5 0 0 0,86 0 0

17:27:15:484 4,98 2,5 5 0 0,01 0,86 0,01 0,01

17:27:15:984 4,98 2,5 5 0 0 0,84 0 0

17:27:16:484 4,98 2,52 5 0 0,01 0,84 0 0

17:27:18:828 5 2,52 5 0,01 0,01 0,84 0,01 0,01

17:27:19:640 5 2,52 4,92 0 0 0,84 0,01 0

17:27:20:406 5 2,5 5 0,01 0,01 0,86 0 0

17:27:20:906 5 2,5 4,96 0,01 0,01 0,86 0 0

17:27:21:406 5 2,52 5 0 0,01 0,84 0 0

17:27:21:906 4,96 2,5 4,98 0,01 0,01 0,84 0 0

17:27:22:406 4,96 2,5 4,98 0 0 0,86 0 0

17:27:23:000 5 2,52 5 0 0 0,86 0 0

17:27:23:703 4,98 2,5 4,98 0,01 0 0,84 0,01 0

17:27:24:390 4,98 2,5 5 0 0 0,86 0 0

17:27:25:109 4,98 2,5 4,98 0 0,01 0,84 0,01 0,01

17:27:25:796 4,96 2,5 5 0 0,01 1,62 0,01 0

17:27:26:296 5 2,52 5 0,01 0,01 3,72 0 0,01

17:27:26:984 5 2,52 5 0,01 0,01 4,98 0,01 0,01

17:27:27:718 4,96 2,5 4,98 0 0,01 3,13 0,01 0,01

17:27:28:421 5 2,52 5 0 0 0,82 0 0

17:27:29:125 5 2,52 4,98 0,01 0 0,47 0 0,01

17:27:29:843 4,98 2,5 5 0 0 0,45 0 0,01

17:27:30:343 4,96 2,5 4,98 0 0 0,47 0 0

17:27:30:984 5 2,52 4,96 0 0 0,45 0 0

17:27:31:781 5 2,52 4,86 0 0 0,45 0 0

17:27:32:281 5 2,5 4,03 0,01 0,01 0,45 0 0

17:27:32:781 4,96 2,5 3,33 0,01 0,01 0,45 0 0

17:27:33:281 4,98 2,5 2,62 0 0 0,43 0 0,01

17:27:33:781 4,98 2,5 2,03 0,01 0 0,45 0 0

17:27:34:281 5 2,52 1,68 0 0 0,45 0 0

17:27:34:781 4,96 2,5 1,43 0 0,01 0,45 0,01 0,01

17:27:35:281 4,98 2,49 0,96 0 0,01 0,47 0 0

17:27:35:828 5 2,5 2,47 0,01 0,01 0,47 0 0

17:27:36:546 5 2,5 3,49 0,01 0 0,45 0 0

17:27:37:046 4,96 2,5 4,21 0 0 0,45 0,01 0,01

32

17:27:37:812 4,98 2,5 2,47 0 0 0,47 0 0,01

17:27:38:312 5 2,5 1,47 0 0,01 0,45 0,01 0,01

17:27:38:812 4,98 2,5 1,07 0 0 0,45 0 0

17:27:39:312 5 2,52 2,13 0 0,01 0,45 0,01 0,01

17:27:39:812 4,98 2,52 3,17 0 0,01 0,45 0 0

Tabela 7 - Arquivo de "log" gravado durante testes

Figura 20 - Gráfico da tabela obtida

Quantidade Dispositivo Preço unitário R$

1 Rabbit3000 150,00 1 ADC0809CCN 9,62 1 Regulador de tensão L7805CV (5V) 0,91 1 Regulador de tensão REG1117 (3.3V) 3 Capacitor cerâmico 100nF 1 Capacitor eletrolítico 10uF 2 MiniHeader 17x2 3,50 1 Borneira 10 pinos 1 Placa circuito impresso

Total

Tabela 8 - BOM15

4.1. DIFICULDADES, LIMITAÇÕES E DECISÕES

Uma dificuldade enfrentada foi quanto à definição e especificação do projeto de hardware.

Fatos constatados no transcorrer do projeto modificaram o layout final do mesmo.

15 Bill Of Materials

0,00

1,00

2,00

3,00

4,00

5,00

6,00

15

:47

:50

:29

6

15

:47

:52

:01

5

15

:47

:54

:14

0

15

:47

:55

:64

0

15

:47

:57

:26

5

15

:47

:58

:76

5

15

:48

:00

:39

0

15

:48

:02

:25

0

17

:27

:12

:18

7

17

:27

:14

:48

4

17

:27

:15

:98

4

17

:27

:19

:64

0

17

:27

:21

:40

6

17

:27

:23

:00

0

17

:27

:25

:10

9

17

:27

:26

:98

4

17

:27

:29

:12

5

17

:27

:30

:98

4

17

:27

:32

:78

1

17

:27

:34

:28

1

17

:27

:35

:82

8

17

:27

:37

:81

2

17

:27

:39

:31

2

Sensor 2

Sensor 3

Sensor 4

Sensor 5

Sensor 6

33

Após a determinação dos componentes principais (Rabbit3000, ADC0809), surgiu o seguinte

inconveniente: compatibilidade de nível lógico. O módulo Rabbit3000 opera em 3V3 enquanto o

Conversor A/D opera em nível de saída nos padrões TTL.

Segundo a documentação disponível do módulo RCM3000, o mesmo aceita entradas em nível

lógico +5V, porém suas saídas operam em 3V3, situando-se abaixo do nível lógico 1 mínimo para

controle do A/D (Vcc – 1.5 = 3V5). Para solucionar este problema um buffer foi escolhido, no caso

o SN74HC244. Concluímos que o uso deste buffer era desnecessário, pois poderíamos construir um

circuito de “pull-up16” com resistores de 10k, contudo, testes com Rabbit3000 revelaram que não há

necessidade deste buffer nem dos resistores de “pull-up”, em 100% dos casos o A/D foi controlado

com sucesso pelo RCM3000 mesmo com esta diferença lógica entre eles.

Além disso, no início da concepção do hardware, consideramos o uso de um oscilador externo

(cristal de 1Mhz) para ativar o ADC0809, contudo, decidimos após análise mais cuidadosa da

documentação do RCM3000 e testes, implementar em software embarcado o gerador de pulsos em

uma das portas do módulo.

5. CONCLUSÃO

O desenvolvimento do projeto para o sistema de monitoramento de sensores industriais via IP

como Projeto de Formatura apresentado à EESC-USP como parte dos requisitos necessários para a

obtenção da conclusão do curso de Engenharia de Computação foi de fato, muito interessante e

proveitoso. Este trabalho envolveu muitos conceitos, alguns dos quais já haviam sido estudados

durante do decorrer do curso, como microprocessadores, C embarcado, comunicação ethernet e

Java, mas muitos dos temas envolvidos não haviam ainda sido explorados durante a graduação, tais

como os prototipação de circuitos, sensores industriais.... Assim, através deste projeto foi possível

rever alguns assuntos e assimilar novas informações.

Outro aspecto compensador durante o desenrolar do projeto foi o fato de este ter sido

desenvolvido em parceria com outro estudante de graduação do curso de Engenharia de

Computação, Eduardo Siufi Magalhães. Conseguimos determinar bem as competências de cada um

ao projeto, dividindo claramente a responsabilidade com o firmware para mim e software para o

Eduardo e compartilhando o desenvolvimento do hardware. Apesar da divisão, houve uma interação

muito boa e produtiva entre ambas as partes, experiência esta que possibilitou o aprimoramento das

habilidades referentes ao trabalho em grupo sem negligenciar as responsabilidades individuais.

16 Resistores de Pull-Up são usados em design eletrônicos para garantir que o sinal lógico de entrada se mantenha caso dispositivos externos sejam desconectados, também são utilizados para interface de dispositivos que usam voltagem de níveis lógicos diferentes.

34

Como trabalhos futuros referentes a este projeto, posso citar: Finalizar a montagem e

homologação da placa de circuito impresso com sensores reais e implementar a configuração dos

parâmetros (configuração de endereçamento de rede e configuração dos dispositivos no software de

alto nível) fora do tempo de compilação.

6. BIBLIOGRAFIA

1. DataQ. [Online] [Citado em: 18 de Novembro de 2007.] http://www.dataq.com/products/hardware/di710.htm. 2. Dickson. [Online] [Citado em: 15 de Novembro de 2007.] http://www.dicksondata.com/product/model_TK500.php. 3. Rabbit Semiconductor. RabbitCore RCM3000. User's Guide. [Online] [Cited: Novembro 19, 2007.] http://sonoma.edu/users/b/bloomal/data_sheets/RCM3000UM.pdf. 4. —. Rabbit Semiconductor. [Online] Rabbit, 2007. [Citado em: 15 de Novembro de 2007.] http://www.rabbit.com/. 5. National Semiconductor Corporation. ADC0808/ADC0809 8-bit uP Compatible A/D Converters with 8 channel multiplexer. 1995. 6. Brandolim, Rinaldo. Sistema Embarcado de Ultra-Som Com Doppler Pulsado: Desenvolvimento das Interfaces. São Carlos : s.n., 2007. 7. Castro, Eduardo Breviglieri Pereira de. Automação da Produção. [Online] [Citado em: 10 de Novembro de 2007.] http://www.engprod.ufjf.br/epd_automacao/. 8. Medição de Temperatura Usando-se Termopar. Moreira, Lúcia. Setembro de 2002. 9. Kurose, James F. e Ross, Keith W. Redes de Computadores e a Internet. São Paulo : Addison Wesley, 2003. 10. SICA, Carlos. Sistemas Automáticos com Microcontroladores 8031/8051 . s.l. : Editora Novatec, 2006. 11. Staller, Len. Understanding analog to digital converter specifications. Embedded.com. [Online] [Citado em: 10 de Novembro de 2007.] http://www.embedded.com/columns/technicalinsights/60403334?_requestid=690399.