Você está na página 1de 66

Universidade Estadual de Maring

Centro de Tecnologia Departamento de Informtica Curso de Engenharia de Produo

Desenvolvimento de um Prottipo de um Oxmetro de Pulso Fernando Vincius Gonalves Magro TCC-EP-32-2008

Maring - Paran Brasil

ii

Universidade Estadual de Maring Centro de Tecnologia Departamento de Informtica Curso de Engenharia de Produo

Desenvolvimento de um Prottipo de um Oxmetro de Pulso Fernando Vincius Gonalves Magro

TCC-EP-32-2008

Trabalho de Concluso de Curso apresentada como requisito de avaliao no curso de graduao em Engenharia de Produo na Universidade Estadual de Maring UEM. Orientador(a): Prof. Dr. Donizete Carlos Bruzarosco

Maring - Paran 2008

iii

Fernando Vincius Gonalves Magro

Desenvolvimento de um Prottipo de um Oxmetro de Pulso

Este exemplar corresponde redao final do Trabalho de Concluso de Curso aprovado como requisito parcial para obteno do grau de Bacharel em Engenharia de Produo da Universidade Estadual de Maring, pela comisso formada pelos professores:

________________________________________ Orientador(a): Prof(). Prof. Dr. Donizete Carlos Bruzarosco Departamento de Informtica, CTC

________________________________________ Prof(). Mrcia Marcondes Altimari Samed Departamento de Informtica, CTC

Maring, outubro de 2008

iv

RESUMO

Este trabalho apresenta uma implementao de um prottipo oxmetro de pulso, equipamento que faz a medio da saturao de oxignio no sangue arterial. Descreve tambm um sistema para desktop, capaz de processar as informaes do equipamento num microcomputador pessoal. O trabalho mostra os conceitos envolvidos, o desenvolvimento do hardware e do software, incluindo o diagrama de blocos e esquema eltrico dos circuitos eletrnicos. Tambm abordado o desenvolvimento do software segundo os mtodos propostos pela Engenharia de Software, utilizando-se os diagramas da UML. Palavras-chave: Oximetria, Equipamentos de Monitorizao, UM,. Engenharia de Software, Hardware.

SUMRIO LISTA DE ILUSTRAES ............................................................................................................................... VI LISTA DE QUADROS.....................................................................................................................................VIII LISTA DE ABREVIATURAS E SIGLAS ........................................................................................................ IX LISTA DE SMBOLOS ....................................................................................................................................... X 1 I TRODUO ............................................................................................................................................. 1 1.1 JUSTIFICATIVA ......................................................................................................................................... 2 1.2 DEFINIO E DELIMITAO DO PROBLEMA .............................................................................................. 2 1.3 OBJETIVOS ............................................................................................................................................... 3 1.3.1 Objetivo geral .................................................................................................................................. 3 1.3.2 Objetivos especficos ....................................................................................................................... 3 1.4 METODOLOGIA ......................................................................................................................................... 3 1.4.1 Reviso de Literatura ...................................................................................................................... 4 1.4.2 Projeto de hardware ........................................................................................................................ 4 1.4.3 Projeto de software .......................................................................................................................... 4 1.4.4 Construo do prottipo .................................................................................................................. 5 1.4.5 Validao......................................................................................................................................... 5 2 REVISO DA LITERATURA..................................................................................................................... 6 2.1 OXMETRO DE PULSO ............................................................................................................................... 6 2.2 CONCEITOS DE HARDWARE ....................................................................................................................... 7 2.3 CONCEITOS DE SOFTWARE ........................................................................................................................ 9 2.3.1 UML............................................................................................................................................... 10 2.3.2 Processo Unificado........................................................................................................................ 12 2.3.3 Sistema Embarcado ....................................................................................................................... 13 3 DESE VOLVIME TO.............................................................................................................................. 15 3.1 PROJETO DE HARDWARE.......................................................................................................................... 15 3.1.1 Fonte de Alimentao .................................................................................................................... 16 3.1.2 Placa Me...................................................................................................................................... 21 3.1.3 Probe (sensor) ............................................................................................................................... 23 3.1.4 Mdulo de Oximetria ..................................................................................................................... 24 3.1.5 Display grfico .............................................................................................................................. 26 3.1.6 Teclado .......................................................................................................................................... 27 3.2 PROJETO DE SOFTWARE.......................................................................................................................... 28 3.2.1 Mdulo do Oxmetro ...................................................................................................................... 28 3.2.2 Mdulo para Desktop .................................................................................................................... 30 4 5 CO CLUSO ............................................................................................................................................. 38 REFER CIAS .......................................................................................................................................... 40

A EXO A DOCUME TAO DO MDULO DE OXIMETRIA SPOX-410 ......................................... 42 A EXO B TELAS DO SOFTWARE PARA DESKTOP .............................................................................. 43 A EXO C CDIGO FO TE DO SISTEMA EMBARCADO .................................................................... 46 GLOSSRIO ....................................................................................................................................................... 54

vi

LISTA DE ILUSTRAES

FIGURA 1 - DIAGRAMAS DA UML .......................................................................................................................... 11 FIGURA 2 WORKFLOWS DO PROCESSO UNIFICADO ............................................................................................... 13 FIGURA 3 - DIAGRAMA DE BLOCOS DO PROTTIPO ................................................................................................ 15 FIGURA 4 - DIAGRAMA DE BLOCOS DA FONTE DE ALIMENTAO ......................................................................... 16 FIGURA 5 - ESQUEMA ELTRICO COMPLETO DA FONTE DE ALIMENTAO ........................................................... 17 FIGURA 6 CIRCUITO RETIFICADOR ...................................................................................................................... 17 FIGURA 7 ETAPAS DO CIRCUITO RETIFICADOR .................................................................................................... 18 FIGURA 8 - CIRCUITO CARREGADOR DE BATERIAS ................................................................................................ 19 FIGURA 9 - CIRCUITO REGULADOR DE TENSO...................................................................................................... 20 FIGURA 10 - ESQUEMA ELTRICO DA PLACA ME ................................................................................................. 21 FIGURA 11 DIVISOR DE TENSO E AMPLIFICADOR OPERACIONAL DE GANHO UNITRIO .................................... 22 FIGURA 12 - PROBE, SENSOR DE OXIMETRIA ........................................................................................................... 23 FIGURA 13 - ELEMENTOS DO SENSOR ..................................................................................................................... 24 FIGURA 14 MDULO DE OXIMETRIA MODELO SPOX-410 ................................................................................... 25 FIGURA 15 CONECTOR DB9 ................................................................................................................................ 25 FIGURA 16 CONEXO COM O COMPUTADOR ........................................................................................................ 25 FIGURA 17 FORMATO DE UMA TRANSMISSO ASSNCRONA 8N1 ......................................................................... 26 FIGURA 18 - DISPLAY TOSHIBA T6963C, 240X64 PIXELS........................................................................................ 26 FIGURA 19 TECLADO DO PROTTIPO ................................................................................................................... 27 FIGURA 20 ESQUEMA ELTRICO DO TECLADO .................................................................................................... 27 FIGURA 21 DIAGRAMA DE COMPONENTE ............................................................................................................ 28 FIGURA 22 - DIAGRAMA DE ATIVIDADE DO SOFTWARE EMBARCADO ..................................................................... 29 FIGURA 23 - DIAGRAMA DE CASOS DE USO DO SOFTWARE PARA DESKTOP ............................................................. 31 FIGURA 24 DIAGRAMA DE CLASSES .................................................................................................................... 33 FIGURA 25 DIAGRAMA DE SEQNCIA: CADASTRAR PACIE TE ............................................................................ 34 FIGURA 26 DIAGRAMA DE SEQNCIA: CRIAR EXAME ......................................................................................... 35 FIGURA 27 DIAGRAMA DE SEQNCIA: OBTER LEITURA I STA T EA ................................................................ 35 FIGURA 28 DIAGRAMA DE SEQNCIA: I ICIAR MO ITORAO CO T UA.......................................................... 36 FIGURA 29 - DIAGRAMA DE SEQNCIA: SALVAR ESTADO PACIE TE ...................................................................... 36 FIGURA 30 - DIAGRAMA DE SEQNCIA: EMITIR RELATRIO.................................................................................. 37

vii

LISTA DE TABELAS

TABELA 1 : CUSTO DOS PRINCIPAIS COMPONENTES UTILIZADOS ............................................................................ 38 TABELA 2: COMPARAO ENTRE O PROTTIPO E MODELOS NACIONAIS / IMPORTADOS ......................................... 39

viii

LISTA DE QUADROS

QUADRO 1 - CONEXES ENTRE O MICROCONTROLADOR E O DISPLAY ..................................................................... 22

ix

LISTA DE ABREVIATURAS E SIGLAS

ABNT ANSI CAD CPU INMETRO LCD LED OEM PC PCI RAM ROM UML UTI VAC VDC VPC USB USART

Associao Brasileira de Normas Tcnicas Instituto Nacional Americano de Padronizao Computer-Aided Design Desenho Auxiliado por Computador Central Processing Unit Unidade Central de Processamento Instituto Nacional de Metrologia, Normalizao e Qualidade Industrial Liquid Crystal Display Painel de Cristal Lquido Light Emitting Diode Diodo Emissor de Luz Original Equipment Manufacturer Fabricante de Equipamento Original Personal Computer Computador Pessoal Placa de Circuito Impresso Random Access Memory Memria de Acesso Randmico Read Only Memory Memria Somente Leitura Unified Modeling Language Linguagem de Modelagem Unificada Unidade de Terapia Intensiva Tenso Alternada Tenso Contnua Tenso Por Clula Universal Serial Bus Transmissor/Receptor Universal Sncrono e Assncrono

LISTA DE SMBOLOS

k p F b V

Micro - Prefixo numrico representando 10-6 Quilo - Prefixo numrico representando 103 Pico - Prefixo numrico representando 10-12 Farads Unidade de Capacitncia Ohm Unidade de Resistncia bit Unidade de Informao Volts Unidade de Tenso Eltrica

I TRODUO

Durante um atendimento mdico, os procedimentos a serem efetuados dependem de uma avaliao do estado do paciente; para essa tarefa so empregados, juntamente com o conhecimento mdico, vrios dispositivos e equipamentos, onde tal avaliao pode conduzir o paciente a uma simples medicao ou em casos mais graves at uma interveno cirrgica (WEBSTER, 2006).

A maioria dos equipamentos de monitoramento tem aplicao no pr-operatrio, na sala de operaes e no ps-operatrio. Alguns sistemas tm mais utilidades antes e logo aps um procedimento, como o caso da oximetria de pulso. A oximetria consiste numa medio contnua e indireta da oxigenao dos tecidos atravs de um mtodo no-invasivo, que se relaciona com o contedo de oxignio no sangue, de enorme importncia nas prticas cirrgicas e anestsicas moderna. O oxmetro tem grande importncia na recuperao do impacto anestsico-cirrgico, onde comum o desenvolvimento de hipoxemia (baixa concentrao de oxignio no sangue) nesse perodo ps-operatrio imediato (MARCONDES et al., 2006).

Atualmente, no mercado brasileiro de equipamentos eletromdicos, possvel encontrar diversas marcas de oxmetro de pulso, tais como Ohmeda, Emai, Dixtal, dentre outros, que oferecem uma vasta gama de recursos, como indicadores do sinal captado, alarmes sonoros e visuais, curva pletismogrfica, baterias de longa durao, enfim, possuem diversas caractersticas que os tornam mais versteis e indispensveis no ambiente mdico (FERNANDES; OJEDA; LUCATELLI, 2001). Entretanto, uma prtica que ganha destaque o uso de microcomputadores para auxiliar o diagnstico de pacientes, e verificou-se que os equipamentos eletromdicos nacionais no oferecem conectividade aos PCs de forma fcil e rpida, gerando relatrios, provendo grficos e informaes em tempo real e, sobretudo de baixo custo.

Em alguns exames, a monitorao contnua e ininterrupta dos nveis de oximetria de importncia fundamental para o diagnstico mdico, como por exemplo, em pacientes submetidos polissonografia - um exame que busca identificar problemas de apnia,

hipopneia e outras doenas relacionadas ao sono. Contudo, a polissonografia realizada num laboratrio de sono dispendiosa, envolve recursos humanos e tcnicos considerveis, que no se encontram facilmente disponveis (VENTURA; OLIVEIRA; DIAS, 2007). Portanto, identificou-se a necessidade de unir o oxmetro ao microcomputador, atravs de um software que possibilite a monitorao dos sinais atravs de uma interface mais completa. Evidentemente isso resultaria em inmeros benefcios: o mdico poderia monitorar os nveis de oxigenao do paciente da sua sala, da sua casa ou de qualquer local remoto atravs da Internet, e at emitir relatrios computadorizados economizando recursos.

Diante do cenrio apresentado, prope-se o desenvolvimento de um prottipo de oxmetro de pulso que fornecer valores em uma forma numrica atravs de sinais digitais, os quais podem ser interpretados e tratados por microcontroladores ou computadores, a um custo menor em relao aos oferecidos pelo mercado.

1.1

Justificativa

A implementao do oxmetro de pulso se justifica pela necessidade de desenvolver um hardware e software destinado rea mdica, que possua conectividade aos microcomputadores auxiliando o diagnstico de pacientes. Diante desse fato, as contribuies sero a reduo dos custos, um melhor aproveitamento do potencial das informaes e agilidade na anlise dessas informaes.

1.2

Definio e delimitao do problema

Este trabalho definir os conceitos relacionados rea mdica e de software envolvidos com o tema, apresentar o desenvolvimento do projeto de hardware e software do prottipo do oxmetro, bem como a sua implementao. Alguns termos da rea mdica utilizados:

a) Oximetria de pulso: pode ser definida como uma medida que busca, em primeira instncia, garantir nveis adequados de oxignio no sangue arterial para evitar a hipoxemia. (NUNES; TERZI, 1999).

b) Hipoxemia: entende-se como uma deficincia de concentrao de oxignio no sangue arterial. Logo, o oxmetro de pulso permite um monitoramento do estado do paciente de uma forma contnua e no-invasiva, atravs da saturao parcial de oxignio. c) Mtodo no-invasivo: caracterizado pela ausncia de invasores no corpo do paciente, ou seja, no h necessidade de inserir instrumentos furando ou fazendo incises em qualquer parte corpo.

O escopo deste trabalho delimita-se em apresentar uma forma de implementao de um oxmetro de pulso, descrevendo todos os recursos, ferramentas e mtodos necessrios para que seja construdo um prottipo funcional, pretendendo atender a uma necessidade - a conectividade com os microcomputadores pessoais. Para isso, ser apresentado todos os passos e processos necessrios, fazendo-se com que se unam todos os componentes necessrios. Grande parte das figuras e diagramas utilizados neste trabalho de prpria autoria.

1.3

Objetivos

1.3.1

Objetivo geral

O objetivo desse trabalho desenvolver um prottipo de oxmetro de pulso, oferecendo conectividade ao microcomputador e permitindo aos usurios terem uma melhor interpretao e manipulao dos dados obtidos. 1.3.2 Objetivos especficos

Este trabalho tem como objetivos especficos:

a) Definir os requisitos; b) Projetar o hardware; c) Projetar o software; d) Construir o prottipo.

1.4

Metodologia

A metodologia para o desenvolvimento desse trabalho composta das seguintes fases:

1.4.1

Reviso de Literatura

A reviso de literatura ser realizada por meio de pesquisa bibliogrfica, ou seja, utilizaram-se bases de dados de teses e artigos, livros e peridicos disponveis na Internet como fontes de pesquisa. 1.4.2 Projeto de hardware

O oxmetro far a leitura dos sinais biomtricos do paciente atravs de um mdulo de oximetria, dotado de um sensor. Ser tarefa do hardware e do software proposto por esse trabalho ler e interpretar os valores obtidos e exibi-los num display, assim como transmiti-los a um microcomputador atravs de uma interface serial. Nesta etapa, ser desenvolvido um projeto de hardware, mostrando seus principais componentes e seu inter-relacionamento.

O projeto do hardware do oxmetro ser desenvolvido de acordo com os requisitos de software, pois ser a base onde ele ser executado. Inicialmente, deve-se fazer uma seleo de componentes eletrnicos, levando em considerao a funo e o custo de cada um. Essa seleo de componentes ser realizada de acordo com necessidades especficas, tais como amplificadores operacionais para realizar ganhos de tenso, circuitos integrados diversos, display, teclado, dentre outros. Para realizar a interligao entre esses componentes, constituindo um circuito eletrnico, ser necessrio realizar consultas aos datasheets dos fabricantes, os quais nos daro informaes e especificaes sobre os componentes. Tais datasheets esto disponveis no prprio site de cada fabricante. Com essas informaes em mos, o prximo passo ser desenvolver um diagrama de blocos e um Esquema Eltrico utilizando CAD (Desenho Auxiliado por Computador) e efetuando simulaes via software para comprovar o funcionamento. 1.4.3 Projeto de software

Em relao ao software, ser dividido em dois: um mdulo que executar no prprio oxmetro, formando um sistema embarcado, e o outro que ser utilizado num microcomputador, para um melhor tratamento dos dados. O usurio poder interagir com os dois softwares, uma vez que ambos iro apresentar uma interface, seja num pequeno display disponvel no prottipo, quanto na tela do computador, onde ter um acesso mais completo aos dados e permitindo uma melhor anlise dos mesmos. Uma vez levantado todos os

requisitos, inicia-se a fase de implementao. No caso do software embarcado, que ser programado no microcontrolador, dever ser utilizada uma linguagem prpria para esse dispositivo, tal como o ANSI C, atravs do ambiente integrado mikroC 7, desenvolvida pela mikroElektronica. O software a ser executado no computador, poder ser implementado em qualquer outra linguagem de alto nvel, como Java. 1.4.4 Construo do prottipo

O software ser desenvolvido utilizando-se um microcomputador normal, no compilador mikroC. A construo do prottipo poder ser feita sob um protoboard, onde dispomos de uma matriz de pontos que facilitam a interligao entre os componentes eletrnicos, formando assim uma verso funcional do hardware. O passo seguinte ser alimentar o circuito fornecendo-o a tenso previamente calculada, e carregar o software na memria do microcontrolador, utilizando um PC. Com o circuito em funcionamento, faz-se necessrio realizar medies e ajustes documentando-se todas as alteraes. 1.4.5 Validao

A validao dos dados exibidos no display, seja ele a saturao de oxignio ou a freqncia cardaca do paciente, pode ser comprovada atravs de um simulador, devidamente calibrado e aferido pelo INMETRO. Para realizar essa tarefa, o simulador toma o lugar do paciente, enviando os sinais biomtricos ao prottipo. Ser utilizado o simulador da marca R&D Mediq, modelo HS20, que capaz de simular valores de SpO2 de 0% a 99% e batimentos cardacos de 30 a 240 BPM.

REVISO DA LITERATURA

2.1

Oxmetro de Pulso

Os oxmetros de pulso so largamente utilizados na prtica clnica, principalmente nas Unidades de Terapia Intensiva (UTI) para monitorar a saturao de oxignio, detectando e prevenindo a hipoxemia. Monitorar a saturao de oxignio durante a anestesia um procedimento padro, que sempre feito utilizando-se oxmetro de pulso. Esses oxmetros tambm so teis durante procedimentos de broncoscopia, endoscopia, cateterizao cardaca, testes fsicos e estudos do sono (WEBSTER, 2006, p.472).

Esse equipamento um monitor que realiza medidas da saturao da hemoglobina do sangue arterial (SpO2) pela transmisso de dois comprimentos de onda de um sinal luminoso, geralmente 660nm (vermelho) e 940nm (infravermelho), que atravessa ou refletida pelos tecidos humanos (ABNT, 1997). O princpio de funcionamento do oxmetro de pulso baseado na lei Beer-Lambert que relaciona a concentrao de um soluto com a intensidade de luz transmitida atravs de uma soluo (KNOBEL, 1998). Sendo assim, o oxmetro consegue diferenciar a absoro de energia luminosa devido ao sangue arterial relacionando a um valor de SpO2 (FERNANDES; OJEDA; LUCATELLI, 2001). O equipamento contm um probe (compartimento que contm o sensor) no corpo do paciente e este sensor est ligado a uma unidade computadorizada que informa os valores obtidos (FEARNLEY, 1995).

Alguns oxmetros encontrados no mercado, tais como o Dixtal modelo DX-2515 (HOLZHACKER, 2001), so apropriados para utilizao com pacientes adultos, peditricos e neonatais. Este modelo proporciona uma mensurao fidedigna contnua, apresentao dos valores e alarmes para a SpO2 e pulso cardaco, podendo funcionar atravs de uma tomada de energia eltrica ou de sua bateria interna recarregvel. A saturao de oxignio e o pulso cardaco so atualizados uma vez a cada segundo e imediatamente exibidas num display LCD. Este equipamento ainda emitir aviso sonoro quando algum nvel fisiolgico crtico for detectado (HOLZHACKER, 2001).

2.2

Conceitos de Hardware

O desenvolvimento do hardware para o oxmetro proposto nesse trabalho envolver os seguintes conceitos: a) Circuitos integrados: so circuitos cujos componentes e conexes so feitas em reas distintas de um nico chip, construdo de um material condutor, como o silcio (GIBILISCO, 2001, p.371). b) Microcontroladores: so circuitos integrados de baixo custo, rotulados como Singlechip computer. Isso significa que, mesmo encapsulado num simples chip de silcio, ele tem as mesmas caractersticas de um computador pessoal. O microcontrolador capaz de armazenar e rodar programas sua mais importante caracterstica. Ele contm uma CPU (Unidade Central de Processamento) , memria RAM (Memria de Acesso Randmico) e ROM (Memria Somente Leitura), linhas de entrada e sada, contadores, e em alguns modelos incluem at conversores de sinais analgicos para digital e vice-versa (IOVINE, 2000, p.1). c) Comunicao Serial: a transmisso de informaes ao longo de um caminho, onde os dados so enviados um aps o outro (GIBILISCO, 2001, p.620).

O projeto de hardware e seu desenvolvimento consistem das seguintes etapas (IOVINE, 2000): a) Definir os requisitos; b) Coletar informaes dos componentes em questo; c) Adquirir componentes que atendam aos requisitos; d) Criar um Diagrama de Blocos preliminar; e) Desenhar um Esquema Eltrico usando CAD (desenho auxiliado por computador); f) Efetuar simulaes utilizando softwares especficos ou montando sobre um protoboard; g) Documentar o projeto e gerar a lista de materiais; h) Iniciar o desenho da Placa de Circuito Impresso (PCI); i) Revisar e verificar o circuito em operao utilizando-se de osciloscpios, multmetros e outras ferramentas; j) Atualizar e completar a documentao incluindo as mudanas no projeto.

A ordem das tarefas acima independente, e algumas delas podem ser feitas em paralelo. O projeto do hardware normalmente feito em paralelo com o software, garantindo que ele seja totalmente compatvel com a verso em desenvolvimento (ARNOLD, 2000, p.21). Por isso, se torna extremamente til a utilizao de ferramentas de simulao computadorizadas, como o caso do software Proteus VSM, desenvolvido pela LabCenter (HILLS, 1999). Simuladores como esse buscam testar a CPU a ser utilizada, puramente via software, possibilitando analisar o comportamento do circuito eletrnico de diversos pontos. A grande vantagem desse simulador a capacidade de exercitar o software interagindo com o hardware (HILLS, 1999). Segundo Velloso (2006, p.31), nas atividades que envolvem projetos eletrnicos, o uso da expresso grfica de esquemas muito importante para a simplificao da complexidade de um circuito, que utiliza numerosos componentes e dispositivos. O desenvolvimento de um projeto eletrnico deve conter desenhos de diagramas eletrnicos, em forma Diagrama de Blocos, com a descrio funcional detalhada dos componentes e com o desenho do Esquema Eletrnico completo. O Diagrama de Blocos uma representao do circuito desenhada por linhas simples e figuras geomtricas, e nela esto contidas as informaes funcionais bsicas, interligadas por setas que indicam o curso do sinal atravs do sistema ou do circuito eltrico do dispositivo. Os Esquemas Eltricos indicam as ligaes bsicas necessrias compreenso do funcionamento de um circuito. Os componentes devem indicar suas numeraes e valores (resistncia, capacitncia, tipo de componente). Para representar os componentes, utiliza-se de smbolos grficos estabelecidos por diversas normas da ABNT (SEDRA, 2004), dentre elas: NBR 5448: Smbolos Grficos de Resistores; NBR 5449: Smbolos Grficos de Capacitores; NBR 5446: Smbolos Grficos de Relacionamento usados na Confeco de Esquemas; NBR 5280: Smbolos Literais de Identificao de Elementos de Circuito; NBR 5264: Smbolos Grficos de Dispositivos de Conexo. As ligaes entre os componentes so esquematizadas atravs de linhas que representam fios idias, ou seja, sem nenhuma resistncia. A esquematizao de circuitos integrados se d atravs de suas portas lgicas, por exemplo, com o desenho da porta e a indicao do nmero do terminal (pino) ao qual corresponde. Nos outros circuitos integrados complexos, como o

caso do microcontrolador, a notao usada um retngulo, o qual representa a funo de seus terminais e a indicao numrica do mesmo, alm do numero que ele ocupa no projeto.

2.3

Conceitos de Software

A Engenharia de Software a aplicao de uma abordagem sistemtica, disciplinada e quantificvel, para o desenvolvimento, operao e manuteno do software; isto , a aplicao da engenharia ao software. Ela cria e utiliza-se de slidos princpios da engenharia com o intuito de obter softwares econmicos que sejam confiveis e que trabalham eficientemente em mquinas reais (PRESSMAN, 2006). Seus mtodos proporcionam representaes grficas, introduzem e asseguram qualidade ao software, fornecem apoio automatizado ou semi-automatizado atravs de ferramentas e tambm nos proporcionam meios para avaliar o progresso. Segundo Pressman (2006), a engenharia de software uma tecnologia em camadas, as quais so as seguintes: foco na qualidade, processo, mtodos e ferramentas. A engenharia de software deve se apoiar num compromisso organizacional com a qualidade, a qual considerada a camada base. A camada de processo considerada o alicerce, a qual age como um adesivo que mantm unidas as camadas de tecnologia. Ela define um arcabouo que deve ser estabelecido para a efetiva utilizao da tecnologia de software (PRESSMAN, 2006). Os mtodos fornecem a tcnica de como fazer os softwares e abrangem um conjunto de tarefas que incluem comunicao, anlise de requisitos, projeto, implementao, testes e manuteno. As ferramentas fornecem o apoio automatizado ou semi-automatizado para o processo e para os mtodos. Um arcabouo de processo genrico definido por Pressman (2006), o qual aplicvel a grande maioria dos projetos de software. Ele composto pelas seguintes atividades: Comunicao: envolve alta comunicao e colaborao com o cliente (e demais interessados) e abrange o levantamento de requisitos e outras atividades relacionadas; Planejamento: define um plano para o trabalho de engenharia de software a ser desenvolvido. Descreve as tarefas tcnicas a ser conduzida, a previso de riscos, a necessidade de recursos, os resultados a serem produzidos e um cronograma de trabalho;

10

Modelagem: inclui a gerao de modelos que possibilitam ao desenvolvedor e ao cliente, compreender melhor os requisitos do software e o projeto que vai atender a esses requisitos; Construo: refere-se gerao de cdigo (manual ou automtico), bem como aos testes necessrios para revelar erros no cdigo; Implantao: O software parcial ou completo entregue ao cliente, que o avalia e fornece feedback ao desenvolvedor;

Modelos prescritivos de processo foram originalmente propostos para colocar ordem no caos do desenvolvimento de software. Esses modelos definem um conjunto distinto de atividades, aes, tarefas, marcos e produtos de trabalho que so indispensveis para se fazer engenharia de software com alta qualidade. Existem vrios modelos prescritivos tais como: cascata, incrementais, RAD, evolucionrios e especializados. 2.3.1 UML

A Unified Modeling Language (UML) uma linguagem visual para modelar sistemas. Isso quer dizer que ela constituda de elementos grficos que permitem representar os conceitos do software a ser desenvolvido. Atravs dos elementos grficos definidos nessa linguagem, podem-se construir diagramas que representam diversas perspectivas de um sistema (BEZERRA, 2002). Segundo Bezerra (2002), cada elemento grfico possui uma sintaxe (isto , uma forma prdeterminada de se desenhar um elemento) e uma semntica que definem o que significa o elemento e para que ele deva ser utilizado. Um processo de desenvolvimento que utilize a UML como linguagem de suporte modelagem envolve a criao de diversos documentos. Na terminologia da UML, esses documentos so denominados artefatos de software. So os artefatos que compe as vises do sistema. Esses artefatos grficos produzidos durante o desenvolvimento de um sistema de software so definidos atravs da utilizao dos diagramas da UML. Os diagramas da UML so listados na Figura 1.

11

Diagramas da UML

Diagrama de Caso-Uso

Diagrama de Classes

Diagrama de objetos

Diagrama de interao

Diagrama de transio de estados

Diagrama de Atividades

Diagramas de Implementao

Diagramas de Sequencia

Diagramas de Colaborao

Diagramas de Componentes

Diagramas de Implementao

Figura 1 - Diagramas da UML

No decorrer deste trabalho, sero usados os seguintes diagramas: Diagrama de Componentes: ilustra os vrios componentes de um software e suas dependncias. Uma dependncia liga um componente a outro que lhe fornece algum tipo de servio (BEZERRA, 2002, p.249). Um componente uma unidade de software que pode ser utilizada na construo de vrios sistemas e que pode ser substituda por outra unidade que tenha a mesma funcionalidade. Os componentes podem prover acesso aos seus servios atravs de uma interface. Alm de oferecer servios a outros componentes do sistema, ele tambm pode requisitar servios. Diagrama de Atividade: representam-se os estados de uma atividade especfica. Na verdade, o diagrama de atividade pode ser visto como uma extenso dos fluxogramas, porm com uma notao ligeiramente diferente (BEZERRA, 2002, p.228). Um diagrama de atividade exibe os passos de uma computao. Cada estado corresponde a um dos passos da computao, onde o sistema est realizando algo. Diagrama de Casos de Uso: corresponde a uma viso externa do sistema e representam graficamente os atores, casos de uso e relacionamento entre esses elementos. Diagrama de Classes: utilizado na construo de um modelo de classes desde o nvel de anlise at o nvel de especificao detalhada. De todos os diagramas da UML, esse o mais rico em termo de notao (BEZERRA, 2002, p.97). Diagrama de Seqncia: um tipo de diagrama de interao, ou seja, utilizado para modelar a lgica de um cenrio de Casos de Uso. Ele tambm utilizado para modelar a troca de mensagens entre objetos, dando nfase na ordem temporal das mensagens trocadas entre eles (BEZERRA, 2002, p.97). Um conceito importante ilustrado por esse diagrama so os Objetos de Fronteira, responsveis por apresentar os resultados de uma interao dos objetos internos em algo que possa ser entendido pelo ator. Segundo Bezerra, esses Objetos de Fronteira existem para que o sistema possa se

12

comunicar com o mundo exterior, podendo ser uma interface grfica com o usurio, por exemplo.

2.3.2

Processo Unificado

Um dos processos derivados de modelos prescritivos apresentados o Processo Unificado. Ele faz uso da Linguagem de Modelagem Unificada (Unified Modeling Language UML), dirigido por Casos de Uso e tambm centrado na arquitetura do software. Outra caracterstica interessante do Processo Unificado que ele constitui-se de um processo incremental, baseado em componentes. Possui uma infra-estrutura genrica de processos que pode ser especializada para uma ampla classe de sistemas de software, de diferentes tamanhos e diferentes reas (FALBO, 2000), possibilitando o desenvolvimento de forma incremental e iterativa (JACOBSON et al., 1998), composta de quatro fases (SANTANDER; VASCONCELOS, 2000):

a) Concepo: nesta fase objetiva-se definir os casos de uso mais crticos, as funes chave do sistema e delimita-se o escopo do produto a ser desenvolvido; b) Elaborao: define-se a descrio arquitetural do software. Procura-se tambm definir a maioria dos casos de uso, capturando os requisitos do software; c) Construo: foca-se o projeto e a implementao, visando dar capacidade operacional ao software; d) Transio: envolve a realizao de testes com o usurio, corrigir defeitos encontrados e realizar treinamento.

Cada uma destas fases geralmente composta por cinco workflows, denominados de Requisitos, Anlise, Projeto, Implementao e Teste, como mostra a Figura 2.

13

Figura 2 Workflows do Processo Unificado Fonte: O Processo Unificado

Dependendo da fase, maior ou menor nvel de detalhes pode ser desenvolvido em um workflow especfico. Na fase de concepo, por exemplo, a maior concentrao de esforos estar nos workflows iniciais de requisitos e anlise. Os outros workflows de Projeto, Implementao e Teste podem conter menos informaes e menos detalhes. O conceito de processo iterativo vem da propriedade de que cada fase pode conter uma ou mais iteraes de desenvolvimento, sendo que cada iterao realiza um ciclo completo nos workflows. Depois de concluda uma iterao, ocorre uma evoluo, a qual incrementa funcionalidades e/ou melhorias ao sistema (SANTANDER; VASCONCELOS, 2000). 2.3.3 Sistema Embarcado

Um sistema embarcado, ou sistema embutido, um sistema microprocessado no qual o computador completamente encapsulado ou dedicado ao dispositivo ou sistema que ele controla. Diferente de computadores de propsito geral, como o computador pessoal, um sistema embarcado realiza um conjunto de tarefas pr-definidas, geralmente com requisitos especficos. J que o sistema dedicado tarefas especficas, atravs de engenharia pode-se otimizar o projeto reduzindo tamanho, recursos computacionais e custo do produto (MARWEDEL, 2003). O prottipo do oxmetro, que engloba tanto o hardware como o software, poder ser classificado como um sistema embarcado, uma vez que possui as seguintes caractersticas : a) So projetados para realizar uma funo ou uma gama de funes, e no para ser reprogramado por usurios finais;

14

b) Interagem com o ambiente em que se encontram, coletando dados de sensores e atuando utilizando atuadores, tais como indicadores sonoros ou sinais luminosos; c) Devem ser confiveis, estveis e possuir caractersticas de recuperao em caso de falhas e oferecer segurana, tanto em relao ao ambiente em que est inserido quanto s informaes neles contidas; d) Possuem mtricas de eficincia alm das j conhecidas para projetistas de sistemas desktops ou servidores: consumo de energia, tamanho do cdigo, execuo eficiente, peso e custo.

15

DESE VOLVIME TO

3.1

Projeto de Hardware

De acordo com o que j foi exposto anteriormente, o software do prottipo necessitar de uma plataforma especialmente desenvolvida, ou seja, faz-se necessrio criar um circuito eletrnico que contenha todas as partes necessrias para o funcionamento do sistema. A Figura 3 representa todo o equipamento atravs de um Diagrama de Blocos.

Figura 3 - Diagrama de Blocos do prottipo

Atravs desse diagrama, representa-se a constituio do equipamento, com as devidas relaes de funcionamento que existem entre os diversos constituintes, a saber: Fonte de Alimentao: exigida por quase todos os circuitos eletrnicos, responsvel por abaixar a tenso fornecida pela rede eltrica para nveis requeridos pelo circuito a ser alimentado. Por sua vez, tambm composta pelos seguintes circuitos: o Circuito Retificador: transforma a corrente alternada para corrente contnua; o Circuito Carregador de Baterias: responsvel por manter a bateria sempre carregada e pronta para assumir caso haja falhas ou ausncia de rede eltrica; o Circuito Regulador de Tenso: usado para manter as tenses fornecidas em valores constantes, ou seja, serve como uma linha de defesa contra picos de tenso e instabilidade da rede eltrica. Placa Me: responsvel por unir os perifricos, tais como o sensor, mdulo de oximetria, display grfico, fonte e teclado. Sua funo criar meios para que o microcontrolador possa comunicar-se com todos os componentes do prottipo, com a

16

maior velocidade e confiabilidade possvel. Destaca-se tambm por fornecer a alimentao necessria a todos os outros componentes do sistema; Probe (sensor): a unidade que vai junto ao corpo do paciente, emitindo radiaes visveis e infravermelhas. Sua funo informar ao Mdulo de Oximetria a quantidade de luz absorvida proporcional saturao de oxignio; Mdulo de Oximetria: uma unidade computadorizada, composta por processadores digitais que calculam tanto a saturao de oxignio no sangue quanto freqncia cardaca, atravs de equaes matemticas. Os resultados so enviados para a Placa Me no formato serial, ou seja, um bit aps o outro; Display grfico: unidade dotada de um Painel de Cristal Lquido (LCD), composto por pixels monocromticos, retro-iluminados. Possui um controlador interno responsvel por interpretar os dados da Placa Me. Atravs desse display, possvel mostrar ao usurio os valores medidos e a curva pletismogrfica, bem como outros sinais visuais; Teclado: um conjunto de teclas que permitem a seleo dos parmetros de alarme, modos de operao, contraste do display e qualquer outra funo que necessite interveno do usurio. composto por teclas tcteis, com contatos do tipo normalmente abertos. funo do software determinar se um boto est pressionado ou no; 3.1.1 Fonte de Alimentao

A Fonte de Alimentao do prottipo responsvel por reduzir a tenso de 110VAC disponvel na rede eltrica para os nveis requeridos pelos outros componentes (ARNOLD, 2000). As Figuras 4 e 5 representam, respectivamente, o Diagrama de Blocos e o Esquema Eltrico da fonte, composta pelos circuitos Retificador, Regulador de Tenso e Carregador de Baterias.

Figura 4 - Diagrama de Blocos da Fonte de Alimentao

17

Figura 5 - Esquema Eltrico Completo da Fonte de Alimentao

Todos os outros diagramas presente nesse trabalho foram desenhados com o auxlio da ferramenta ISIS Professional, comercializada junto com pacote Proteus, desenvolvido pela Labcenter (HILLS, 1999). 3.1.1.1 Circuito Retificador O circuito Retificador, ilustrado na Figura 6, responsvel por converter a corrente alternada, disponvel na rede eltrica, para corrente contnua, uma vez que todos os outros componentes do prottipo precisam ser alimentados dessa forma. Esse tipo de circuito conhecido como Retificador de Onda Completa.

Figura 6 Circuito Retificador

18

O transformador TR1 do tipo 24+24, responsvel por abaixar a tenso de 110VAC para 24VAC, fornecendo uma corrente mxima de 1A. Os diodos D1 e D2 so do tipo 1N4007, retificadores de uso geral, com uma baixa queda de tenso e resistente a surtos de corrente. De acordo com Mims (1986), os diodos so componentes que conduzem eletricidade somente em uma direo, enquanto bloqueia o fluxo de corrente numa direo oposta. importante notar que a corrente de sada do transformador ainda alternada, porm a tenso de 24VAC oscilando numa freqncia de 60 Hz. Dessa forma, os diodos D1 e D2 iro transformar essa corrente em contnua, mantendo a amplitude (tenso). Esse fenmeno ilustrado na Figura 7.

Figura 7 Etapas do Circuito Retificador

Os capacitores C1 e C2 so do tipo eletroltico, de 2200F e 1000F respectivamente, agindo de modo a eliminar o ripple. De acordo com a Figura 7, o ripple, que a componente alternada (VAC) que incide sobre a corrente contnua (VDC), foi eliminado ou significativamente reduzido utilizando-se esses capacitores. Sendo assim, temos 24 VDC na sada desse Circuito Retificador. 3.1.1.2 Circuito Carregador de Baterias O prottipo do oxmetro dever oferecer uma segunda fonte de energia; caso a rede eltrica apresente falhas, ou interrupes no fornecimento, uma bateria interna dever assumir. A alimentao interna tambm traz mobilidade ao equipamento. Neste caso, a bateria dever ser capaz de alimentar o prottipo por no mnimo duas horas, tempo necessrio para transporte de pacientes crticos entre hospitais, auxiliando o processo de oxigenoterapia com o intuito de diminuir a mortalidade e a incidncia de hipoxemia (MARCONDES, 2006). Entretanto, para manter a bateria num nvel confivel, sempre pronta para assumir a alimentao em qualquer momento, o Circuito Carregador de Baterias tem a funo de

19

fornecer uma tenso constante bateria, chamada de Tenso de Flutuao. A Figura 8 mostra a representao esquemtica do circuito.

Figura 8 - Circuito Carregador de Baterias

De acordo com o esquemtico acima, o circuito integrado U1 do tipo LM317L, um Regulador de Tenso Varivel. Sua funo reduzir a tenso de 24 VDC na sua entrada, dada pelo Circuito Retificador, para 13,6 VDC a Tenso de Flutuao da bateria. Segundo Emadi (2005, p.17-18), a Tenso de Flutuao (Tf) para um bateria selada de 2,27 Volts por clula (Vpc). De acordo com as especificaes da bateria selada utilizada no prottipo, fabricada pela Rontek, ela possu 6 clulas e tem uma tenso de 12V entre seus plos. Logo, a Tenso de Flutuao pode ser comprovada multiplicando-se a tenso necessria por clula pela sua quantidade:

Tf = 2,27V 6 = 13,62V

(1)

Para fazer com que a sada de U1 esteja regulada a 13,6V (Tf), se faz necessrio o uso de resistores externos, identificados por R1, R2 e R3, como visto em seu datasheet National (1982). importante observar a funo do diodo D3, do tipo 1N4007; ele responsvel por direcionar o fluxo da corrente, denotada por i na Figura 8. O conector J2 vai diretamente bateria, cujo pino 1 vai ao plo positivo e o outro ao negativo. Dessa forma, teremos 13,6V regulados no final do circuito quando alimentado pela rede eltrica. Entretanto, com falhas ou ausncia da rede, teremos 12V de sada pois a bateria assumir a alimentao. Essa variao devido ao tipo de fonte, externa ou interna

20

respectivamente, no ir exercer influncia na prxima etapa da fonte, que ser dedicada regulagem.

3.1.1.3 Circuito Regulador de Tenso


Este circuito alimentado pela sada do Carregador de Baterias ou pela prpria bateria interna, na ausncia de energia eltrica. A Figura 9 ilustra o circuito e seus componentes.

Figura 9 - Circuito Regulador de Tenso

Entretanto, as tenses fornecidas pela fonte ou pelo Carregador de Baterias ainda no apresentam nveis que podero ser utilizados na alimentao dos demais componentes do prottipo. Tais componentes necessitam ser alimentados por tenses mais baixas, devidamente reguladas, ou seja, independente de alteraes devido picos de consumo e imune s oscilaes. A funo desse Circuito Regulador de Tenso converter a tenso aplicada na sua entrada para um valor fixo, geralmente menor (MIMS, 1986). Em relao ao esquema da Figura 9, o componente U3 um regulador de tenso da famlia 7805. Ele admite uma entrada de at 35 Volts, enquanto sua sada sempre ser regulada a 5 Volts, e esta diferena ser dissipada na forma de calor. Todos os capacitores da Figura 9 tm a finalidade de fornecer rapidamente picos de corrente elevada que os chips exigem

21

substancialmente. Eles so chamados de Capacitores de Desacoplamento. Os outros circuitos integrados, U4 e U5, so utilizados para gerar uma tenso negativa de amplitude -5 Volts, utilizada pelo amplificador operacional da Placa Me.

3.1.2

Placa Me

A Placa Me do prottipo ser aquela em que estar presente o microcontrolador, componente principal de equipamento. A Figura 10 mostra o Esquema Eltrico da Placa Me.

Figura 10 - Esquema Eltrico da Placa Me

De acordo com o datasheet Microchip (2002), o microcontrolador U1, do tipo PIC18F452 um dispositivo de 40 pinos, que trabalha numa freqncia mxima de operao de 40 Mhz, possui 32kb de memria interna no-voltil e capaz de rodar programas escrito pelo usurio. nesse chip que o software do oxmetro ser armazenado. O display, apesar de ser representado no Esquema da Figura 10, um componente fisicamente separado da Placa Me. Ele est nesse diagrama somente para ilustrar as conexes diretas com o microcontrolador. As conexes com o display esto representadas no Quadro 1.

22

Pino do Microcontrolador RA1/AN1 RA2/AN2 RA3/AN3 RA5/AN4 RD0 RD1 RD2 RD3 RD4 RD5 RD6 RD7 3 4 5 7 19 20 21 22 27 28 29 30 RD CD RST WR D0 D1 D2 D3 D4 D5 D6 D7

Pino do Display 6 8 10 5 11 12 13 14 15 16 17 18

Quadro 1 - Conexes entre o microcontrolador e o display Fonte: Manual de Usurio mikroC.

A freqncia de operao do sistema, ou seja, a quantidade de instrues de cdigos que sero executadas em um segundo so definidas pelo conjunto de componentes X1, C1 e C2. Segundo o datasheet Microchip (2002, p.18), os valores de C1 e C2 para um cristal X1 de 10Mhz, poder ser entre 15pF e 33pF. Logo, foram selecionados capacitores de 22pF por serem comercialmente disponveis, de fcil obteno. Outro componente importante da Placa Me, que merece ateno, o Amplificador Operacional referenciado como U2, do tipo LM741, ilustrado na Figura 11.

Figura 11 Divisor de tenso e Amplificador Operacional de Ganho Unitrio

O LM741 um amplificador linear de alto desempenho com uma grande variedade de usos. Neste caso, ele est configurado como um Amplificador de Ganho Unitrio (MIMS, 1985). Sua funo reduzir a tenso da bateria, que entra no resistor R4, para um nvel entre 0 e 5

23

Volts os valores aceitveis para as entradas analgicas do microcontrolador (MICROCHIP, 2002), a fim de monitorar o nvel da bateria via software. Os resistores R4 e R3 de 220k e 100k, respectivamente, funcionam como Divisores de Tenso segundo a equao:

Vdiv =

Vbateria R3 ( R 3 + R 4)

(2)

Substituindo os valores de R3 e R4, obtemos a seguinte relao: Vdiv = 0,303 Vbateria


(3)

Logo, quando a bateria atingir sua mais alta tenso (carga mxima), de 13,6 Volts, a entrada do microcontrolador ir receber somente 4,12 Volts, garantindo um valor aceitvel para a entrada analgica. A funo do amplificador, nesse caso, no amplificar, uma vez que seu ganho unitrio; mas sim evitar que a entrada analgica consuma corrente dos resistores divisores, influenciando os valores medidos. Portanto, a corrente consumida do amplificador (MIMS, 1985). Os capacitores C3, C4 e C6 so de Desacoplamento, com a funo de garantir uma alimentao apropriada ao circuito. O conector J1 responsvel por receber a alimentao da fonte, o J2 responsvel por comunicar-se com o Mdulo de Oximetria e o J4 com o Teclado.

3.1.3 Probe (sensor)


A Figura 12 uma fotografia do sensor utilizado no prottipo, conhecido como probe.

Figura 12 - Probe, sensor de oximetria

O sensor o componente do oxmetro responsvel por obter os nveis de saturao de oxignio do sangue do paciente. Possui dois LEDs (Diodo Emissor de Luz) na parte superior, emitindo luz em comprimentos de onda distintos: vermelho e infravermelho. Na parte

24

inferior, ele possui um Fotodiodo, componente sensvel luz, cuja funo registrar a parcela absorvida pelo sangue. Ele conectado ao Mdulo de Oximetria atravs de um cabo. A Figura 13 mostra os componentes bsicos do sensor.

Figura 13 - Elementos do sensor Fonte: Encyclopedia of medical devices and instrumentation.

Devido pulso arterial no local da medio, haver diferentes nveis de absoro de luz devido pele, os tecidos, sangue venoso e arterial. Entretanto, a cada batida, o corao contrai e h um acrscimo no volume de sangue arterial no local da medio, resultando em uma maior absoro de luz. Os sinais recebidos no Fotodiodo tm um formato de onda caracterstico (com picos entre cada batimento cardaco). Por isso, emprega-se o termo oxmetro de pulso, uma vez que os picos ocorrem a cada batimento cardaco (WEBSTER, 2006, v.1, p.473).

3.1.4

Mdulo de Oximetria

O Mdulo de Oximetria, que recebe os dados do probe (sensor), foi adquirido da empresa SystemPartner, com sede em So Caetano do Sul/SP. No necessrio conhecer detalhes sobre o funcionamento interno desse mdulo, tampouco seus esquemas eltricos; somente ser necessrio saber qual seu protocolo de comunicao e a forma de aliment-lo. A Figura 14 uma fotografia do mdulo usado no prottipo. Sua escolha foi realizada devido ao fato de ser o um dos pouco fabricados no pas, haja vista que os equipamentos que os utilizam so de origem estrangeira.

25

Figura 14 Mdulo de Oximetria modelo SPOX-410

Os valores medidos pelo mdulo so transmitidos no formato serial para o microcontrolador. A interface do prottipo com o computador realizada atravs da Porta Serial, com um conector DB9, ilustrado na Figura 15. O cabo est ilustrado na Figura 16.

Figura 15 Conector DB9 Fonte: Serial Port Complete.

Figura 16 Conexo com o computador

Para fazer com que o microcontrolador se comunique com o mdulo de oximetria, ser necessrio o uso de um resistor de 220 entre o pino RX e a sua sada. A funo desse resistor limitar a corrente, evitando que se sobrecarregue a sada digital do mdulo.

26

De acordo com o Anexo A, documentao fornecida pelo fabricante do mdulo, o formato de comunicao digital no formato 8N1, numa velocidade de 9600bps. Tal comunicao se d atravs de palavras, onde cada uma contm um Start bit, os bits de dados, um bit opcional de paridade, e um ou mais Stop bits. (AXELSON, 2000). No formato 8N1, as palavras so enviadas comeando-se por um Start bit, seguido de oito bits de dados e um Stop bit. A letra N, do 8N1, significa que as palavras no contm Stop bit. Esse tipo de transmisso Assncrona, ou seja, a velocidade de transmisso independente das partes; no h um acordo determinando se um bit dever ser enviado aps o outro num certo perodo de tempo. Nesse caso, o prprio transmissor determina o perodo de tempo entre os bits. O formato de onda da transmisso esta representado na Figura 17.

Figura 17 Formato de uma transmisso assncrona 8 1 Fonte: Serial Port Complete.

3.1.5 Display grfico


O display grfico utilizado no projeto do prottipo possui 15360 pixels na sua rea visvel, distribudos em 240 colunas e 64 linhas. baseado no controlador Toshiba modelo T6963C. Foi escolhido devido sua fcil conexo e por possuir rotinas pr-escritas na linguagem C. A Figura 18 uma fotografia do display utilizado no prottipo.

Figura 18 - Display Toshiba T6963C, 240x64 pixels

27

3.1.6

Teclado

O teclado composto por teclas tcteis, com contatos normalmente abertos, ou seja, no seu estado normal (no-pressionados) apresentam resistncia infinita entre seus pinos. Caso contrrio, ao serem pressionados, seus contatos se fecham e conduzem corrente eltrica. A Figura 19 uma fotografia do teclado construdo especialmente para o prottipo.

Figura 19 Teclado do prottipo

Optou-se por arranj-los em um formato de cruz, representando-se um direcional para facilitar a navegao nos menus e permitir acesso direto a funes pr-definidas atravs dos botes esquerda. Cabem a essas funes silenciar ou ajustar os nveis de alarme, acessar o menu e ajustar o contraste do display. O Esquema Eltrico do teclado est na Figura 20.

Figura 20 Esquema Eltrico do Teclado

28

3.2

Projeto de Software

3.2.1

Mdulo do Oxmetro

3.2.1.1 Diagrama de Componente


O diagrama de componentes, ilustrado na Figura 21, mostra os vrios componentes de um software embarcado e suas dependncias.

Figura 21 Diagrama de Componente

Os componentes representados acima oferecem servios especficos, onde cada um exerce sua prpria funcionalidade, a saber: Escalonador de Tarefas: componente de software responsvel por incrementar uma varivel numrica em um intervalo de tempo definido. Baseando-se no valor dessa varivel, este componente define qual ser o prximo a ser executado; LeitorBytes: este componente efetua a comunicao serial com o mdulo de oximetria utilizando-se das rotinas de comunicao prpria linguagem. Fornece para os outros componentes os valores de SpO2 (saturao de oxignio) e BPM (batimentos cardacos) em forma de variveis numrica; MostradorCurva: componente responsvel por plotar no display os valores de SpO2 e BPM, no formato de uma curva, sempre da esquerda para direita; MostradorDados: este componente exibe os valores numricos no display, fazendo com que o usurio tenha uma fcil visualizao dos parmetros;

29

LeitorTeclado: sua finalidade, quando executado, ler o estado do teclado e desviar o fluxo de execuo para a rotina desejada pelo usurio, representada pelos botes;

MenuConfigAlarme: responsvel por exibir no display um menu onde o usurio poder selecionar quais sero os valores mximos e mnimos de SpO2 e BPM nos quais o alarme ir atuar.

3.2.1.2 Diagrama de Atividade


Na Figura 22, logo abaixo, est representado o Diagrama de Atividades do software embarcado, englobando todos os estados possveis, isto , desde a inicializao do prottipo at o seu ciclo normal de funcionamento.
Sistema Principal Escalonador de Tarefas Interrupo USART

Configurar Portas do Microcontrolador

Inicializar Display

Configurar o Alarme Padro

Carregar na RAM Menu de ajustes do Alarme

Limpar FIFO e Buffer de Recepo Serial

Configurar Interrupes

Ler dado da FIFO

Criar varivel contador

Tem dados no Buffer de Recepo Serial ?

[isLerCurva = true]
Plotar Curva

[isLerDados = true]
Exibir Saturao de Oxignio (SpO2) e BPM isLerCurva = false

contador++;

[sim]

Colocar na FIFO

[no]
contador mod 2

isLerCurva = false

[ =0]
isLerCurva = true

[seno]
contador mod 76 Verificar Alarme

[ =0]
[BPM ou SpO2 MAX]

[seno]

Emitir aviso sonoro

isLerDados = true

Figura 22 - Diagrama de Atividade do Software embarcado

30

Analisando a Figura 22, verifica-se que o software embarcado possui trs processos bsicos: Sistema Principal: responsvel por inicializar todo hardware, como o display e o mdulo serial do microcontrolador, exibir os dados das medies na tela e acionar o alarme caso os parmetros estejam fora da faixa padro. Segundo Holzhacker (2001), para um adulto, a freqncia cardaca deve-se situar entre 40 a 150 BPM, enquanto a saturao de oxignio no sangue deve variar entre 85 a 100%. Escalonador de Tarefas: seu objetivo dividir as tarefas - plotar a curva ou exibir os valores no display. Ele se faz necessrio, pois o microcontrolador monotarefa, ou seja, no capaz de reproduzir dois processos concorrentes - em estado de paralelismo real (IOVINE, 2000). A implementao adotada aqui faz uso de um recurso de hardware chamado interrupes para executar processos simultneos de uma forma limitada, independente do Sistema Principal. Logo, o que este escalonador faz uma tcnica conhecida como time slicing, dedicando uma fatia do tempo para cada procedimento do Sistema Principal. Ele utiliza-se das variveis booleanas isLerDados e
isLerCurva

para sinalizar ao Sistema Principal qual atividade dever ser realizada.

Esse desvio de fluxo est representado logo abaixo do processo Ler Dados da FIFO. Aps essa tarefa, os valores das variveis
isLerDados

isLerCurva

so

obtidos, e dependendo de seu contedo, o fluxo desviado para o processo Plotar Curva ou Exibir Saturao (SpO2) e BPM. Interrupo USART: um processo dedicado do microcontrolador, tambm independe do Sistema Principal, responsvel por receber os dados do mdulo de oximetria como mostrado anteriormente pela Figura 17.

3.2.2

Mdulo para Desktop

3.2.2.1 Descrio do Sistema


O mdulo para Desktop ser constitudo basicamente de um software e um banco de dados, onde o mdico poder acompanhar, atravs de um computador comum, todas as medies realizadas pelo oxmetro, em tempo real. O software dever ser capaz de exibir na tela os valores medidos de SpO2 (saturao de oxignio) e BPM (batimentos cardacos), bem como a

31

curva pletismogrfica. Alm da visualizao desses parmetros, o sistema dever oferecer tambm uma opo para Salvar os dados num arquivo, caso o mdico decida gravar o estado do paciente. Cada arquivo dever ser identificado pelo cdigo e nome do paciente em questo, juntamente com a data e hora em que as medies foram realizadas. O paciente dever ser previamente cadastrado. Outra funcionalidade importante que o software dever desempenhar a anlise contnua dos dados, uma vez que o oxmetro poder ser empregado em exames de polissonografia e outros de longa durao, por exemplo. Nesse caso, o volume de dados coletados ser considervel, logo, o software dever registrar em um grfico todas as medies dos parmetros, e ao fim do exame, exibir os valores mdios, automatizando a tarefa de um enfermeiro ou outra pessoa dedicada no registro e acompanhamento desses dados. Por fim, a emisso de relatrios tambm dever fazer parte do sistema. O mdico dever ter acesso a uma rea onde ser possvel filtrar os relatrios segundo o paciente, a data e hora de realizao do exame. Esse relatrio dever ser impresso e conter todos os dados daquela medio selecionada. Outro ponto que merece ateno que o sistema no deve permitir que se exclua um paciente nem um exame, uma vez que deve ser mantido um histrico dos mesmos.

3.2.2.2 Diagrama de Casos de Uso


O Diagrama de Casos de Uso na Figura 23 ilustra a interao entre o usurio e as diversas funcionalidades do sistema. Logo abaixo est descrito sucintamente cada caso de uso.

Figura 23 - Diagrama de Casos de Uso do software para Desktop

32

Cadastrar Paciente: este caso de uso inicia-se quando o mdico seleciona no menu a opo de Cadastrar Paciente. Logo em seguida, exibido um formulrio na tela onde devero ser preenchidos alguns campos como o cdigo e o nome do paciente. O mdico ter acesso aos botes Salvar e Cancelar. Criar Exame: quando selecionado no menu, novamente exibido ao mdico um formulrio onde ele poder selecionar pacientes pr-cadastrados no sistema, retornando o cdigo e o nome do mesmo. A data e hora atual do sistema sero registradas num campo desabilitado para edio, marcando assim o momento de criao daquele exame. Devero ser exibidos na tela alguns botes, como Salvar Exame, Obter Leitura Instantnea e Iniciar Monitorao Contnua. Obter Leitura Instantnea: este caso de uso iniciado quando o mdico deseja obter uma leitura instantnea, ou seja, uma nica amostra dos parmetros (BPM e SpO2) do paciente naquele momento. Os valores medidos devero ser exibidos na forma numrica. Iniciar Monitorao Contnua: este caso de uso permite que o mdico obtenha uma monitorao contnua dos parmetros do paciente, e ao fim desta monitorao dado atravs de um boto Finalizar, dever ser exibido na tela um grfico contendo os valores em funo do tempo, bem como os valores mdios calculados e a durao do exame. Emitir Relatrio: funcionalidade acessada atravs do menu Relatrio, onde o mdico ter acesso aos exames j realizados e as leituras e medies relacionadas aos mesmos. Esta tela dever oferecer botes para Imprimir Relatrio e Visualizar Impresso. Comunicar com Oxmetro: caso de uso responsvel por estabelecer a comunicao com o hardware e fornecer dados s outras funcionalidades. Atravs dele que sero obtidas as medies do prottipo, logo, o mdico no ter acesso a ele, mas sim os outros casos de uso ilustrados na relao de <<include>>.

33

3.2.2.3 Diagrama de Classes


A Figura 24 representa as classes do sistema para Desktop e seus relacionamentos.

Figura 24 Diagrama de Classes

Cada classe representada no diagrama acima representa uma entidade no sistema, a saber: Exame: definida como uma superclasse, ou uma classe-me. dela que partiro os principais relacionamentos. Ela responsvel por persistir a data / hora da realizao de cada exame, e possui mtodos responsveis por iniciar ou parar um novo exame, por exemplo. Nunca ser criada uma instncia dessa classe no sistema, isto , todos os exames criados pelo usurio sero do tipo ExameInstantneo ou ExameContnuo. ExameInstantneo: produzir instncias especializadas da superclasse Exame, ou seja, objetos dessa classe iro herdar todos os atributos e mtodos da classe Exame, entretanto no iro implementar nenhuma nova caracterstica. ExameContnuo: outra classe que tambm ir herdar todos as caractersticas da classe Exame, porm possui um atributo e um
retornarDurao

mtodo adicional.

O mtodo que

retorna o valor da varivel

DURACAO_EXAM_CONTINUO,

responsvel por armazenar a durao do exame. Paciente: classe que representa o paciente propriamente dito, que poder ter um ou mais exames.

34

Mdico: a entidade responsvel por criar um novo exame, e poder estar associado a vrios exames. Medio: cada objeto (instncia) do tipo Medio ir conter os valores adquiridos pelo oxmetro, onde cada exame poder ter vrias medies quando for do tipo ExameContnuo, e por outro lado, uma nica medio quando for do tipo ExameInstantneo. Oxmetro: a entidade que representa a unidade fsica, o prottipo do oxmetro em si. O sistema poder ter somente uma instncia dessa classe durante sua execuo, onde os valores adquiridos atravs da porta serial podero ser obtidos atravs de chamadas aos mtodos retornarSpO2 e
retornarBPM.

3.2.2.4 Diagrama de Seqncia


Nas figuras a seguir esto ilustrados todos os Diagramas de Seqncia para cada Caso de uso apontado na Figura 23. Em relao s Figuras 25 at a Figura 30, temos que os objetos do tipo
telaCadastroPaciente, telaCadastroExame

e assim por diante, so os Objetos de

Fronteira.

Figura 25 Diagrama de Seqncia: Cadastrar Paciente

35

Figura 26 Diagrama de Seqncia: Criar Exame

Figura 27 Diagrama de Seqncia: Obter Leitura Instantnea

36

Figura 28 Diagrama de Seqncia: Iniciar Monitorao Contnua

Figura 29 - Diagrama de Seqncia: Salvar Estado Paciente

37

Figura 30 - Diagrama de Seqncia: Emitir Relatrio

3.2.2.5 Telas do Sistema e Cdigo Fonte


As telas do sistema para desktop, foram criadas em Java com o auxlio do etBeans IDE, e

esto disponveis no Anexo B. A linguagem Java foi escolhida devido sua caracterstica peculiar: a portabilidade. Dessa forma, o sistema poder rodar em qualquer microcomputador, independente da plataforma e do sistema operacional, desde que tenha uma JVM (Maquina Virtual Java) instalado. A JVM Java est disponvel para download no site do fabricante Sun Microsystems sem custo algum. O Anexo C disponibiliza todo o cdigo fonte do sistema embarcado, escrito na linguagem C. Ao contrrio do que se pode encontrar em outros trabalhos envolvendo microcontroladores, essa linguagem foi escolhida em oposio ao Assembler, j que esta ultima uma linguagem de baixo nvel, o que aumentaria a complexidade na fase de implementao.

38

CO CLUSO

O principal objetivo desse trabalho, que o desenvolvimento de um oxmetro de pulso capaz de conectar-se a um microcomputador, torna-se vivel seguindo-se um desenvolvimento planejado, utilizando-se dos diagramas da UML para modelagem do software, e das demais ferramentas citadas no seu decorrer para a criao do hardware. O desenvolvimento da fonte de alimentao, durante o projeto do hardware, mostrou-se ser uma etapa complexa, devido necessidade de incorporar um carregador de baterias no circuito, uma vez que esse tipo de equipamento dever ser operado tambm na falta de energia eltrica. Em contrapartida, a comunicao com o mdulo de oximetria mostrou-se ser uma tarefa fcil, devido documentao j existente fornecida pelo fabricante. O tamanho fsico reduzido do circuito eletrnico tambm oferece uma possibilidade de se construir um equipamento facilmente porttil. Outro ponto muito importante o baixo custo apresentado pelo equipamento, uma vez que os componentes utilizados na sua montagem so encontrados com facilidade no mercado nacional, e em geral, seu custo total menor do que um equipamento de origem estrangeira, como pode ser visto na Tabela 1.

Tabela 1 : Custo dos principais componentes utilizados

Produto PIC18F452 I/P Mdulo Oximetria Display T6963C Componentes discretos CUSTO TOTAL

Preo R$ 25,99 R$ 300,00 R$ 90,00 R$ 100,00 R$ 515,99

Fonte: Farnell- ewark Componentes LTDA.

Comparando o custo total do prottipo com o preo final para o consumidor, ao adquirir um equipamento similar, sem conexo USB e conseqentemente, sem um software to completo como o aqui apresentado, possvel concluir que realmente h uma diferena considervel. Os dados encontram-se na Tabela 2 logo abaixo.

39

Tabela 2: Comparao entre o prottipo e modelos nacionais / importados

Produto Emai OXP-10 Moriya M1000 Nellcor N-600x

Tem USB?

Origem Nacional Nacional Importado

Preo R$ 3.195,00 R$ 3.497,00 R$ 5.597,41

PROTTIPO

acional

R$ 515,99

Fonte: Cirrgica Passos LTDA.

Em relao ao desenvolvimento, foi possvel concluir que diviso das atividades do software do oxmetro, representadas no Diagrama de Atividades, tambm apresentou resultados muito satisfatrios. Foi possvel implementar um sistema embarcado capaz exibir todos os parmetros do paciente no display. A principal vantagem desse prottipo, que oferecer conectividade aos PCs de forma fcil e rpida, mostrou-se ser um diferencial em relao aos j existentes. Essa caracterstica pde ser apresentada atravs do software para o desktop. Por fim, provou-se ser possvel oferecer ao corpo mdico uma melhor anlise das informaes coletadas pelo equipamento, auxiliando a tomada de decises durante um exame, e at mesmo um melhor acompanhamento dos parmetros do paciente em um ato cirrgico.

40

REFER CIAS

ARNOLD, Ken. Embedded Controller Hardware Design. Virginia-USA: LLH Technology Publishing, 2000. ASSOCIAO BRASILEIRA DE NORMAS TCNICAS. pulso para uso mdico Prescries. Rio de Janeiro, 1997.

BR ISO 9919: Oxmetro de

ASSOCIAO BRASILEIRA DE NORMAS TCNICAS. BR 14724: Informao e documentao Trabalhos acadmicos Apresentao. Rio de Janeiro, 2001. 6 p. AXELSON, Jan. Serial Port Complete. Madison, WI: Lakeview Research, 2000. BEZERRA, Eduardo. Princpios de Anlise e Projeto de Sistema com UML. Rio de Janeiro: Elsevier, 2002. BOEHM, Barry. A spiral model of software development and enhancement. IEEE CS PRESS, v. 21, n. 5, p. 61-72, 1988. EMADI, Ali; NASIRI, Abdolhosein; BEKIAROV, Stoyan B. Uninterruptible Power Supply and Active Filters. Chicago: CRC-Press, 2005. FALBO, Ricardo. A Experincia na Definio de um Processo Padro Baseado no Processo Unificado. Anais do II Simpsio Internacional de Melhoria de Processo de Software, SIMPROS200. So Paulo: 2000. FEARNLEY, Dr. SJ, Pulse Oximetry. Torquay, Inglaterra: Department of Anaesthetics, Torbay Hospital, 1995. FERNANDES, Reinaldo; OJEDA, Renato; LUCATELLI, Marcos. Ensaios para Avaliao de Funcionalidade de Oxmetros de Pulso. II Congreso Latinoamericano de Ingeniera Biomdica. Cuba: 2001. GIBILISCO, Stan. The ilustrated dictionary of Electronics. New York: McGraw-Hill, 2001. HILLS, Chris. Embedded MCU Debuggers Third Edition. Java C & C++ Spring Conference. Oxiford Union, UK: 1999. HOLZHACKER, Albert. Oxmetro de Pulso DX-2515: Manual de Operao,5 ed. Manaus: Dixtal, 2001. IOVINE, John. PIC Microcontroller Project Book. New York: McGraw-Hill, 2000. JACOBSON, Ivar; BOOCH, Grady; RUMBAUGH, James. The unified software development process. USA: Addison-Wesley, 1998, 463 p.

41

KNOBEL, Elias. Condutas no paciente Grave. 2 ed. So Paulo: Atheneu, 1998. MARCONDES, Giancarlo et al . Transporte de pacientes sem oxigenoterapia para a sala de recuperao ps-anestsica: repercusses na saturao de oxignio e fatores de risco associados hipoxemia. Rev. Bras. Anestesiol. , Campinas, v. 56, n. 4, 2006 . MARWEDEL, Peter. Embedded System Design. Kluwer Academic Publishers. 1 ed. Dortmund: Kluwer Academic Publisher, 2003. MICROCHIP. PIC18FXX2 Datasheet. Microchip Technology Inc, 2002. MIKROELETRONIKA. mikroC Users Manual. MikroEletronika Books, 2007. MIMS, Forrest M. III, Engineers Mini- otebook - Op Amp IC Circuits. Radio Shack, 1985. MIMS, Forrest M. III, Getting Started in Electronics. Radio Shack, 1986. NATIONAL. Datasheet of LM117/LM217/LM317 3-Terminal Adjustable Regulator National Semiconductor Corporation Linear Databook, 1982, pp. 1-23 a 1-30. NUNES, Wilma Aparecida; TERZI, Renato Giuseppe Giovanni. Oximetria de pulso na avaliao do transporte de oxignio em pacientes crticos. Rev. Latino-Am. Enfermagem , Ribeiro Preto, v. 7, n. 2, 1999. PRESSMAN, Roger. Engenharia de Software. So Paulo: Makron Books, 1995. PRESSMAN, Roger. Engenharia de Software, 6 edio. So Paulo: McGraw-Hill, 2006. SANTANDER, Victor; VASCONCELOS, Alexandre. Mapeando o Processo Unificado em Relao ao CMM Nvel 2. XI CITS - Qualidade de Software. Curitiba: 2000, pp. 120-137. SCOTT, Kendall. O processo Unificado. Porto Alegre: Bookman, 2003. SEDRA, A.S., SMITH, K.C. Microeletrnica, 4 Edio. So Paulo: Makron Books, 2004. VELLOSO, Alexandre. Desenho Bsico Eletrnica. Rio de Janeiro: Escola Tcnica Estadual Repblica, 2006. VENTURA, Celestina, OLIVEIRA, Ana Sofia, DIAS, Rita et al. Papel da oximetria nocturna no rastreio da sndroma de apneia-hipopneia obstrutiva do sono. Rev Port Pneumol, jul. 2007, vol.13, no.4, p.525-551. ISSN 0873-2159. WEBSTER, John G. Encyclopedia of medical devices and instrumentation, vol.1, 2 ed. New York: John Wiley & Sons, 2006. YORDON, Edward. Anlise estruturada moderna. Traduo: Dalton Conde de Alencar. Rio de janeiro: Campus, 1990.

42

A EXO A Documentao do Mdulo de Oximetria SPOX-410 Documentao includa ao Mdulo de Oximetria, fabricado por SystemPartner. Traz detalhes sobre o protocolo de comunicao e alimentao do mdulo.

43

A EXO B Telas do software para desktop

Cadastro de Paciente

Cadastro de Exames

44

Realizando um exame instantneo

Realizando um exame contnuo

45

Relatrio de um exame contnuo

46

A EXO C Cdigo Fonte do Sistema Embarcado


//********************************************************* // Oxmetro de Pulso // Baseado no mdulo de oximetria SystemPartner: // SPOX-410 // PCM-0020410 // OEM-0020007 // // Hardware: // PIC18F452 I/P @ 40 Mhz (10 Mhz xtal + PLL ) // 5 Vdc PSU // T6963C 240x64 GLCD // // Fernando Vincius G. Magro 2007/2008 //********************************************************* // SAIDAS #define ALARM_OUT PORTE.F2 #define BEEP_OUT PORTE.F1 #define REM_OUT PORTE.F0 #define SBUFF_SIZE 128 #define BUFOVFL 1

// pino de saida para alarme disparando // sada para o Buzzer - bepp BPM // Sinal para o clock do 4017, desligando a fonte // potncia de 2 para uma indexao rpida

unsigned int contador,contadorAlarmeTemp; unsigned float tempoEstouro; unsigned short ByteLido, ByteSync, isLerCurva, isLerDados; unsigned short ByteCurva, ByteLed, ByteMSG, ByteSpO2, ByteBPM, ultimoValorCurva; char StrCurva[4], StrLed[4], StrSpO2[4], StrBPM[4], StrMSG[4]; char StrChar[4]; char msg[7]; // DEBUG unsigned short xi, yf; unsigned int tempoF2Press,tempoF3Press,tempoOKPress; unsigned short dispararAlarme, isAlarmeTemp, isAlarmeGeral, isAlarmeAuto, isBeep, tempoAlarmeTemp, isPiscarBPM, isPiscarSpO2; unsigned short valorContraste, isContrasteAlterado; #include "include/T6963C.h" #include "include/graficos.c" #include "include/rotinasBuffer.c" void configPortas(); void configInterrupt(); void configPWM(); void incrementarContraste(); void decrementarContraste(); unsigned short lerContraste(); // retorna o armazenado na posio 4 EEPROM void gravarContrasteEEPROM(unsigned short valorContraste); // armazenado na posio 0 EEPROM void verificarAlarmes(unsigned short Sp02,unsigned short Bpm); // Retorna 1 se alarme deve disparar, 0 caso contrrio. void inverterPanel(); void alternarAlarmeTemp(); void alternarAlarmeGeral(); void alternarBeepBPM(); void alternarAlarmeAuto(); void configAlarmePadrao(); void limparCurva(); #include "include/menu.c" void interrupt() { unsigned char RxStatus ; // interrupo USART if ( PIR1.RCIF ) { as.ccbuf[as.endbuf] =RCREG ; as.endbuf++ ;

47

as.endbuf &= (SBUFF_SIZE-1) ; if ( ((as.endbuf+1)&(SBUFF_SIZE-1)) == as.startbuf ) { // Buffer Overflow!... as.startbuf = 0 ; as.endbuf = 0 ; } PIR1.RCIF = 0 ; // limpa a interrupo } //interrupo TMR0 if(INTCON.T0IE == 1 && INTCON.T0IF ==1) { contador++; if (contador%2==0) { isLerCurva=1; } // incrementa contador de tempo do alarme temporarioo if (isAlarmeTemp) { contadorAlarmeTemp++; } else { contadorAlarmeTemp=0; } if (contador%76==0) { // aprox. 1 segundo - atualizao dos dados // e tempo "piscar" do alarme visual isLerDados=1; if ( isAlarmeGeral && (!isAlarmeTemp) ) { if (dispararAlarme) { // dispara o alarme ALARM_OUT=~ALARM_OUT; } else { ALARM_OUT=0; } } else { ALARM_OUT=0; // desliga o alarme } } INTCON.T0IE = 1; INTCON.T0IF =0; } // interrupo externa RB0 if (INTCON.INT0IF == 1) { isMenu=1; INTCON.INT0IF=0; } BEEP_OUT=0; } //interrupt void main() { xi = 61; // posio x0 de inicio do pletismograma configPortas(); // inicializa PWM para o Contraste do LCD configPWM(); valorContraste = lerContraste(); // L e aplica o ultimo valor do Contraste PWM_Change_Duty(valorContraste); T6963C_init(240,64,6,&PORTD,&PORTA,5,1,2,3); panel=0;

48

T6963C_graphics(1) ; T6963C_text(1) ; T6963C_panelFill(0); T6963C_cursor(0); //Desenhando a tela principal no panel 0 T6963C_line(60,0,60,64,T6963C_WHITE); T6963C_write_text("SPO2 %",0,0,T6963C_ROM_MODE_XOR); T6963C_write_text("BPM",0,4,T6963C_ROM_MODE_XOR); T6963C_box(60,64,240,55,T6963C_WHITE); // exbindo icones // offset de 3 pixels entre os cones T6963C_sprite(228,0,icone_beep_on,12,12); // beep ligado por padro T6963C_sprite(216,0,icone_sino,12,12); // alarme ligado no valor padro

//Configuraes de alarme e valores padro configAlarmePadrao(); tempoAlarmeTemp=120; //tempo em que o alarme permanece desabilitado (seg) dispararAlarme=0; isAlarmeTemp=0; isAlarmeGeral=1; isAlarmeAuto=0; isBeep=1; //Carregando o menu na RAM - panel 1 T6963C_setGrPanel(1); T6963C_setTxtPanel(1); T6963C_panelFill(0); //desenhando a janela T6963C_rectangle(5, 5, 230, 58, T6963C_WHITE); T6963C_box(10, 59, 235, 63, T6963C_WHITE); T6963C_box(231, 10, 235, 58, T6963C_WHITE); T6963C_write_text("Ajustar alarmes",1,1, T6963C_ROM_MODE_XOR); T6963C_line(5,17,230,17, T6963C_WHITE); // imprimindo os rtulos T6963C_write_text("SPO2",9,3, T6963C_ROM_MODE_XOR); T6963C_write_text("Maximo:",8,5, T6963C_ROM_MODE_XOR); T6963C_write_text("Minimo:",8,6, T6963C_ROM_MODE_XOR); T6963C_write_text("BPM",26,3, T6963C_ROM_MODE_XOR); T6963C_write_text("Maximo:",24,5, T6963C_ROM_MODE_XOR); T6963C_write_text("Minimo:",24,6, T6963C_ROM_MODE_XOR); // volta a escrever no panel 0 T6963C_setGrPanel(0); T6963C_setTxtPanel(0); // limpa o buffer as.startbuf = 0 ; as.endbuf = 0 ; configInterrupt(); Usart_Init( 9600 ); isMenu = 0; // pr-inicializa as variveis, evitando primeira leitura incorreta ByteLido=0; ByteSync=0; ByteCurva=0x80; ByteMSG=0; ByteSpO2=0xff; ByteBPM=0xff; tempoF2Press=0; tempoF3Press=0; tempoOKPress=0;

49

ultimoValorCurva=34; contadorAlarmeTemp=0; // contador que armazena o tempo do alarme temporrio isContrasteAlterado=0; // nenhuma alterao inicial do contraste while (1) { ByteSync=lerByte(); if(ByteSync==0x10) { ByteLido=lerByte(); if(ByteLido==0x7E){ ByteCurva=lerByte(); ByteLed=lerByte(); ByteMSG=lerByte(); } if(ByteLido==0x21){ BEEP_OUT=(ByteMSG < 0x02) ? 1 : 0; // beep somente se a MSG > 0x02 ByteSpO2=lerByte(); ByteBPM=lerByte(); BEEP_OUT=0; } } // faz as converses necessrias ByteToStr(ByteSpO2,StrSpO2); ByteToStr(ByteBPM,StrBPM); // imprime a mensagem T6963C_write_text( decodificaMSG(ByteMSG) ,11,7,T6963C_ROM_MODE_XOR);

// BOTAO F2 if (BT_F2==0) { tempoF2Press++; if (tempoF2Press==300) { // quando segurar pressionado por muito tempo } } else { if ( ((tempoF2Press!=0) && (tempoF2Press<150)) && isAlarmeGeral ) { // somente alterna alarmTemp se AlarmeGeral on alternarAlarmeTemp(); //quando um simples clique } tempoF2Press=0; } // BOTAO F3 if (BT_F3==0) { tempoF3Press++; // verifica se as 2 teclas esto sendo pressionadas // para o ajuste do Contraste if (BT_UP==0) { incrementarContraste(); isContrasteAlterado=1; } else if (BT_DOWN==0) { decrementarContraste(); isContrasteAlterado=1; } } else { if ( (tempoF3Press!=0) && ( ! isContrasteAlterado) ) { // 'release' do boto alternarBeepBPM(); } else if (isContrasteAlterado) { gravarContrasteEEPROM(valorContraste); } tempoF3Press=0; isContrasteAlterado=0; } // BOTAO OK_AUTO if (BT_OK_AUTO==0) { tempoOKPress++; if (tempoOKPress == 1) { // simples clique

50

alternarAlarmeAuto(); } } else { tempoOKPress=0; } if(isLerCurva) { isLerCurva=0; yf = 18 + ((0.13 * ByteCurva)); T6963C_line(xi,51,xi,18,T6963C_BLACK); //faz a limpeza T6963C_line(xi,ultimoValorCurva,xi,yf,T6963C_WHITE); ultimoValorCurva=yf; if(xi == 240) { xi = 61; } else { xi++; } } if(isLerDados) { isLerDados=0; if (ByteSpO2==0xFF && ByteBPM==0xFF) { // SEM PULSO NORMAL dispararAlarme=0; // desliga o alarme caso BPM e SPO2 ==255 if (isAlarmeAuto) { // desliga o alarme automtico ao retirar sensor alternarAlarmeAuto(); isAlarmeAuto=0; } //limpa a area, caso no haja pulso T6963C_sprite(0, 9, vazio , 20, 20) ; T6963C_sprite(21, 9, vazio , 20, 20) ; T6963C_sprite(41, 9, vazio , 20, 20) ; T6963C_sprite(0, 41, vazio , 20, 20) ; T6963C_sprite(21, 41, vazio , 20, 20) ; T6963C_sprite(41, 41, vazio , 20, 20) ; } else { exibeNumero(0,9,StrSpO2,isPiscarSpO2); exibeNumero(0,41,StrBPM,isPiscarBPM); verificarAlarmes(ByteSpO2,ByteBPM); } } if ( isMenu ) { inverterPanel(); if (panel == 1) { // saindo do menu.. exibirMenu(); inverterPanel(); xi=61; // redesenha a curva, do ponto inicial, invalidando a j existente } isMenu = 0; } // Verifica se o tempo do Alarme Temporario j estourou.. if (isAlarmeTemp) { if (contadorAlarmeTemp > floor(tempoAlarmeTemp/tempoEstouro)) { alternarAlarmeTemp(); } } } //while }// main void configPortas() { // ADCON1 = 0x07; // PORTA digital ADCON1 = 0b00001110; TRISA = 0b10000000; // PORTA sada - RA0: entrada an. monitor bat PORTA = 0; TRISB = 1; // PORTB entrada TRISC = 1; // necessrio para lanar as interrupes USART ao iniciar.

51

TRISE = 0; // saida Beeps PORTE = 0; // Estado inicial PORTE } void configInterrupt() { // T0CON = 0x82; // 0b10000010 16bit PS 1:8, estouro: = 0.0524 seg T0CON = 0b10000000 ; // 0b10000000 16bit PS 1:2, estouro: = 0.0131 seg tempoEstouro = 0.0131; PIE1.RCIE = 1 ; INTCON.GIE = 1 ; INTCON.PEIE = 1 ; INTCON.TMR0IE = 1 ; // interrupo TMR0 INTCON.INT0IE = 1 ; // interrupo RB0 } void configPWM() { TRISC.F2=0; PWM_Init(20000); // frequencia PWM_Start(); valorContraste=0; PWM_Change_Duty(valorContraste); } void incrementarContraste() { if (valorContraste < 255) { valorContraste++; PWM_Change_Duty(valorContraste); // gravarContrasteEEPROM(valorContraste); } } void decrementarContraste() { if (valorContraste > 140) { valorContraste--; PWM_Change_Duty(valorContraste); // gravarContrasteEEPROM(valorContraste); } } unsigned short lerContraste() { return Eeprom_Read(4); } void gravarContrasteEEPROM(unsigned short valorContraste) { Eeprom_Write(4,valorContraste); Delay_ms(20); } void inverterPanel() { panel++; // inverte o panel panel &= 1; T6963C_setGrPanel(panel); T6963C_setTxtPanel(panel); T6963C_displayGrPanel(panel); T6963C_displayTxtPanel(panel); } void verificarAlarmes(unsigned short Sp02,unsigned short Bpm) { // retorna 0 se OK, 1 BPM, unsigned short BPMdisparado, SpO2disparado; if ( (Bpm > valorAlarme[2]) || (Bpm < valorAlarme[3])) { BPMdisparado=1; if (isAlarmeGeral) { // pisca somente se o alarmeGeral estiver ativo isPiscarBPM=~isPiscarBPM; } else { isPiscarBPM=0; } } else { BPMdisparado=0;

52

isPiscarBPM=0; } if ( (Sp02 > valorAlarme[0]) || (Sp02 < valorAlarme[1]) ) { SpO2disparado=1; if (isAlarmeGeral) { isPiscarSpO2=~isPiscarSpO2; } else { isPiscarSpO2=0; } } else { SpO2disparado=0; isPiscarSpO2=0; } if ( BPMdisparado || SpO2disparado ) { dispararAlarme=1; } else { dispararAlarme=0; isPiscarSpO2=0; isPiscarBPM=0; } } void alternarAlarmeGeral() { if(isAlarmeGeral) { T6963C_sprite(216,0,icone_vazio,12,12); isAlarmeGeral=0; } else { T6963C_sprite(216,0,icone_sino,12,12); isAlarmeGeral=1; } } void alternarAlarmeTemp(){ if(isAlarmeTemp) { T6963C_sprite(204,0,icone_vazio,12,12); isAlarmeTemp=0; } else { T6963C_sprite(204,0,icone_relogio,12,12); isAlarmeTemp=1; } } void alternarBeepBPM() { if(isBeep) { T6963C_sprite(228,0,icone_beep_off,12,12); isBeep=0; TRISE.F0 = 1; //torna a porta como ENTRADA, desabilitando o alarme } else { T6963C_sprite(228,0,icone_beep_on,12,12); isBeep=1; TRISE.F0 = 0; // torna novamente como saida } } void alternarAlarmeAuto() { unsigned short offsetSpO2, offsetBPM; offsetSpO2 = 5; offsetBPM = 5; if(isAlarmeAuto) { T6963C_sprite(174,0,icone_vazio30,30,12); // configAlarmePadrao(); // volta as configuraes padro de alarme isAlarmeAuto=0; } else if (ByteSpO2 != 0xFF) { // no permite setar alarme automtico com ausencia de pulso T6963C_sprite(174,0,icone_alarme_auto,30,12); isAlarmeAuto=1;

53

valorAlarme[0] valorAlarme[1] valorAlarme[2] valorAlarme[3] } }

= = = =

(ByteSpO2 < (100-offsetSpO2) ) ? ByteSpO2+offsetSpO2 : 100; ByteSpO2-offsetSpO2; //SpO2Baixo ByteBPM+offsetBPM; //BPMAlto ByteBPM-offsetBPM; //BPMBaixo

//SpO2Alto

//Configuraes de alarme e valores padro void configAlarmePadrao() { valorAlarme[0] = 100; // Sp02 alto Delay_ms(20); valorAlarme[1] = 85; // Sp02 baixo Delay_ms(20); valorAlarme[2] = 150; // BPM alto Delay_ms(20); valorAlarme[3] = 40; // BPM baixo Delay_ms(20); }

54

GLOSSRIO

Capacitncia Capacitor Chip

a grandeza eltrica de um capacitor, determinada pela quantidade de energia eltrica que pode ser armazenada. um componente que armazena energia num campo eltrico, construdos com placas condutoras separadas por elementos isolantes. Dispositivo microeletrnico que consiste de muitos componentes interligados capazes de desempenhar muitas funes. Suas dimenses so extremamente reduzidas. Tambm conhecido como Circuito Integrado. um grfico que ilustra os batimentos cardacos (sstole e distole). Documento relativo a um componente eletrnico, representando uma Folha de Dados com especificaes e dados tcnicos. um dispositivo ou componente eletrnico composto de cristal semicondutor de silcio ou germnio numa pelcula cristalina cujas faces opostas so dopadas por diferentes gases durante sua formao. Dispositivo para apresentar informaes, de modo visual, cuja entrada fornecida por sinais eltricos. o procedimento que consiste no provimento de informao a uma pessoa sobre o desempenho, conduta ou eventualidade executada por ela, e objetiva reorientar e/ou estimular aes determinadas, executadas anteriormente. uma representao hipottica de um fio que no apresenta resistncia eltrica. Componente eletrnico sensvel luz. Conjunto de componentes eletrnicos, circuitos integrados e placas. uma substncia que circula no sangue dentro dos glbulos vermelhos. uma relao emprica que, na ptica, relaciona a absoro de luz com as propriedades do material atravessado por esta. Destinado a medir e avaliar grandezas eltricas, um instrumento que pode ter mostrador analgico (de ponteiro) ou digital. Em fsica, uma onda uma perturbao oscilante de alguma grandeza fsica no espao e peridica no tempo um pulso energtico. um instrumento de medida eletrnico que cria um grfico bi-dimensional visvel de uma ou mais diferenas de potencial. Consiste de uma placa de fenolite, fibra de vidro, fibra de polister, filmes especficos base de diversos polmeros, etc., que possuem a superfcie coberta numa ou nas duas faces por uma pelcula de cobre, prata, ou ligas

Curva Pletismogrfica Datasheet Diodo

Display Feedback

Fios Ideais Fotodiodo Hardware Hemoglobina Lei Beer-Lambert Multmetro Onda Osciloscpio

Placa de Circuito

55

Impresso

base de ouro, nquel entre outras, nas quais so desenhadas pistas condutoras que representam o circuito onde sero fixados os componentes eletrnicos. So dispositivos, ou circuitos lgicos, que operam um ou mais sinais lgicos de entrada para produzir uma e somente uma sada, dependente da funo implementada no circuito. So geralmente usadas em circuitos eletrnicos, baseadas na Lgica Matemtica ou Lgica de Boole. Compartimento que abriga o sensor utilizado no Oxmetro de Pulso. uma placa que forma uma matriz de contatos, com milhares de furos e conexes condutoras de corrente eltrica, utilizada para montagem de circuitos eltricos experimentais. um produto que ainda no foi comercializado, mas est em fase de testes ou de planejamento. a capacidade de um corpo qualquer se opor passagem de corrente eltrica pelo mesmo, quando existe uma diferena de potencial aplicada. Dispositivo eltrico muito utilizado em eletrnica, com a finalidade de transformar energia eltrica em energia trmica, a partir do material empregado, que pode ser carbono. Dispositivo que recebe e responde a um estmulo ou um sinal. Programa de Computador, seqncias de instrues a serem executadas por um computador ou mquina semelhante. uma mistura de compostos que se apresenta de forma homognea. a substncia de minoritria numa soluo ou, em geral, a substncia de interesse. Pequeno pino de metal condutor eltrico, que prov conexo aos circuitos integrados aos outros componentes de um circuito. Dispositivo destinado a transmitir energia eltrica ou potncia eltrica de um circuito a outro, transformando tenses, correntes. Operam sobre o princpio da induo eletromagntica. um dispositivo, uma mquina ou um produto dotado de um microprocessador e outros componentes, capaz de realizar clculos e executar operaes pr-programadas. a percentagem de saturao de oxignio no sangue. o Fluxo de Trabalho, ou seja, a seqncia de passos necessrios para que se possa atingir a automao de um processo.

Portas Lgicas

Probe Protoboard

Prottipo Resistncia Resistor

Sensor Software Soluo Soluto Terminal (pino) Transformador

Unidade Computadorizada Valor de SpO2 Workflow

56

Universidade Estadual de Maring Departamento de Informtica Curso de Engenharia de Produo Av. Colombo 5790, Maring-PR CEP 87020-900 Tel: (044) 3261-4196 / Fax: (044) 3261-5874