|
|
É desejada a funcionalidade de poder ajustar automaticamente o ganho dos PGAs de forma a deixar o sinal de saída sem saturação e com uma excursão adequada independentemente do indivíduo cujos batimentos estejam sendo medidos.
|
|
|
|
|
|
Os amplificadores do front-end escolhidos para o projeto - o PGA204 e o PGA205 - são adequados
|
|
|
para esta funcionalidade por já possuírem internamente um circuito digital de seleção de ganhos determinados com interface TTL. Não é difícil, portanto, realizar a interface destes componentes com um microcontrolador, por exemplo, para implementar esta aplicação desejada.
|
|
|
|
|
|
Foi escolhido, para esta finalidade, utilizar o microcontrolador de 8 bits ATMega328, da família dos AVRs. Este microcontrolador é bastante utilizado não só por seus periféricos - que suprem ampla gama de aplicações desejadas - mas também por serem os microcontroladores presentes em boa parte das placas Arduino de 8 bits.
|
|
|
|
|
|
Como as duas placas do ECG devem estar com o mesmo ganho e esse ganho é controlado por 4 pinos
|
|
|
digitais, o microcontrolador irá controlar os ganhos por meio de 4 pinos de IO que estarão conectados aos PGAs das placas do ECG.
|
|
|
|
|
|
A arquitetura do programa foi pensada de forma a atuar como uma máquina de estados. O ganho será
|
|
|
controlado por meio de uma variável global que poderá ser alterada ao longo do código. Toda vez que a função principal for chamada, o ganho será identificado e as saídas - que controlam os ganhos - serão atualizadas, se necessário. O fluxograma do algoritmo é apresentado abaixo:
|
|
|
|
|
|
![Fluxograma](uploads/e070b4dd2fb9b20816166f424b96e185/Fluxograma_main.png)
|
|
|
|
|
|
Além do controle automático de ganho, foi implementada a funcionalidade de poder ajustar o ganho
|
|
|
manualmente, por meio de dois botões. Por meio de interrupções quando eles são acionados, uma
|
|
|
variável global é atualizada e é feito um debounce por software; o controle manual tem precedência sobre o controle automático e, portanto, se o controle automático estiver ativo e o usuário fizer um ajuste manual, o controle automático é desativado e os ganhos são atualizados conforme o ajuste feito pelo usuário.
|
|
|
|
|
|
Foi escolhido como frequência de amostragem 256Hz - que cumpre o Critério de Nyquist -Shannon para o sinal de ECG de largura de banda de 100Hz sendo amostrado, com uma folga. Com a
|
|
|
fonte de clock para o timer sendo 16MHz, são necessárias 62500 contagens para que haja uma execução a cada 1/256 segundos. O fluxograma da amostragem é apresentado abaixo.
|
|
|
|
|
|
![Amostragem](uploads/eb534ad7087f64401f583eca5c9f6cb0/Amostragem.png)
|
|
|
|
|
|
O algoritmo de controle automático de ganho (AGC) utilizado, identifica a diferença entre o valor máximo e mínimo do sinal amostrado e, a partir deste valor, verifica se ele está numa faixa adequada de excursão e realiza o ajuste se necessário. Também é identificado se houve saturações na amostragem e diminui o ganho se necessário. O fluxograma da amostragem é apresentado abaixo.
|
|
|
|
|
|
![AGC](uploads/a496f70a85d7d1cbc23d84f838b63d72/AGC.png)
|
|
|
|
|
|
Os valores de comparação para o ajuste de ganho foram obtidos experimentalmente. Foi visto que
|
|
|
estes eram os níveis mais adequados que conseguiam ajustar para uma excursão de sinal adequada para os valores típicos de um ECG. Eles podem ser facilmente alterados via firmware. |
|
|
\ No newline at end of file |