• Nenhum resultado encontrado

O 2 oxigênio

M- P mão-pé

5.2 Aquisição dos dados

5.2.4 Hardware e Software de Aquisição

5.2.4.1 Timer

Os timers, ou contadores, são componentes de hardware disponíveis no microcontrolador do Arduino e que podem ser utilizados para gerenciar eventos de tempo. Eles são controlados através de registradores especiais, que são utilizados para definir de quanto em quanto tempo os contadores gerarão uma interrupção do sistema. Ao receber a interrupção, o microcontrolador, desvia sua execução para uma rotina de tratamento de interrupção, que neste caso é um código que efetua a leitura das entradas advindas dos conversores AnD do microcontrolador, ou seja, realiza a leitura dos dois sensores.

O microcontrolador ATmega 2560 utilizado neste projeto possui 6 timers, O timer0 e o timer2são contadores de 8bit, enquanto o timer1, timer3, timer4 e o timer5 são contadores de 16bits. Todos os timers dependem da frequência de clock do sistema do Arduino, que neste caso é de 16 MHz (ATMEL, 2014). O contador utilizado pelo dispositivo implementado é o timer2. A seguir, estão descritos alguns dos registradores especiais para a programação dos timerse a Figura 5.6 mostra um exemplo de configuração do timer2 para gerar interrupções a uma frequência de 500 Hz:

 TCCRx - Timer/Counter Control Register (A e B): Utilizado para configurar o

prescaler (fator de redução da frequência de clock) e o Modo de Operação.

 TCNTx - Timer/Counter Register: Armazena o valor do contador.

 OCRx - Output Compare Register: Armazena o valor de comparação do contador ara

5.2. AQUISIÇÃO DOS DADOS 59

 TIMSKx - Timer/Counter Interrupt Mask Register: Utilizado para habilitar e desabi-

litar as interrupções de tempo.

Figura 5.6: Configuração do Timer2 do ATmega2560 para gerar interrupções a cada 2ms (500Hz)

Na primeira etapa do projeto, o equipamento foi utilizado apenas como dispositivo de aquisição de sinais de PPG e envio dos mesmos para um PC, de forma a poder validar os algoritmos de processamento e análise das curvas fotopletismográficas implementados em software. Na etapa seguinte, estes algoritmos foram embarcados em hardware.

5.2.4.2 Interface de Software

Para recebe os dados do Arduino, um software, escrito na linguagem e plataforma de desenvolvimento Processing (PROCESSING, 2017), roda no PC, com sistema operacional Windows®. O software, baseado no código disponibilizado livremente por World Famous Electronics llc. (PULSE SENSOR, 2017), que exibe as duas curvas PPG na tela do computador, foi adaptado para efetuar a gravação das mesmas em arquivo. A Figura 5.7 mostra o sistema em funcionamento para a captura de dados PPG em um sensor e destaca a interface do programa rodando no PC.

5.2.4.3 Protocolo de Comunicação

A comunicação entre o microcontrolador e o PC ocorre apenas na direção microcontrolador- PC. Para gerenciar essa comunicação, foi implementado um protocolo simples de comunicação, que visa separar os fluxos de dados de cada um dos dois sensores e possibilitar a gravação de ambos em arquivos separados, permitindo que sejam processados independentemente.

Primeiramente o microcontrolador lê, em sequência, as duas entradas onde estão conec- tados os canais advindos dos sensores, e empacota o dado lido de cada canal (um inteiro de 10 bits), com um cabeçalho, formado por um caráter (char) que identifica a qual dos sensores pertence aquele dado. Esse par de pacotes é armazenado em um buffer de 2 × N posições, onde N> 1. Quando o buffer está cheio, ele é enviado para o PC.

Para iniciar a comunicação, um pacote que indica o início da transmissão de dados é enviado, fazendo o programa no PC entrar no estado de pronto para recebimento. A partir de então, um par de pacotes com os dados dos dois sensores é transmitido utilizando-se o protocolo de comunicação Serial, implementado pela plataforma Arduino, a um baud rate de 115200 bits/s. O baud rate é alto o suficiente para permitir a transmissão dos dados gerados até por altas taxas de amostragem do sensor (maiores que 500 Hz).

5.2. AQUISIÇÃO DOS DADOS 60

Figura 5.7: Sistema para Aquisição de Dados

(a) Sistema em uso para aquisição de curva PPG com um sensor

(b) Interface do programa desenvolvido em Pro- cessing, rodando no PC, que exibe e grava os dados advindos dos sensores via comunicação serial

5.3. PRÉ-PROCESSAMENTO 61 Após o envio do conjunto de N pares de pacotes com os dados, um pacote de finalização de transmissão de dados é enviado. Por fim, um pacote de checksum é enviado com a soma de todos os dados transmitidos, para a verificação de integridade desse conjunto de dados por parte do programa do PC. Em seguida, o microcontrolador, inicia o envio de um novo conjunto de dados, repetindo o processo até atingir o tempo programado para capturas (30 s). Nesta versão do sistema, não foi implementado qualquer método de correção de erros, apenas detecção.

5.3 Pré-processamento

Após sua aquisição, os dados passam por uma fase de pré-processamento na qual são submetidos a um filtro e, posteriormente, a um algoritmo de detecção de artefatos como descrito nas seções seguintes.

5.3.1 Aplicação de Filtro

O primeiro tratamento recebido pelos sinais de PPG Butterworth passa faixa de segunda ordem e fase zero. Essa filtragem inicial tem o intuito de atenuar artefatos de movimento e outros ruídos, bem como eliminar frequências indesejadas do sinal. A fase zero, ou seja, a não introdução de fase no sinal, foi alcançada aplicando o filtro no sentido direto e reverso do sinal. A função filtfilt do MATLAB implementa este processo utilizando um filtro previamente projetado. A banda passante do filtro aplicado é de 0,5 Hz a 7 Hz de forma a eliminar, do sinal, o componente DC e as frequências mais baixas relativa a respiração, bem como os ruídos de alta frequência, incluindo a frequência de 60 Hz que pode ter sido incorporada ao sinal devido a rede elétrica.

Apesar de a frequência cardíaca atingir, em recém-nascidos, normalmente um máximo de 180 BPM ou seja, 3 Hz, observou-se, neste trabalho, a partir de uma análise espectral, que existem frequências acima de 3 Hz que compõem a faixa de frequências desejadas do sinal, ou seja, que possui informação útil no formato da onda para a aplicação deste trabalho.

A Figura 5.8 mostra um sinal PPG de um neonato, convertido para domínio da frequência através de uma transformada de Fourier implementada em MATLAB. A partir de sua observa- ção, fica evidente a presença de componentes de frequências abaixo de 0,5 Hz, atribuídas ao funcionamento do sistema nervoso autônomo, incluindo a respiração. Outra faixa com maior potência do sinal, neste caso, está entre 2 e 3 Hz, faixa que corresponde frequência cardíaca média do neonato, no entanto, ainda é possível verificar a presença de sinal em torno dos 5 Hz. A Figura 5.9 compara a mesma onda PPG filtradas com limites superiores de 7 Hz e 4 Hz respectivamente, evidenciando a perda de informação útil ao se aplicar uma frequência de corte superior de 4 Hz.

5.3. PRÉ-PROCESSAMENTO 62

Figura 5.8: Espectro de Amplitude de PPG de um neonato

Figura 5.9: PPG filtrado com frequências de corte de 7 Hz (figura acima) e 4 Hz (figura abaixo). Em destaque características do pulso atenuadas com a filtragem abaixo de 4 Hz.

5.3. PRÉ-PROCESSAMENTO 63 5.3.2 Detecção de Artefatos

A detecção e remoção de artefatos de movimento é uma etapa importante do pré- processamento dos sinais fotopletismográficos, pois eles podem reduzir o desempenho dos algoritmos de detecção pontos de interesse. Desta forma, foi implementado um algoritmo com o objetivo de identificar se um determinado pulso é artefato, para que seja ignorado no posterior cálculo dos índices. Foram considerados artefatos, os pulsos com sinais horizontais imediata- mente anteriores ou posteriores a ele, ou os pulsos cuja amplitude é maior ou menor que limites calculados (thresholds).

O algoritmo de detecção de artefatos implementado neste trabalho foi baseado no algo- ritmo Incremental-Merge Segmentation (IMS) KARLEN; ANSERMINO; DUMONT (2012). Este algoritmo foi escolhido especialmente devido ao fato de que ele foi planejado para ser implementado em dispositivos móveis que utilizam bateria, ou seja, requerendo baixo poder de processamento e portanto baixo consumo de potência.

No IMS, o sinal é analisado de forma incremental sendo dividido em linhas que mais tarde podem ser classificadas como pulsos ou artefatos. O algoritmo define um parâmetro m que é o comprimento de cada segmento do sinal (em número de amostras menos um) que são lidos de forma incremental.

Para cada segmento do sinal lido, sua inclinação é calculada. Segmentos consecutivos onde ambos possuem inclinação com mesmo sinal ou ambos possuem inclinação zero, são agrupados formando uma linha. Cada linhas formadas podem ser crescentes, decrescentes ou horizontais. A Figura 5.10 apresenta um exemplo de saída do algoritmo de segmentação de linha.

Figura 5.10: Exemplo de saída do algoritmo IMS

fonte: KARLEN; ANSERMINO; DUMONT (2012)

Em seguida, é preciso determinar quais dessas linhas representam pulsos normais e quais são artefatos. Para classificar as linhas as mesmas são comparadas com limiares thresholds (THR’s) de amplitude. Esses THR’s são calculados adaptativamente para evitar que o dicrotic notche artefatos sejam considerados pulsos normais. As linhas crescentes que tem amplitude fora do intervalo dos THR’s são considerados artefatos, assim como as linhas crescentes precedidas

5.4. PROCESSAMENTO 64 ou sucedidas por uma linha horizontal (clipping). O intervalo entre batidas do coração também é considerado. Batidas com menos de 50% do intervalo entre batidas anterior válido ou menor que o limite fisiológico de 240 ms (250 batidas por minuto (bpm)) são considerados artefatos.

5.4 Processamento

Após etapas de filtragem e detecção de artefatos, o sinal de PPG entra na fase de processamento onde terá suas características de interesse extraídas.

5.4.1 Primeira Derivada

A detecção dos diversos pontos característicos da onda fotopletismográfica foi realizada através da análise da primeira derivada do sinal. A equação 5.1 é um método de derivação numérica e representa um filtro não causal, ou seja, sua saída (a derivada) depende de entradas futuras do sinal no tempo. Uma das formas de implementar a derivada é utilizar a derivada centrada de três pontos. Como não é possível obter valores futuros no tempo, atrasa-se o sinal em duas amostras. D[n] =dS dt |t=nT= 1 2T(S[n + 1] − S[n − 1]),  5.1 onde S é o sinal de PPG filtrado, T é o intervalo de amostragem que é igual ao inverso da frequência de amostragem (Fs) do sinal S capturado e n é o número da amostra.

Como a derivação aumenta a magnitude de ruídos presentes no sinal original, faz-se necessária a aplicação de um filtro na derivada do sinal(O’HAVER; BEGLEY, 1981). Foi então aplicado um filtro Butterworth passa-baixas com frequência de corte de 7Hz para suavizar a curva. Esta fase de filtragem não está descrita na Figura 5.1.

Documentos relacionados