Você está na página 1de 13

"Um estetoscpio digital que pode amplificar, reproduzir e gravar sinais cardacos em tempo

real."

O objetivo deste projeto foi projetar e implementar um estetoscpio digital para servir de
plataforma para potenciais aplicaes de diagnstico assistido por computador (CAD) para a
deteco de sopros cardacos. O sistema usa um sensor personalizado para capturar sons
cardacos a 8 kHz e os converte em sinais eltricos para serem processados por um
microcontrolador ATmega644. Os sinais capturados so emitidos atravs de modulao de
largura de pulso para um soquete de udio padro de 3,5 mm para auscultao em tempo real.
Alm disso, o estetoscpio usa um chip de memria externa de 1 MB para gravar e reproduzir
formas de onda de udio. Para a interface do usurio, o sistema inclui um display LCD de 4
linhas de 20 caracteres de largura e um teclado de 16 botes. Dados em tempo real e gravados
tambm podem ser visualizados usando uma interface MATLAB que roda em um PC separado e
se conecta ao sistema de estetoscpio via interface USART no microcontrolador. A interface
MATLAB tambm usa os dados transmitidos para calcular e exibir a freqncia cardaca mdia
do paciente em batimentos por minuto.

Este projeto pretende fornecer uma estrutura para o desenvolvimento de ferramentas de CAD
embutidas teis para a deteco de murmrio cardaco. Os sopros cardacos podem passar
despercebidos durante os exames de rotina, uma vez que a deteco depende do treinamento dos
mdicos, da qualidade do equipamento utilizado e da gravidade da condio. Um estetoscpio
digital pode ser usado para auxiliar mdicos na anlise de sinais cardacos em tempo real durante
a ausculta para reduzir os riscos de no detectar certas condies.
Desenho de Alto Nvel

Viso geral

A arquitetura geral do sistema centrada no microcontrolador ATmega644. O sensor acstico e o


teclado so entradas para o MCU, enquanto o LCD, fones de ouvido e ferramenta de
visualizao MATLAB so sadas. A comunicao com a memria Flash bidirecional. A Figura
2 mostra uma viso geral do projeto de alto nvel do sistema.

Figura 2. Desenho de alto nvel do sistema

O MCU executa vrias interfaces de software para suportar as vrias caractersticas do


estetoscpio digital. A interface de captura de sinal utiliza o conversor analgico-digital para
amostrar o sensor acstico a 8 kHz. O mdulo de processamento de udio em tempo real
modifica o sinal medido com base nas configuraes do usurio e o transmite entrada de udio
de 3,5 mm por meio de modulao de largura de pulso. A interface de usurio suporta a deteco
e desbunha de pressionamentos de boto do teclado, bem como controla o display LCD para
refletir o estado atual do sistema. Alm disso, a interface do usurio tambm fornece dados em
tempo real ou gravados em 100 Hz para um utilitrio MATLAB executado em um PC separado
para visualizao de sinal e clculos de freqncia cardaca mdia. A interface Flash inclui uma
biblioteca de software para comunicao SPI para ler e gravar dados no chip de memria flash
externo.
Design e Implementao de Hardware

Estetoscpio Sensor Acstico

O sensor acstico do estetoscpio era um componente de hardware integral do sistema. A


qualidade do sensor afeta diretamente a qualidade da sada de udio em tempo real, bem como
todas as anlises realizadas nas formas de onda medidas. Devido a isso, um sensor personalizado
foi projetado e desenvolvido para capturar sinais cardacos. O sensor inclui um pedao padro de
estetoscpio para amplificar sinais acsticos e um microfone condensador de eletreto para
converter os sinais amplificados em formas de onda eltricas. Um microfone com uma faixa de
freqncia de 20 Hz a 20 kHz foi selecionado para capturar todas as freqncias baixas
caractersticas dos sons internos do corpo. O microfone foi colocado dentro de uma tubulao de
borracha o mais prximo possvel da base da pea de peito. A fim de reduzir o rudo e melhorar a
convenincia, um cabo blindado de 3,5 mm foi soldado para os fios do microfone e puxado
atravs da tubulao de borracha para interface com o MCU. A Figura 3 ilustra uma imagem do
sensor de estetoscpio construdo.

Figura 3. Sensor acstico do estetoscpio

A construo do sensor foi testada usando um multmetro para detectar shorts e verificar se as
conexes apropriadas foram feitas. A capacidade de deteco real do componente foi testada
utilizando o circuito de polarizao / amplificador descrito na prxima seco.
Circuito de Bias e Amplificador de Microfone

O microfone no sensor acstico precisava ser polarizado para o bom funcionamento. Alm disso,
a sada do microfone da ordem dos milivolts, que relativamente pequena em magnitude
comparada com a preciso do ADC que faz a amostragem do sensor (o ADC tem uma preciso
de aproximadamente 20 mV quando se tomam amostras de 8 bits). Isto torna difcil para o
microcontrolador detectar alteraes na sada do sensor. A fim de abordar estas duas questes,
um circuito de polarizao e amplificador foi projetado e implementado para interface da sada
do sensor bruto com o MCU. O objetivo do circuito era polarizar corretamente o microfone e
amplificar a sada do sensor para detectar oscilaes de tenso causadas por sons. A figura abaixo
mostra um esquema do circuito concludo.

Figura 4. Circuito de Bias e Amplificador de Microfone

A faixa de operao tpica para o microfone era de 2 V, com uma classificao mxima de 10 V.
A MCU forneceu uma tenso de 5 V, de modo que um simples circuito divisor de tenso com
resistncias idnticas de 1k foi usado para reduzir a tenso a 2,5 V para polarizar o microfone. A
sada do microfone foi passada atravs de um capacitor para remover o offset DC. O capacitor
usado era grande o suficiente para garantir que as baixas freqncias desejadas no fossem
filtradas. Com dois resistores de 1k em paralelo com a sada do microfone, a impedncia de sada
equivalente do sensor de aproximadamente 400 ohms. Usando um capacitor de 10 uF, foi
projetado um filtro passa-alta simples com uma frequncia de corte de cerca de 40 Hz, que est
abaixo da maioria das baixas frequncias de interesse.
O sinal AC-acoplado foi conectado entrada positiva (Vin +) de um amplificador operacional
para aumentar a amplitude do sinal. Como o ADC do microcontrolador mede tenses entre 0 e 5
V, a linha Vin + do amplificador operacional foi polarizada para 2,5 V para capturar a maior
magnitude de oscilaes positiva e negativa da sada do microfone. Esta polarizao foi
implementada com outro circuito divisor de tenso usando resistores idnticos de 20k. Os valores
destas resistncias foram escolhidos para serem maiores do que as resistncias no divisor de
tenso anterior de modo a evitar afetar a impedncia de sada equivalente da fase anterior.

Para a amplificao do sinal, utilizou-se uma configurao op-amp no-inversora. O ganho do


circuito definido pela seguinte equao:

As resistncias foram selecionadas para obter um ganho ideal de 150 para freqncias entre a
faixa de 20 Hz e 2 kHz. O ganho foi selecionado com base na restrio de 300 kHz do produto
de largura de banda de ganho do op-amp. * Nota: o resistor R6 foi implementado em hardware
como um resistor varivel (10k trimpot), a fim de permitir a prototipagem mais conveniente e
testes. Um capacitor foi adicionado em srie com a resistncia R6 no loop de realimentao op-
amp para criar um sistema com ganho unitrio para entradas de tenso DC. O ganho unitrio na
DC importante para evitar a amplificao da polarizao de 2,5 V no n Vin +. Sem este
capacitor adicional, a sada do amplificador saturaria a 5 V quando o microfone no detectou
nenhum som. Um condensador de 10 uF foi seleccionado para C1 de modo a conseguir um corte
de filtro de passagem elevada de aproximadamente 2 Hz, que est prximo de DC para passar
todos os sinais no CC. Por outro lado, um capacitor de 500 pF foi selecionado para C5 em
paralelo com um resistor 1M para criar um filtro passa-baixa com uma freqncia de corte de
aproximadamente 300 Hz. Com todas essas realizaes de filtro de hardware bsico, a faixa de
freqncia efetiva do sinal de sada filtrado est entre 40 - 300 Hz.

Para estabilidade, foram adicionados condensadores de desacoplamento de 0,1 uF em paralelo


aos ns Vcc e Gnd do op-amp. E para proteger o pino ADC no MCU, diodos de proteo e um
resistor de 10k srie foram adicionados ao circuito.

O circuito do amplificador foi cuidadosamente testado depois de ter sido construdo na placa.
Um gerador de funo foi conectado entrada do circuito e as freqncias foram varridas
manualmente para testar e verificar a resposta de freqncia do circuito. A seguinte tabela e
grfico mostra a resposta de freqncia medida do circuito do microfone:
Os dados medidos mostram que h aproximadamente uma queda de 3dB no ganho na frequncia
de corte de 300 Hz. Isto mostra que a implementao do filtro de passagem baixa atenua
adequadamente os sinais de alta frequncia. Depois de verificar que a resposta de freqncia do
circuito era como esperado, o sensor acstico foi testado conectando-o entrada do circuito de
polarizao / amplificador.
Conversor Digital-para-Analgico

Para produzir a forma de onda de udio em tempo real ou gravada para um fone de ouvido / alto-
falante, foi implementado um simples conversor digital-analgico na forma de um filtro passa-
baixo RC. Este circuito calcula em mdia um sinal de entrada modulado em largura de pulso
alm de atenuar o contedo de alta freqncia. A Figura 6 mostra um esquema do circuito DAC.

Figura 6. Circuito Digital-para-Analgico para Sada de udio

A constante de tempo RC do filtro foi projetada para atenuar freqncias maiores que
aproximadamente 210 Hz. Esta freqncia de corte est abaixo da faixa de freqncia do sinal de
entrada para a MCU. O circuito foi projetado desta forma para reduzir o rudo de alta freqncia
introduzido no sinal na sada PWM. Um valor de resistor relativamente pequeno foi escolhido
para o circuito a fim de interface com fones de impedncia de entrada baixa.

O circuito foi testado e validado usando o sensor estetoscpio eo circuito amplificador aps o
software para capturar a sada do estetoscpio e gerar o sinal PWM foi desenvolvido. A figura
abaixo mostra o sinal PWM e o correspondente sinal analgico capturado em um osciloscpio.
Memria flash

Um chip de memria flash de 1MB foi adquirido para fornecer a capacidade de armazenar at 10
formas de onda cardaca para futura reproduo e anlise. Uma vez que o chip requer uma tenso
de alimentao entre 2,7 V e 3,6 V, foi utilizado um regulador de potncia para converter a
alimentao de 5 V alimentando o resto do circuito para uma fonte estvel de 3,3 V para a
memria. O microcontrolador se comunicava com o chip Flash atravs de uma interface
perifrica serial (SPI), com o MCU como mestre eo chip Flash como dispositivo escravo. O
barramento SPI especifica quatro linhas lgicas: serial clock (SCLK), master output (MOSI),
master input (MISO) e slave select (SS). As linhas SCLK, MOSI e SS so emitidas pela MCU e,
portanto, requerem deslocamento de nvel de 5 V para aproximadamente 3,3 V. A linha MISO
emitida pela memria Flash e no requer qualquer traduo de tenso para interface com a MCU.
Isso ocorre porque a sada de 3,3 V da memria est dentro do limite inferior para detectar uma
entrada de alta tenso no pino de E / S. A Figura 7 ilustra um esquema do circuito de memria
flash.

Figura 7. Circuitos de Memria Flash e Reguladores de Tenso

A traduo de tenso foi implementada usando divisores resistivos simples. Os valores das
resistncias foram selecionados para serem pequenos para reduzir a constante de tempo RC da
translao. Isto era necessrio para limpar de forma limpa o sinal de relgio de alta freqncia
sem distoro.

Para testar a funcionalidade de leitura da memria Flash, um segmento curto de cdigo foi
escrito para enviar um comando do microcontrolador para ler o ID do fabricante da memria.
Para testar as funcionalidades de apagar e gravar, um apagamento de setor seguido de um
comando de escrita de pgina foram enviados ao chip para armazenar dados. Foi ento emitido
um comando de leitura de dados para verificar se o contedo da memria estava correto.

Teclado e LCD

Um teclado de 16 botes e um display de LCD de 4 linhas de 20 caracteres foram usados para a


interface de usurio principal do sistema. Os dois componentes foram conectados diretamente
aos pinos de E / S no microcontrolador e no precisaram de nenhum circuito de hardware extra
para operao.

O software global para o projeto consistia de cdigo embutido executando no microcontrolador


Atmega644 e uma ferramenta de visualizao MATLAB em um PC.

ATmega644 Microcontrolador

O microcontrolador serviu como componente central do sistema. O software executado no


microcontrolador foi responsvel pela amostragem da sada do sensor do estetoscpio, gerando
um sinal PWM para reproduo de udio, ajustando o volume da sada de udio, armazenando os
dados adquiridos na memria Flash para reproduo posterior e transmitindo dados para a
ferramenta de visualizao MATLAB. A Figura 8 mostra uma viso geral da arquitetura do
sistema de software.

Figura 8. Viso geral de alto nvel do software do sistema


Aquisio de sinal

O mdulo ADC foi usado para converter o sinal eltrico analgico da sada do circuito do sensor
em um sinal digital que o microcontrolador pode processar. A referncia de tenso para o mdulo
ADC foi ajustada para 5 V. O relgio do sistema a 16 MHz foi dividido por 32 para conduzir o
ADC a uma frequncia de 500 kHz. O Timer 1 Capture ISR foi usado para amostrar o ADC em 8
kHz com preciso de 8 bits. Embora o contedo de freqncia da maioria dos sons internos do
corpo seja relativamente baixo (<300 Hz), uma taxa de amostragem maior foi usada para
melhorar a qualidade de udio do sinal adquirido. * Nota: a taxa de amostragem mnima
necessria para reconstruir um sinal de 300 Hz sem aliasing de 600 Hz com base no teorema de
amostragem de Nyquist. Dentro do ISR, os dados amostrados so ento dimensionados com base
nas configuraes de volume atuais e gravados em um buffer flash na MCU se o sistema estiver
no modo de captura.

Gerao de formas de onda PWM e transferncia serial de dados

As formas de onda cardacas foram reproduzidas em tempo real e a partir de gravaes anteriores
gerando um sinal PWM utilizando os dados amostrados a partir do ADC. Uma sada PWM de
62,5 kHz foi produzida usando o Timer 2. A magnitude da sada atualizada dentro do Timer 1
Capture ISR na mesma taxa de amostragem de 8 kHz com base nos dados amostrados ou
gravados. Alm de fornecer os dados de udio para fones de ouvido / alto-falantes, os dados
tambm so transmitidos para uma ferramenta de visualizao MATLAB atravs do mdulo
USART a 100 Hz. Como a tarefa de transferncia serial no crtica, os dados so gravados
somente em um buffer de transferncia serial dentro do Timer 1 ISR. A transmisso real dos
dados usando o USART realizada dentro do loop principal com base nos tempos do sistema e
da tarefa atualizados usando o timer 0 Compare ISR.

Operaes em Flash

A interface de software com o chip de memria Flash utilizou o mdulo de hardware SPI no
microcontrolador. Para enviar um comando via SPI, a linha de seleo de escravos foi ativada
pela primeira vez. Os dados de transmisso desejados foram ento escritos para o registo de
dados SPI, que emite o sinal de relgio na linha SCLK e desloca os bits de dados (MSB
primeiro) para fora para a linha MOSI. Depois de enviar todos os bytes de dados, a linha de
seleo de slave foi desativada para executar o comando na memria. * Nota: a comunicao SPI
full-duplex. medida que cada bit deslocado para fora na linha MOSI, um novo bit
deslocado para dentro da linha MISO. Devido a isso, dados falsos podem ser enviados do mestre
para receber dados do escravo. A tabela abaixo lista os principais comandos do Flash usados para
ler, apagar e gravar dados no chip.
Escrever Dados Adquiridos

Para minimizar a sobrecarga de comunicao SPI, os dados de sinal capturados so primeiro


gravados em um buffer de gravao Flash no timer 1 ISR. Um comando de programa de pgina
SPI enviado somente aps 256 bytes de dados foram coletados no buffer. Cada gravao de
udio alocado 64KB de memria, o que corresponde a aproximadamente 8 segundos de
gravao de dados quando a amostragem em 8 kHz. Este tamanho foi escolhido de modo a
ajustar todos os dados dentro de um nico bloco.

Leitura de dados gravados

Para reproduzir os dados gravados, necessrio ler os dados da memria Flash. Isso feito uma
pgina de cada vez usando dois Flash l buffers no MCU. Inicialmente, os dados de reproduo
so inicializados lendo duas pginas de dados e armazenando-as nos buffers de leitura. Os dados
nos buffers so ento emitidos a 8 kHz usando o PWM. Depois que uma pgina cheia de dados
foi emitida para os fones de ouvido, o segundo buffer usado para continuar a operao. Quando
o buffer alterna, um comando de leitura Flash emitido para preencher novamente o buffer
original. Esse processo continua at que todos os 64KB de dados tenham sido lidos da memria e
enviados para os fones de ouvido.

Gerenciando dados de gravao

O sistema de estetoscpio digital suporta poupana de at 10 gravaes de forma de onda


diferentes. A cada gravao atribudo um ID entre 0 e 9. Cada gravao tambm alocada um
bloco separado de 64KB de memria Flash. Um local especial de 16 bits na memria Flash
interpretado como um registro de status de gravao, que indica quais gravaes so vlidas e
armazenadas na memria. Isto feito atravs de um esquema de codificao de um nico quente
onde o ID de gravao corresponde posio de bit no registo. Por exemplo, se o bit 3 no registo
de registo estiver definido para 1, ento isso significa que a gravao 3 armazenada na
memria Flash no seu endereo de bloco especfico. Se o valor do bit for definido como 0, a
gravao no ser armazenada na memria.

Ao inicializar o sistema no power-up, o MCU l um endereo especial de memria de


"assinatura" para identificar se a assinatura do projeto foi gravada no chip. A assinatura indica
que a memria Flash foi devidamente formatada e os dados no registo de estado de gravao so
vlidos. Se a assinatura no for encontrada, o chip apagado e o registro de status de gravao
programado para ter um valor de 0x0000, o que indica que nenhum dado de gravao
armazenado no chip.

Operao do teclado e do LCD

A interface de usurio principal para controlar o microcontrolador consistia no teclado e no


display LCD. O teclado foi usado para alternar entre vrios modos de operao para gravar ondas
cardacas, reproduzi-las e ajustar as configuraes de volume. O LCD foi usado para exibir
instrues e ver visualmente que o sistema estava ajustando parmetros e alternando entre os
modos de operao como esperado. O software do microcontrolador foi, assim, responsvel pela
operao destes dois componentes de hardware, verificando periodicamente o estado do teclado,
desativando pressionamentos de boto e atualizando as mensagens exibidas no LCD.

Quando um boto no teclado pressionado, dois dos oito pinos ficam em curto. Um pedao de
cdigo que coletou os valores de cada um dos pinos em um nico nmero e mapeou o resultado
para um nmero entre 1 e 16 foi fornecido. Este valor correspondeu ao ndice do boto na matriz
4x4 de botes. Por exemplo, o boto A foi mapeado para um valor numrico de 4. Este valor
(butnum) foi usado na mquina de estado de desalinhamento para o sistema (veja a Figura 3). Se
o valor for diferente de zero, o sistema saltar do padro RELEASED_STATE para o
MAYBE_PUSH_STATE. Se o mesmo boto ainda for pressionado (eo valor de butnum no for
zero), o sistema salta para PUSHED_STATE. Se o mesmo boto for liberado, o sistema ir para o
MAYBE_REL_STATE antes de saltar para o RELEASED_STATE e definir uma tag para indicar
que um boto foi pressionado e liberado. A verificao do boto e o cdigo de desacordo so
executados a cada 30 ms. O valor de butnum foi mapeado para os valores numricos reais 0-9 se
um desses botes foi pressionado. Os botes correspondentes ao asterisco (*), smbolo de libra
(#) e as letras foram mapeados para 11-15 na respectiva ordem. Esses mapeamentos foram
armazenados no nmero de chave da varivel global e foram usados para avaliar as aes dos
botes. A Figura 9 abaixo demonstra a mquina de estado usada para desbancar uma imprensa de
boto.

Você também pode gostar