1 Centro Universitário Positivo - UnicenP Núcleo de Ciências Exatas e Tecnológicas – NCET Engenharia da Computação Roberto Barcelos Costa Filho Espirometria Computadorizada Curitiba 2005 2 Centro Universitário Positivo - UnicenP Núcleo de Ciências Exatas e Tecnológicas – NCET Engenharia da Computação Roberto Barcelos Costa Filho Espirometria Computadorizada Monografia apresentada à disciplina de Projeto Final, como requisito parcial à conclusão do Curso de Engenharia da Computação. Orientador: Prof. José Carlos da Cunha Curitiba 2005 ii 3 Sumário Lista de Figuras ................................................................................................................... iv Lista de Tabelas ................................................................................................................... v Resumo ................................................................................................................................6 Abstract ................................................................................................................................7 1 - Especificação ..................................................................................................................8 1.1 - Introdução ....................................................................................................................8 1.2 – Espirômetro na espirometria........................................................................................8 1.3 - Aspectos Funcionais ....................................................................................................9 1.4 - Especificação do Hardware........................................................................................10 1.4.1 - Diagrama em blocos com descrição.....................................................................10 1.4.4 - Ambiente de desenvolvimento .............................................................................12 1.5 - Especificação do Software .........................................................................................13 1.6.1 - Interfaces..............................................................................................................13 1.6.2 – Fluxograma..........................................................................................................15 1.6.3 - Funções ao software: ...........................................................................................15 1.7 - Cronograma de desenvolvimento...............................................................................16 1.8 - Estudo de Viabilidade.................................................................................................16 1.9 - Validação do Projeto ..................................................................................................17 2 – Projeto ..........................................................................................................................18 2.1 – Hardware ................................................................................................................18 2.1.1 – Transdutor – Freqüência / Tensão ...................................................................18 2.1.2 – A/D – Conversão Analógico – Digital................................................................20 2.1.3 – Microprocessador .............................................................................................20 2.1.4 – USB - Universal Serial Bus / Barramento Serial Universal ...............................21 2.2 - Software ..................................................................................................................21 2.2.1 – Descrição geral.................................................................................................21 2.2.2 – Diagrama de Caso de Uso ...............................................................................22 2.2.3 –Casos de Uso ....................................................................................................23 2.2.3 - Diagramas de Classes ......................................................................................24 2.2.4 - Diagramas de Seqüências ................................................................................26 2.2.5 - Modelo Relacional.............................................................................................30 2.2.6 – Dicionário de dados..........................................................................................31 2.2.7 - Fluxograma do Firmware...................................................................................31 2.2.8 – Interfaces..........................................................................................................32 3 – Implementação .............................................................................................................38 3.1 – Calibração do transdutor ........................................................................................38 3.2 – Resposta do componente freqüência / tensão .......................................................39 3.3 – Métodos matemáticos para cálculo do volume.......................................................39 4 – Resultados....................................................................................................................40 4.1 – Testes de exames ..................................................................................................40 5 - Conclusão .....................................................................................................................43 6 - Referências Bibliográficas .............................................................................................44 7 -ANEXOS ........................................................................................................................45 iii 4 Lista de Figuras Figura 1.1 - Teste de função pulmonar.......................................................................................... 8 Figura 1.2 – Diagrama em blocos do sistema. ........................................................................... 10 Figura 1.3 – Esquemático da hélice ............................................................................................. 11 Figura 1.4 – Protótipo da tela dos gráficos. ................................................................................ 13 Figura 1.5 – Protótipo da tela de cadastro de paciente. ........................................................... 14 Figura 1.6 – Protótipo de tela de cadastro de médico............................................................... 14 Figura 1.7 – Fluxograma do recebimento das amostras .......................................................... 15 Figura 2.8 - Exemplo de sinal de saída do transdutor de fluxo. .............................................. 19 Figura 2.9 – Transdutor de fluxo................................................................................................... 19 Figura 2.10 – Diagrama de caso de uso do sistema. ................................................................ 22 Figura 2.11 - Diagrama de classes............................................................................................... 25 Figura 2.12 - Diagrama de Seqüência Manter Paciente........................................................... 26 Figura 2.13 - Diagrama de Seqüência Manter Médico. ............................................................ 26 Figura 2.14 - Diagrama de Seqüência Criar Exame.................................................................. 27 Figura 2.15 - Diagrama de Seqüência Colher Amostra. ........................................................... 27 Figura 2.16 - Diagrama de Seqüência Gerar Relatório de Exame. ........................................ 28 Figura 2.17 - Diagrama de Seqüência Gerar Histórico de Exame.......................................... 28 Figura 2.18 - Diagrama de Seqüência Visualizar Tabela Padrão ........................................... 29 Figura 2.19 - Diagrama do modelo entidade relacionamento.................................................. 30 Figura 2.20 – Fluxograma do Firmware....................................................................................... 31 Figura 2.21 - Menu principal do programa. ................................................................................. 32 Figura 2.22 - Cadastro de Médico. ............................................................................................... 33 Figura 2.23 – Cadastro de Paciente............................................................................................. 33 Figura 2.24 - Criando o exame...................................................................................................... 34 Figura 2.25 - Recolhendo amostras. ............................................................................................ 34 Figura 2.26 - Relatório do exame. ................................................................................................ 35 Figura 2.27 – Tela de filtragem de histórico de exames. .......................................................... 35 Figura 2.28 – Lista de exames retornados da consulta de histórico de exames.................. 36 Figura 2.29 – Tela de seleção de tipo de tabela. ....................................................................... 36 Figura 2.30 – Tela dos valores da tabela selecionada.............................................................. 37 Figura 2.31 -Gráfico da resposta do transdutor de fluxo de ar. ............................................... 38 Figura 2.32 – Curva de resposta do CI LM2907 em função do fluxo de ar. .......................... 39 Figura 2.33 – Gráfico do fluxo respiratório referente a três amostras. ................................... 41 Figura 2.34 – Gráfico do volume calculado referente a três amostras................................... 41 Figura 2.35 – Gráfico fluxo – volume referente a três amostras. ............................................ 42 iv 5 Lista de Tabelas Tabela 1 – Cronograma de desenvolvimento do projeto .......................................................... 16 Tabela 2- Valores do estudo de viabilidade................................................................................ 16 Tabela 3 – Configuração do A/D................................................................................................... 20 Tabela 4 – Pinagem do Conector que ligará Placa USB ao computador .............................. 21 Tabela 5 – Resultado do exame de um aluno ............................................................................ 40 v 6 Resumo O nome Espirometria vem do latim, significando spirare (respirar) e metrum (medida). É um exame habitualmente utilizado na investigação e acompanhamento de diversas doenças pulmonares. Este exame é indicado para pacientes a serem submetidos a cirurgias, fumantes crônicos, asmáticos, acompanhamento da função respiratória e das mudanças ocorridas com a introdução de novos medicamentos ou alteração em suas doses. O objetivo deste trabalho foi desenvolver um espirômetro, equipamento utilizado para realizar a espirometria, ligado ao computador, capaz de armazenar dados dos exames do paciente e gerar gráficos comparativos das amostras de fluxo de ar do mesmo, comparando os resultados dos exames com os valores de uma população sadia. Através dos parâmetros que serão obtidos pelo espirômetro será possível identificar o funcionamento da função respiratória de um paciente, o que contribui para diagnósticos médicos precisos. A construção do espirômetro envolveu uma parte de software e outra de hardware, sendo que para o desenvolvimento do software foi utilizada a linguagem C++ e banco de dados; para o hardware foi utilizado um transdutor de fluxo para recolher e fazer as aquisições das amostras provenientes de um transdutor de fluxo tipo turbina. A comunicação com o computador se dará pela porta USB do computador. Os resultados foram satisfatórios, com valores próximos a de espirômetros comerciais. Como método de validação do projeto foram realizados exames utilizando-se o espirômetro desenvolvido e feita a comparação dos valores obtidos com uma tabela da população padrão obtida junto a Sociedade Brasileira de Pneumologia e Tisiologia. Completou-se o método de validação com a comparação feita entre os gráficos gerados pelo software com os gráficos disponíveis em literatura. Essas providências comprovaram a eficiência dos valores obtidos pelo espirômetro projetado. 7 Abstract Spirometry, is a name originated from Latin´s words, spirare (to breath) and mitrun (measure). This is a test normally used in a lot of investigation accompainemed of lung sickness. This test is indicated to surgery´s patients, chronic smokers, arthmatics, keep pace with breath´s function and many changes that could happen with new introduction medicaments, or even alteration in medicine´s doses. The project´s objective is to develop a spirometer (device to make the spirometry) linked to a computer, storing data from pacient´s tests comparing these ones and doing a graph comparation with a normal health population. Through this results will be possible to identify a patient´s breath function, what can contribute for a perfect doctor´s diagnosis. The spirometer´s construction will be splited in two parts, a software one and a hardware one. For the software´s portion was used a C ++ language and data base. For the hardware´s portion a “flux transductor” was used for to fold the samples. The computer´s USB port will be used to make the communication from the spirometer to the computer. Good results with a near comercial spirometer´s market value are waited. For a real value a comparation was maked between a comercial spirometer and a population standard table (Brazilian Tisiology Pneumology society). The check methodology was completed with a comparison between the graphs hold by software and official ones. This evidences proved the project’s efficiency. . 8 1 - Especificação 1.1 - Introdução O crescente número de indústrias, fluxo de automóveis, fumantes dentre outras formas de poluição ambiental têm acarretado o aumento de doenças respiratórias na população. Pensando em desenvolver um sistema voltado para a área de saúde, que pudesse auxiliar no diagnóstico dessas doenças, surgiu a idéia de elaborar um projeto que culminasse na construção de um espirômetro, com baixo custo e que pudesse registrar informações de exames, armazenando-as em um banco de dados. Ao invés de se utilizar o registro em pequenas memórias, do próprio espirômetro, como ocorre na maioria dos que existe no mercado. Além desses fatores, a motivação para desenvolver tal projeto, envolvendo conceitos de engenharia biomédica, nasceu anteriormente. Ocorreu quando no quarto ano do curso foi desenvolvido, com outros colegas de classe, trabalho de equipe, que consistiu em construir um aferidor de aparelhos de pressão corporal computadorizado. A esses motivos, aliou-se, ainda, a possibilidade de se desenvolver tecnologia aplicada ao auxílio de soluções à saúde do ser humano. Era um desafio e tanto. Mas que, valeu a pena ir à busca do objetivo proposto. 1.2 – Espirômetro na espirometria Espirometria é um exame habitualmente utilizado na investigação e acompanhamento de diversas doenças pulmonares. Este exame consiste na realização de medidas de fluxos e volumes pulmonares que são obtidos quando o paciente faz movimentos de inspiração e expiração forçadas no espirômetro [4]. A figura 1.1, retirada do site do Hospital São Vicente de Paula [4] ilustra como é realizado o teste de função pulmonar. Figura 1.1 - Teste de função pulmonar. Fonte – Site Hospital São Vicente de Paula 9 A espirometria é indicada para pacientes com enfisema pulmonar, bronquite crônica, asma brônquica e outras doenças pulmonares crônicas (doenças intersticiais), que devem realizar o exame não só para confirmação de seu diagnóstico, como também para acompanhamento da sua função respiratória e das mudanças ocorridas com a introdução de novos medicamentos ou alteração em suas doses. Muitas vezes clínicos e especialistas solicitam o exame para investigar a causa da falta de ar em seus pacientes. Em pacientes a serem submetidos a cirurgias, em especial nos que possuem doença pulmonar ou mesmo pacientes sem enfermidades respiratórias, mas que se submeterão a cirurgias do tórax, as avaliações da função pulmonar pré-operatória pode ajudar a prever o risco de complicações pulmonares após a cirurgia. Fumantes crônicos (tabagistas) que não apresentam sintomas de problemas respiratórios não precisam realizar regularmente esse exame. A detecção de doença pulmonar em fumantes crônicos pode ser fator determinante para sua conscientização e conseqüente interrupção do hábito de fumar. [4] Os resultados obtidos através da espirometria devem ser avaliados por um pneumologista, com experiência em fisiologia e fisiopatologia pulmonar e podem revelar a causa de uma doença pulmonar e sua gravidade.[1] No entanto, nem todos pacientes conseguem fazer adequadamente uma espirometria, e estima-se que até 15% dos exames realizados não devem ser aceitos, pela dificuldade da pessoa de compreender os comandos do examinador ou de conseguir fazer os movimentos respiratórios da forma como é necessária para um exame correto. Isso ocorre por vários motivos, dentre eles, a presença de doença respiratória grave, doença neurológica ou muscular, ou até mesmo por simples falta de coordenação entre os comandos dados pelo técnico que conduz o exame e a atuação do paciente. Portanto, é necessário que o examinando estabeleça uma boa relação com o examinador e que diga se tem dificuldades pois, de outra forma, o exame deverá ser repetido caso "dê errado", o que pode ser desgastante. [4] O espirômetro é um equipamento à base de sensor de fluxo, que possibilita conhecer valores da capacidade vital forçada (CVF), volume expiratório forçado no primeiro segundo (VEF1) e pico de fluxo expiratório (PFE).[7] 1.3 - Aspectos Funcionais O sistema, conectado ao computador pela porta USB, propicia ao paciente que realize as amostras respiratórias no equipamento. O computador realiza as transformações e a apresentação dos resultados, de modo suficiente para o acompanhamento e avaliação médica. Um transdutor de fluxo de ar, do tipo turbina, tem a função de transformar fluxo de ar em pulsos digitais. O software no computador faz o armazenamento em um banco de dados, dos sinais adquiridos, juntamente com todas as informações referentes ao paciente como: data de nascimento, sexo, doenças graves, peso, altura, endereço, etc. É também função do software comparar os dados obtidos das amostras do paciente, com índices de uma população saudável, como sugerido por um pneumologia, para visualização dos resultados. 10 1.4 - Especificação do Hardware 1.4.1 - Diagrama em blocos com descrição A figura 1.2 apresenta o diagrama em blocos do sistema que será explicado abaixo. Transdutor Freqüência Tensão A/D Microprocessador USB DB Figura 1.2 – Diagrama em blocos do sistema. Bloco Transdutor Transdutor: É um componente que transforma grandezas físicas (no caso fluxo de ar) em grandezas elétricas. Os transdutores de fluxo podem ser desenvolvidos de formas distintas: através de diferença de pressão, ultrasom, convecção térmica e de transdutores de rotação ou do tipo turbina [6], que foi utilizado neste projeto. A figura 1.3 mostra os aspectos gerais do transdutor de fluxo utilizado. O transdutor é constituído por uma hélice. À medida que o fluxo de ar aumenta, a velocidade de rotação desta aumenta também. Acoplado ao lado da mesma há um fotodiodo transmissor e um foto-diodo receptor, de modo que girando, a hélice obstruirá e liberará a transmissão do infravermelho, permitindo a obtenção de uma freqüência de saída compatível com o fluxo existente. (Figura 1.3). 11 Figura 1.3 – Esquemático da hélice Bloco Freqüência / Tensão O circuito freqüência/tensão realiza a transformação da freqüência gerada pelo transdutor em tensão. A referida transformação é possível em razão da existência de um CI LM2907 que integra o circuito. Os limites dos parâmetros de entrada e saída são configurados com o uso de capacitores e resistores. Para calcular a freqüência máxima de entrada, foi necessário realizar uma avaliação do transdutor. Esta avaliação permitiu mensurar a máxima freqüência do referido componente, para o fluxo máximo que um individuo pode aplicar, ao realizar o exercício de expiração forçada. Bloco A/D Os sinais obtidos por transdutores são normalmente convertidos em grandezas elétricas. Isto quer dizer que são contínuos no tempo, podendo assumir valores dentro de uma escala definida. O bloco microprocessador trabalha de forma digital, isto é, seus dados são armazenados de uma forma binária com apenas dois níveis bem distintos de estados.[5] O bloco A/D é utilizado para transformação do sinal analógico em digital. Este bloco possui um conversor ADC0808 fabricado pela National Semiconductors, altamente configurável, que possui 8 canais de entrada, porém, como no projeto existe apenas 1 transdutor, somente o canal 000 foi utilizado. O A/D possui dois parâmetros de configuração: –R e +R, consistindo na referência em que o ADC realizara a transformação. O parâmetro –R utiliza-se como terra, enquanto que no parâmetro +R é aplicado 5 volts, correspondente à medida máxima da tensão do sinal à ser transformado. O A/D possui também um sinal de OUTPUT ENABLE que se encontra sempre habilitado e um barramento de saída de dados com 8 bits. Para testar a eficiência deste bloco foi acoplada: • Uma fonte ajustável à sua entrada. • LEDs nas saídas, para visualizar se a transformação se realiza. 12 Bloco Microprocessador Para o desenvolvimento deste bloco utilizou-se um kit, com a função de integrar o microprocessador com a memória EPROM. O bloco microprocessador é utilizado para receber sinais vindos do AD, que é um valor digital de tensão e enviá-los serialmente para o bloco USB. Um software desenvolvido em C instalado na EPROM realiza o gerenciamento dos dados no kit referido. Na fase de desenvolvimento do bloco, um simulador de EPROM foi utilizado, visando obter mais agilidade caso houvesse modificação no programa. Entretanto, na seqüência, obtendo-se a certeza de funcionamento deste, o mesmo foi gravado na EPROM. O funcionamento do programa, basicamente, consiste em receber as informações enviadas do bloco AD na porta P1 do microprocessador 8051, movimentando esses bits para o acumulador e enviando para Tx, realizando assim a transmissão serial ao bloco USB. Bloco USB O bloco USB recebe o sinal do bloco microprocessador e o envia ao PC para que o software realize as transformações e armazenamento dos dados. O bloco USB é um kit baseado no componente TUSB3410 da Texas Instruments, que oferece uma ponte entre a porta USB do PC e dispositivos seriais, realizando toda a conversão automaticamente. O TUSB é conectado a uma porta USB, sendo automaticamente reconhecido como um dispositivo externo e desta forma o seu driver é solicitado. Para a construção deste bloco foram encomendados samples dos componentes TUSB3410 da Texas Instrument, face a dificuldade de se adquirir esses CIs no mercado local. Atualmente, a maioria dos equipamentos periféricos para computadores são desenvolvidos utilizando-se tecnologia USB. Não seria conveniente no presente projeto, utilizar porta serial como forma de comunicação com computadores, vez que os notebooks possuem apenas portas USB. 1.4.4 - Ambiente de desenvolvimento O ambiente utilizado para a programação do microprocessador 8051 foi o Reads51 que se caracteriza por permitir a programação na linguagem C, mais rápida do que o Assembler utilizado por outros ambientes. Para a criação dos esquemáticos foi utilizado o Orcad, que se caracteriza por possuir uma biblioteca com vários componentes destinados à elaboração de diagramas. 13 1.5 - Especificação do Software O software desenvolvido tem compatibilidade com os sistemas operacionais Windows 2000 e XP, pois o drive de reconhecimento do bloco USB já foi desenvolvido pela Texas Instruments, para este sistema operacional. A linguagem de programação utilizada foi a linguagem C++, utilizando-se o Borland C++ Builder 6 como ambiente de programação e criação da interface gráfica para entrada e saída de informações. Foi utilizado o banco de dados Paradox para suportar com eficiência o volume de dados a serem armazenados. Para realizar o recebimento dos dados provindos da USB, utiliza-se uma classe de comunicação serial já. O software foi dividido em funcionalidades: a) Recebimento dos dados. b) Interface de comunicação com o usuário. c) Armazenamento e consulta de dados. d)Transformação de dados e geração de gráficos. A descrição de cada funcionalidade será apresentado no projeto. 1.6.1 - Interfaces A figura 1.4 abaixo exemplifica o protótipo de relatório que poderia ser gerado após o exame de um paciente e a figura 1.5 apresenta o protótipo de tela para realização do cadastro do paciente que seria submetido ao exame de espirometria. Figura 1.4 – Protótipo da tela dos gráficos. 14 Figura 1.5 – Protótipo da tela de cadastro de paciente. A figura 1.6 apresenta o protótipo de tela para realização do cadastro do médico responsável pela espirometria. Figura 1.6 – Protótipo de tela de cadastro de médico. 15 1.6.2 – Fluxograma O fluxograma (figura 1.7) representa o recebimento de amostras de um paciente quando faz o exercício de expiração. INÍCIO S FLUXO != 0 Atualizar tela N Persistir no banco N PARAR = V S FIM Figura 1.7 – Fluxograma do recebimento das amostras 1.6.3 - Funções ao software: A partir da orientação de um pneumologista a respeito dos dados essenciais que um exame espirométrico deve conter, baseando-se também em parâmetros utilizados na espirometria, obtidos através da Sociedade Brasileira de Pneumologia, foram definidas as funcionalidades abaixo: • • • • • • Visualização em tempo real da medida do fluxo de ar provindas do paciente. Visualização dos gráficos do exame e da população sadia. Cadasro de pacientes e médicos. Visualização de consultas antigas de pacientes. Emissão de relatório com histórico de exames. Medir e visualizar os seguintes fatores ligados à respiração de uma pessoa:[3] - Fluxo expiratório forçado a 25-75% (FEF 25-75%); - Capacidade vital forçada (CVF) - máxima quantidade de ar expirado com esforço máximo - após máxima inspiração; - Volume expirado forçado no primeiro segundo (VEF1); - Razão entre VEF1 e CVF ( VEF1 /CVF ); 16 1.7 - Cronograma de desenvolvimento O cronograma de desenvolvimento foi previsto conforme a tabela 1. Tabela 1 – Cronograma de desenvolvimento do projeto Fevereiro Março Março Abril maio maio – julho julho – agosto Agosto Setembro setembro – outubro outubro dezembro Dezembro Dezembro Elaboração da proposta do projeto final Especificação Estudo dos componentes a serem utilizados e realização do pedido Elaboração do projeto Entrega do projeto e inicio da implementação Implementação do hardware Implementação do software Implementação do banco de dados Implementação dos gráficos e busca de histórico no banco de dados Simulações e testes para calibragem do projeto Termino da documentação e projeto Entrega do projeto inteiro 1.8 - Estudo de Viabilidade O estudo de viabilidade levou em conta o custo de componentes, horas de trabalho e o custo de Placas Padrões. A tabela 2 abaixo mostra os itens utilizados. Tabela 2- Valores do estudo de viabilidade. Recurso A/D 0808 Micropocessador 8051 Eprom Amp. Operacional Lm2907 Placa padrão USB Placa padrão A/D Placa padrão Kit 8031 Horas de trabalho Total Quantidade 1 1 1 1 1 1 1 1 700 Custo Unitário R$ 27,00 R$ 8,00 R$ 8,00 R$ 1,70 R$ 4,30 R$ 5,00 R$ 5,00 R$ 15,00 R$ 8,00 Custo R$ 27,00 R$ 8,00 R$ 8,00 R$ 1,70 R$ 4,30 R$ 5,00 R$ 5,00 R$ 15,00 R$ 5600,00 R$ 5682,00 17 Neste estudo de viabilidade não se levou em conta o custo da infra-estrutura de laboratórios, licenças de ferramentas de desenvolvimento de software e ferramentas de projeto de hardware, visto que foi utilizada a estrutura do Unicenp. 1.9 - Validação do Projeto Para a validação do projeto, foram colhidas diversas amostras entre colegas de classe para compará-las com a tabela padrão de uma população sadia. Observou-se que o espirômetro desenvolvido obteve, das amostras mencionadas, resultados semelhantes à referida tabela padrão. Outro método de validação utilizado foi o de comparar os gráficos de fluxo X tempo, volume X tempo e fluxo X volume, resultantes de diversas amostras, com os gráficos padrões da literatura biomédica verificando-se a similaridade entre eles. Fez-se, ainda, “checagem” de valores numéricos de amostras e os gráficos correspondentes, observando-se compatibilidade entre os mesmos. Isto é, os gráficos representavam, fielmente, os valores resultantes dos testes. 18 2 – Projeto 2.1 – Hardware O projeto do hardware foi dividido em 4 blocos, cada um responsável por uma funcionalidade. Bloco Transdutor - Freqüência / Tensão Responsável pela coleta das amostras e transformação de fluxo de ar em tensão. Bloco A/D – Conversão Analógico-Digital Responsável pela conversão de analógico para digital, do sinal vindo do bloco anterior. Bloco Microprocessador Responsável pela transferência serialmente dos dados vindo do bloco A/D e controle do envio dos dados ao computador. Bloco USB Responsável pela comunicação entre o hardware e o software através da porta USB. 2.1.1 – Transdutor – Freqüência / Tensão Como mencionado anteriormente, a principal função de um transdutor é realizar a transformação de grandezas físicas em grandezas elétricas. No presente projeto, a grandeza física em questão é o fluxo de ar, que o usuário emite no exercício de expiração, no recolhimento de amostra dos exames espirométricos. Assim, no projeto, o transdutor de fluxo assume um papel fundamental, pois a partir dele é que se realiza a captação dos sinais da transformação referida. O transdutor de fluxo utilizado funciona por movimentos de rotação, impulsionado pelo fluxo de ar expirado, que faz girar uma hélice, conforme mencionado na especificação do hardware. O aumento ou diminuição do fluxo de ar refletirá também, em aumento ou diminuição da rotação da hélice. O componente em apreço é munido de um foto-transmissor e um foto-receptor acoplado perpendicularmente à hélice. Esta ao girar, faz com que suas palhetas, ora impeça ora permita a captação do infravermelho, proporcionando a obtenção de uma freqüência de saída, compatível com o fluxo existente, tendo como sinal de saída uma onda quadrada, cuja freqüência varia de acordo com o fluxo de ar aplicado. Devido a saída do transdutor ser apresentada em forma de variação de freqüência, foi desenvolvido um bloco responsável pela transformação freqüência / tensão. A tensão resultante da transformação neste bloco é enviada para o módulo A/D, que realiza nova conversão, conforme descrito adiante (Item 2.1.2). A figura 2.8 representa um exemplo de um sinal de saída do transdutor, onde pode ser observada a variação da freqüência, ocasionada pela variação de fluxo de ar. O esquemático do transdutor e do bloco freqüência / tensão é apresentado no anexo 1. 19 Figura 2.8 - Exemplo de sinal de saída do transdutor de fluxo. A figura 2.9 apresenta a imagem do transdutor, onde podem ser observados os fotodiodos e a hélice. Figura 2.9 – Transdutor de fluxo. Para converter a freqüência em tensão foi utilizado o CI LM2907 da National que contém amplificadores operacionais e comparadores internamente, responsáveis pela conversão. Optou-se por este chip tendo em vista suprir as necessidades do projeto além de ser facilmente encontrado no mercado local, diferentemente de outros que desempenham a mesma função como o caso do VFC32KU da Texas Instrument que chegou a ser adquirido, porém devido a sua complexidade e falta de referência não foi utilizado no projeto. Na montagem deste bloco foram utilizados dois resistores multivoltas, responsáveis pela calibragem do. CI LM2907, ajustando a proporção de transformação em V/Hz. A saída do bloco pode ser visualizada no esquemático do anexo 1 (no conector CON 01) onde está presente a tensão referente ao fluxo aplicado. A fórmula utilizada para calcular a proporção de volts / freqüência foi: Vout= Vcc . fin . C1 . R1,(a) onde os valores assumidos foram: • Vout = 5 V • Vcc = 9 V • f = 3885 Hz • C1 = 2,2nF • R1 = 65K ohms R1 é formado por um resistor e um trimpot multivoltas e mais um par de resistores, para realizar a calibração exata do circuito. Foi utilizado como tensão de alimentação Vcc =9V para o componente LM2907, pois foi observado que não se comportava de forma linear utilizando-se apenas 5V. 20 A freqüência obtida em vários testes de expiração forçada chegou próxima a 2K Hz. As variáveis da fórmula (a) permitiram obter a freqüência de 3885 Hz, compatível com a necessidade do espirómetro, proporcionado boa resolução e margem de segurança em comparação com o valor dos testes supra mencionado. 2.1.2 – A/D – Conversão Analógico – Digital O bloco de conversão analógico digital tem como objetivo transformar os dados para que sejam utilizados pelo computador de forma digital. O conversor utilizado foi o ADC0808 que pode trabalhar com até oito entradas de dispositivos, simultaneamente, o que permite realizar facilmente futuras expansões, porém no projeto foi utilizada apenas uma entrada. O endereçamento de qual entrada será utilizada é realizado através do conector CON7 pinos 3,4,5 que são A0, A1, A2, respectivamente. O endereço utilizado é o 0, que habilitará a entrada In0, localizada no conector CON8, pino 8, para entrada dos dados a serem transformados. Existem dois parâmetros utilizados para definir o intervalo de conversão: - Ref e + Ref. Para a transformação dos dados este intervalo ficou definido de 0 à 5V, o que permite uma boa resolução de transformação. O circuito esquemático é apresentado no anexo 2. Os conectores CON2 J4, CON2 J5, CON2 J6 serão utilizados para a alimentação do bloco que será de 5V. Outros parâmetros importantes para o funcionamento do bloco são apresentados abaixo: A tabela 3 mostra a configuração do endereço da entrada utilizada e o pino de habilitação do chip. Tabela 3 – Configuração do A/D Conector CON7 CON7 CON7 CON7 CON7 CON7 CON7 in +Ref - Ref A0 A1 A2 OE Ale Pino Valor 1 Vcc 5V 2 Gnd 3 Gnd 4 Gnd 5 Gnd 6 Gnd 7 Gnd 2.1.3 – Microprocessador O bloco microprocessador tem como principal funcionalidade enviar serialmente os dados provenientes do AD para o bloco USB, controlando a taxa de transmissão dos dados para o computador. O microprocessador utilizado foi o 8051. Para indicar que os dados estão prontos para serem lidos do A/D através da porta P1 do microprocessador, está sendo utilizada a interrupção INT1. O A/D envia um pulso sinalizando o fim da conversão e após a leitura dos dados estes são enviados pelo canal serial existente no microprocessador até o bloco USB. A comunicação entre o bloco microprocessador e o 21 USB é feita através do pino 11 do microprocessador que é ligado ao conector CON 04 do bloco USB. Para fazer o controle da interrupção e da transmissão serial é utilizado um firmware que está presente na EPROM. O esquemático da placa padrão utilizada é apresentado no anexo 3. adaptado de [2] 2.1.4 – USB - Universal Serial Bus / Barramento Serial Universal A finalidade do bloco USB é receber os dados enviados serialmente pelo bloco microprocessador e estabelecer a comunicação com o computador. A comunicação entre os blocos microprocessador e USB é realizada através do conector CON 04 pino 8 que pode ser observado no anexo 4, onde é apresentado o digrama esquemático do circuito do bloco USB. Para ligação entre o bloco USB e o computador são utilizados 4 fios. Sendo um par de alimentação (5V e GND) e outro par de sinais de dados. Esta comunicação é baseada no sistema de codificação NRZI, o qual envia os dados acompanhados de um sinal de sincronização. Na tabela 4 [8] abaixo, são apresentados os detalhes dos pinos do conector CON 02 que ligará a placa padrão USB ao computador. Tabela 4 – Pinagem do Conector que ligará Placa USB ao computador Conector COM 02 CON 02 CON 02 CON 02 Numero Pino 1 2 3 4 Cor do Cabo Vermelho Branco Verde Preto Função Vbus (5V) DD+ GND O principal componente deste bloco é o TUSB3410 da Texas Instrument e, para que ele seja reconhecido pelo computador é necessária a instalação do seu drive, disponível para download na página da Texas Instrument (www.ti.com), sem nenhum custo para os Windows 2000 e XP. 2.2 - Software 2.2.1 – Descrição geral O propósito do software é permitir a comunicação do hardware desenvolvido, com o computador, de forma simples e eficaz. O software realiza a leitura das amostras utilizando a porta USB, armazena as informações em banco de dados e gera resultados com as amostras recolhidas. Pode-se também realizar o cadastro de pacientes e médicos e consultar exames anteriormente realizados. Algumas funcionalidades importantes do software merecem destaque: • Visualização em tempo real da medida do fluxo de ar provindas do paciente. • Visualização dos gráficos do exame. • Emissão de relatório com histórico de exames. 22 Medir e visualizar os parâmetros relacionados à espirometria para cada amostra. Visualizar os valores padrões da população para o perfil do paciente. Visualizar o valor de cada ponto plotado no gráfico utilizando as réguas horizontal e vertical. O software foi desenvolvido utilizando-se a linguagem C++, baseado em orientação a objetos, o que possibilita a rápida manutenção e desenvolvimento de novas funcionalidades. O banco de dados em funcionamento é o Paradox, de fácil instalação e responde de forma rápida e eficiente às necessidades da aplicação. Foi criado um aplicativo para realizar a instalação do software de maneira rápida e prática, possibilitando a instalação deste em computadores com configuração mínima, prevista no manual técnico. No referido software há um help desenvolvido para sanar eventuais dúvidas. • • • 2.2.2 – Diagrama de Caso de Uso O diagrama de caso de uso descreve relacionamentos e dependências entre um grupo de caso de uso e os atores participantes no processo. É importante observar que o diagrama de caso de uso não é adequado para representar o desenho, e não pode descrever os mecanismos internos de um sistema. É feito apenas para facilitar a comunicação com os futuros usuários do sistema e é especialmente útil para determinar os recursos necessários que o sistema deve ter. Na figura 2.10 abaixo é apresentado o diagrama de caso de uso do sistema. Figura 2.10 – Diagrama de caso de uso do sistema. 23 2.2.3 –Casos de Uso Cada caso de uso está focado em uma característica do sistema. O grau de conformidade de um projeto de software em particular pode influenciar o nível de detalhe requerido em cada caso de uso. A seguir são apresentados os casos de uso do sistema. Caso de uso: MANTER PACIENTE Ator: Paciente Propósito: Cadastrar os pacientes que irão utilizar o sistema. Descrição: O paciente fornece os dados necessários para realização do cadastro. Tipo: primário e essencial Caso de uso: MANTER MÉDICO Ator: Médico Propósito: Cadastrar os médicos que irão utilizar o sistema. Descrição: O médico fornece os dados necessários para realização do cadastro. Tipo: primário e essencial Caso de uso: REALIZAR EXAME Ator: Médico Propósito: Gerar um exame vinculando o paciente ao médico. Descrição: O médico fornece o nome do paciente, já cadastrado, vinculando-o ao seu exame. Tipo: essencial Caso de uso: COLHER AMOSTRAS Ator: Paciente Propósito: Colher amostras realizadas pelo paciente. Descrição: O paciente expira no hardware e o sistema faz a captura das amostras. Tipo: essencial Caso de uso: GERAR RELATÓRIO DE EXAME Ator: Médico Propósito: Gerar um relatório dos exames selecionado no caso de uso CRIAR EXAME. Descrição: O médico clica no botão gerar relatório após as amostras realizadas. Tipo: Essencial Caso de uso: OBTER HISTÓRICO DE EXAMES Atore: Médico Propósito: Gerar um histórico com valores listados referente a exames anteriores. Descrição: O médico fornece o nome do paciente já cadastrado e o relatório do exame selecionado é gerado. Tipo: Opcional Caso de uso: SOLICITAR TABELA PADRÃO Ator: Médico Propósito: Gerar tabela padrão. Descrição: O médico seleciona qual tabela padrão deseja e a tabela é apresentada. Tipo: opcional 24 2.2.3 - Diagramas de Classes Diagramas de Classes mostram as diferentes classes que fazem um sistema e como elas se relacionam. Os Diagramas de Classe são chamados diagramas “estáticos” porque mostram as classes, com seus métodos e atributos, bem como os relacionamentos estáticos entre elas: quais classes “se conhecem” ou quais classes “são parte” de outras classes, mas não mostram a troca de mensagens entre elas. Para representar as classes cBrokerPaciente, cBrokerMédico, cBrokerAmostra, cBrokerExame, foi definida uma classe cBroker padrão, com os métodos que existem em cada classe cBroker. Para a representação das classes de FORM e de controle foi definida uma classe FRM. A figura 2.11 apresenta o diagrama de classe do sistema. 25 Figura 2.11 - Diagrama de classes. Um Diagrama de Seqüência oferece uma visão detalhada de um caso de uso. Ele mostra uma interação organizada em forma de seqüência, dentro de um determinado período de tempo, contribuindo para que se processe a documentação do fluxo de lógica dentro da aplicação. As figuras de 2.12 a 2.18 representam os diagramas de seqüência. 26 2.2.4 - Diagramas de Seqüências Figura 2.12 - Diagrama de Seqüência Manter Paciente. Figura 2.13 - Diagrama de Seqüência Manter Médico. 27 Figura 2.14 - Diagrama de Seqüência Criar Exame Figura 2.15 - Diagrama de Seqüência Colher Amostra. 28 Figura 2.16 - Diagrama de Seqüência Gerar Relatório de Exame. Figura 2.17 - Diagrama de Seqüência Gerar Histórico de Exame. 29 . Figura 2.18 - Diagrama de Seqüência Visualizar Tabela Padrão 30 2.2.5 - Modelo Relacional A base de dados possui quatro tabelas e o modelo relacional é apresentado a seguir conforme mostra a figura 2.19: Figura 2.19 - Diagrama do modelo entidade relacionamento. 31 2.2.6 – Dicionário de dados O dicionário de dados descreve a terminologia utilizada para o desenvolvimento do modelo de dados do sistema. Apresenta uma descrição textual da estrutura lógica e física do banco de dados. O dicionário de dados está presente no anexo 5. Encontram-se nos anexos as típicas seqüências de eventos e os roteiros. Anexos 6 e 7 respectivamente. 2.2.7 - Fluxograma do Firmware Inicialmente é feita a configuração das interrupções setando valores de portas e velocidade de transmissão. Em seguida, é gerado um loop infinito que realiza a leitura do Port0 fazendo a impressão na porta serial previamente setada, apenas quando a interrupção INT1 está ativa. O fluxograma do frimware é apresentado na figura 2.20. Início Configurar Interrupções Enquanto verdadeiro N INT1==1 S Imprimir Serialmente P0 Figura 2.20 – Fluxograma do Firmware 32 2.2.8 – Interfaces Menu Principal A figura 2.21 apresenta a tela inicial do software. Este é o menu que permite acesso a todas as funcionalidades do programa, configurar a porta de comunicação e consultar o manual do usuário através do menu ajuda. Figura 2.21 - Menu principal do programa. Cadastro Médico Através do cadastro de médico é possível incluir, excluir, alterar e consultar médicos. Para acessar a tela de cadastro de médico deve-se clicar no botão Cadastro Médico no menu principal. A figura 2.22 apresenta a tela de cadastro de médicos. 33 Figura 2.22 - Cadastro de Médico. Cadastro Paciente Figura 2.23 – Cadastro de Paciente 34 Através do cadastro de paciente é possível incluir, excluir, alterar e consultar pacientes. Para acessar a tela de cadastro de paciente deve-se clicar no botão Cadastro paciente no menu principal. A figura 2.23 apresenta a tela de cadastro de pacientes. Exame Figura 2.24 - Criando o exame. Para realizar um exame deve-se clicar no botão exame localizado no menu principal. Na tela de cadastro de exame como mostra a figura 2.24 deve-se vincular o médico ao paciente e cadastrar também a altura do paciente. Recolhendo Amostra Figura 2.25 - Recolhendo amostras. 35 Após clicar no botão “colher amostra”, na tela de exame irá encadear a tela “recolhendo amostra” como mostra a figura 2.25. É através desta que é realizado o exame. Relatório Na tela de relatório, como mostra a figura 2.26, é possível visualizar os gráficos de fluxo X tempo, volume X tempo e fluxo X volume referente às três amostras, simultaneamente ou separadamente, os parâmetros de espirometria calculados pelo programa, os valores padrões dos parâmetros e os dados do exame. Figura 2.26 - Relatório do exame. Consulta a histórico de exames Figura 2.27 – Tela de filtragem de histórico de exames. 36 Figura 2.28 – Lista de exames retornados da consulta de histórico de exames. Pode ser feita a consulta de exames anteriormente realizados clicando no botão “histórico de exames”, localizado no menu principal. A figura 2.27 apresenta a tela de filtro utilizada para limitar o retorno da consulta através do nome do médico e/ou do paciente. A figura 2.28 apresenta a tela com a lista de exames retornados da consulta. Para visualizar o resultado de um dos exames, deve-se apenas clicar sob o mesmo. Consulta a tabela padrão A figura 2.29 apresenta a tela de consulta à tabela padrão que é acessada através do menu principal. Figura 2.29 – Tela de seleção de tipo de tabela. A figura 2.30 apresenta uma das tabelas padrões existentes e que podem ser consultadas. 37 Figura 2.30 – Tela dos valores da tabela selecionada. 38 3 – Implementação Nesta fase foram descritos os resultados obtidos e as formas de implementação utilizadas no projeto, bem como o método aplicado na calibragem do transdutor, a curva de resposta da calibragem e por fim, métodos matemáticos para cálculo do volume de ar expirado no teste espireométrico. 3.1 – Calibração do transdutor A primeira tentativa na calibração do transdutor foi realizada junto ao laboratório de engenharia mecânica, com o auxilio do professor Schneider. Foi acoplado ao transdutor um tubo de PVC, que dava sustentação a um bico de Pito. A idéia era obter a velocidade do vento gerado pelo túnel, através do cálculo da medida da pressão dinâmica, presente no bico de Pito. Porém surgiram dois problemas: A visualização da pressão dinâmica do bico de Pito era feita através de uma escala pouco detalhada, que diminuía a precisão dos valores obtidos; a saída de ar do túnel de vento era muito grande para o tamanho do transdutor; devido a isso, a acoplagem dos aparelhos não foi perfeita, chegando-se à potência máxima do túnel de vento sem se obter a calibragem do transdutor. A segunda tentativa de calibração foi realizada com sucesso, nas dependências do Hospital das Clínicas de Curitiba com o auxílio de um funcionário do setor de Engenharia Clínica. Foi utilizado um calibrador de respiradores pulmonares que gera fluxos de ar constantes e conhecidos. O transdutor foi serialmente acoplado ao calibrador. Assim, aplicava-se um fluxo de ar constante e verificava-se qual era o valor correspondente na leitura do computador, através do hiperterminal. Os valores lidos pelo computador eram compreendidos entre 0 e 255 e no software desenvolvido foi criado um vetor com 255 posições. O valor de cada posição vetorial foi preenchido com o valor obtido na calibração do transdutor. A figura 2.31 apresenta a curva de resposta do transdutor de fluxo calibrado em função dos valores aplicados no computador. Serial X Fluxo de ar (L/Min) 700 Fluxo de ar (L/Min) 600 500 400 300 200 100 0 0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 Serial Figura 2.31 -Gráfico da resposta do transdutor de fluxo de ar. 39 3.2 – Resposta do componente freqüência / tensão Ao realizar a calibragem e levantamento da curva de resposta do transdutor, aproveitou-se para analisar a linearidade do CI Lm2907 responsável para transformar freqüência em tensão, como foi descrito na fase anterior do projeto. A figura 2.32 apresenta a resposta do componente em função ao fluxo de ar. Não foi possível realizar o levantamento da curva de resposta em função da freqüência gerada pelo transdutor, devido à falta de equipamentos no Hospital. Fluxo de ar (L/Min) X Tensão (V) 6 5 Tensão (V) 4 3 2 1 0 0 59,22 121,19 179,29 239,92 301,72 358,66 419,3 476,27 538,26 600,68 Fluxo de ar (L/Min) Figura 2.32 – Curva de resposta do CI LM2907 em função do fluxo de ar. 3.3 – Métodos matemáticos para cálculo do volume Para a implementação do cálculo de volume total e instantâneo do ar expirado nos testes pelo paciente, foram utilizados métodos de cálculo numérico. O primeiro método que se tentou utilizar foi a Regra de Simpson, porém foi observado que este era complexo para implementação e com aproximação do valor real não eficiente. Então, optou-se pelo método do Trapézio, com uma implementação mais acessível e baseada em integração numérica, método este, adequado quando a função não é conhecida ou possui um tratamento analítico muito difícil. A implementação do método consistiu em realizar o somatório das diversas áreas dos trapézios formados, com cada valor de fluxo de ar amostrado no tempo, obtendo assim o somatório do volume em cada instante e o volume total. 40 4 – Resultados Nesta sessão serão apresentados os resultados obtidos através dos testes do projeto. 4.1 – Testes de exames A realização dos testes no sistema e no hardware teve como objetivo, detectar pontos falhos e garantir o bom funcionamento do projeto. Foram realizados testes em todas as funcionalidades do programa e analisadas as curvas de respostas dos componentes do hardware. Observou-se que o software não possuía pontos falhos e que os componentes do hardware respondiam de forma linear e satisfatória. Testes referentes à fidelidade dos resultados gerados pelo sistema, foram feitos utilizando-se amostra de colegas de classe, com alturas diferentes e observou-se que o sistema respondia com resultados próximos a da população sadia. Acredito que o projeto se comporta de maneira confiante para realizar novos testes, em paciente com problemas respiratórios, sobre a observação de um profissional da área de saúde com experiência em espirometria. O acompanhamento de testes por um profissional assim referido, é fundamental para futuros ajustes e melhorias que o projeto pode vir a requerer. A tabela 5 apresenta resultados gerados pelo programa, referente ao exame de um aluno que possuía 22 anos e 1,60 metros de altura. Tabela 5 – Resultado do exame de um aluno cvf fef1 fef1/cvf pef fef25 75% Amostra 1 Amostra 2 Amostra 3 Padrão 4,63 L 4,51 L 4,02 L 4,50 L 3,55 L 3,62 L 3,64 L 3,45 L 78,86 78,25 80,71 86,9 5,14 L/s 5,85 L/s 5,51 L/s 7,7 L/s 2,77 2,39 4,1 2,52 41 As figuras 2.33, 2.34 e 2.35 apresentam os resultados gráficos referente as 3 amostras realizadas no exame que o aluno realizou. Figura 2.33 – Gráfico do fluxo respiratório referente a três amostras. Figura 2.34 – Gráfico do volume calculado referente a três amostras. 42 Figura 2.35 – Gráfico fluxo – volume referente a três amostras. 43 5 - Conclusão A realização do projeto “Espirometria Computadorizada” tornou-se um saudável desafio, uma vez que se converteu em ótima oportunidade para por em prática os conhecimentos adquiridos durante os cinco anos do curso. A motivação inicial no campo da engenharia biomédica deveu-se a um projeto realizado em trabalho de equipe, no quarto ano do curso, quando foi construído um aferidor de aparelhos de pressão corporal. No desenvolvimento do presente projeto, tive oportunidade de conhecer disciplinas e profissionais ligados à medicina e fisioterapia, que foi gratificante, pois me levou a agregar conhecimentos técnicos ligados à área da biomédica. Algumas dificuldades ligadas à engenharia biomédica foram acentuadas na fase inicial do projeto, arrefecendo-se na fase média e solucionadas até o final do mesmo, graças ao contato com especialistas na área de pneumologia que ajudaram a vencê-las de forma satisfatória. Diversas dificuldades ligadas à área de software e hardware foram também vencidas, paulatinamente. Essas dificuldades, inicialmente, prendiam-se à definição de componentes de hardware a serem utilizados, sua disponibilidade no mercado e a verificação da eficiência deles na composição do aparelho espirométrico. Ao vencê-las estava resolvido o ponto de partida. Para a definição do software utilizado, o caminho foi mais fácil, pois, a linguagem C++ já estava previamente definida e compatibilizava-se com os componentes de hardware. O projeto foi desenvolvido, conforme o que previamente foi estabelecido. Há possibilidades de ampliar o seu uso em testes de avaliação física na área de esportes e similares. Para tal, é necessária algumas modificações tanto de hardware como de software. O espirômetro em questão difere da maioria dos que o mercado oferece, pois, comunica-se com um computador, o que possibilita o armazenamento dos dados em um banco de dados. O equipamento faz medições durante o teste espirométrico em tempo real , apresentando, instantaneamente, um gráfico (curva de resposta) resultante do exercício de expiração do paciente. O software pode ser ainda aprimorado, atribuindo-se-lhe novas funcionalidades, objetivando, por exemplo, realizar comparações de vários exames de um mesmo paciente. Essas funcionalidades não foram previstas no anti-projeto face ao tempo disponível para a conclusão do projeto. Os testes experimentais finais confirmaram a estabilidade e confiabilidade do projeto vez que os resultados obtidos foram semelhantes aos valores consignados na tabela da Sociedade Brasileira de Pneumologia. Vale ressaltar que a obtenção de resultados corretos de exames espirométricos depende do perfeito entrosamento médicopaciente e, principalmente, do modo como o paciente utiliza o aparelho, no que concerne a forma correta de realizar o exercício de expiração. 44 6 - Referências Bibliográficas [1] ALMEIDA, P. T. F. , Asma Brônquica, 2005. [2] CICHACZEWSKI, Éderson. Kit Didático Microcontrolador 8031. [3] GUYTON, A. C. Tratado de Fisiologia Médica. 10 ed. Rio de Janeiro. Ed.Guanabara Koogan, 2002. [4] Hospital São Vicente de Paulo http://www.hsvp.com.br/scripts/click_exames_cod.php3?codigo=100009 Dia 20/03/2005 [5] LABORATÓRIO DE ENGENHARIA DA COMPUTAÇÃO UNICENP - Placa conversor A/D ADC0808 [6] PERRETTO, Mauricio. Desenvolvimento de um Sistema Respiradores Pulmonares Interligado ao Computador, 2002 Analisador [7] Sociedade Brasileira de Pneumologia. http://www.jornaldepneumologia.com.br/portugues/artigo_detalhes.asp?id=103 Dia 02/11/2005 [8] VILLAVERDE, Rodrigo C. Conversor USB – Serial, 2004. de