Índice:

Cardio Data Logger: 7 etapas (com imagens)
Cardio Data Logger: 7 etapas (com imagens)

Vídeo: Cardio Data Logger: 7 etapas (com imagens)

Vídeo: Cardio Data Logger: 7 etapas (com imagens)
Vídeo: Data Logger Basics 2024, Julho
Anonim
Cardio Data Logger
Cardio Data Logger

Embora hoje em dia muitos dispositivos portáteis (smartbands, smartwatches, smartphones, …) estejam disponíveis que podem detectar a frequência cardíaca (HR) e realizar análises de rastreamento, sistemas baseados em cintos torácicos (como aquele na parte superior da imagem) ainda estão muito difundido e utilizado, mas sem a possibilidade de registrar e exportar o traço das medições.

Em meu Cardiosim Instructable anterior, apresentei um simulador de cinta torácica (Cardio) explicando que uma das minhas próximas etapas foi desenvolver um registrador de dados de frequência cardíaca. Agora estou pronto para apresentá-lo neste Instructable. A função desta unidade portátil é receber o sinal de FC enviado por uma cinta torácica (ou o simulador Cardiosim) durante uma sessão de treinamento (treino / ciclismo / corrida, …) e registrar o traçado em um cartão SD, a fim de execute uma análise de desempenho após o treinamento (veja os detalhes no último capítulo).

A unidade é alimentada por um sistema de bateria recarregável, incluindo circuito de carga e regulador DC boost.

Do meu "armazém" de material não utilizado, pesquei uma caixa de plástico adequada (135 mm x 45 mm x 20 mm) e adaptei a ela o layout do circuito para se encaixar, fazendo um protótipo funcional que atende às minhas necessidades (mas cuja realização deixa espaço para melhoria:-))

Etapa 1: Breve descrição

Consulte a Etapa 1 do Cardiosim Instructable para uma introdução rápida sobre a tecnologia LFMC (Low Frequency Magnetic Communication) usada por este tipo de dispositivo.

Minha primeira intenção era usar o módulo Sparkfun RMCM01 como interface de receptor, mas este produto não está mais disponível (muito menos que era muito caro).

Porém, olhando na WEB, achei este Tutorial interessante, que mostra algumas soluções alternativas para substituir o RMCM01. Escolhi a 3ª opção ("Peter Borst Design", obrigado Peter!), Obtendo um excelente resultado utilizando os mesmos componentes L / C do Cardiosim, porém conectados aqui como tanque ressonante paralelo. O sinal detectado é amplificado, "limpo", decodificado e encaminhado para um microcontrolador Arduino Pro Mini. O programa valida os pulsos recebidos, mede a frequência cardíaca (ou melhor, o intervalo entre dois pulsos sucessivos) e armazena todos os intervalos medidos em um arquivo de texto ASCII (uma linha por pulso válido, 16 caracteres cada incluindo intervalo, carimbo de data / hora e LF / CR) no cartão microSD. Assumindo uma FC média de 80bpm, uma hora de gravação precisa apenas (4800 linhas de texto x 16 caracteres) = 76800/1024 = 75kBytes, portanto, mesmo um cartão SD de 1GB barato oferece bastante capacidade de gravação.

Durante a gravação, você pode inserir linhas de marcação para dividir o traço e avaliar separadamente as diferentes fases da sessão.

Etapa 2: Fonte de alimentação LiPo - Esquemas, peças e montagem

Fonte de alimentação LiPo - Esquemas, peças e montagem
Fonte de alimentação LiPo - Esquemas, peças e montagem
Fonte de alimentação LiPo - Esquemas, peças e montagem
Fonte de alimentação LiPo - Esquemas, peças e montagem

A fonte de alimentação ocupa a parte inferior do gabinete. Exceto para o trimpot, nenhum componente excede 7 mm de altura, o que dá espaço para montar o receptor HR e o circuito do microcontrolador acima da fonte de alimentação.

Usei as seguintes peças:

  • Bateria LiPo de 3,7 V (qualquer bateria do telefone pode ser reciclada, capacidade reduzida não é um problema aqui)
  • Módulo de carregamento USB TP4056, comprei aqui
  • SX1308 conversor DC boost, comprei aqui
  • Pequena placa de prototipagem 40 x 30 mm
  • Cabo com conector JST 2, pino de 54 mm 2, como este
  • (opcional) Conector JST de 2 mm 2 pinos, como este
  • (opcional) Cabo com conector JST de 2 mm 2 pinos, como este

O uso dos dois últimos itens depende da bateria que você usará e da forma como pretende conectá-la ao módulo carregador. Sugiro o conector JST de 2mm porque muitas baterias são entregues com cabo e plugue de 2mm já conectado, qualquer outra solução é adequada desde que permita uma fácil troca da bateria se necessário. Em qualquer caso, tome cuidado para evitar curto-circuitos entre os pólos da bateria durante a montagem.

O módulo TP4056 é alimentado por uma porta micro USB e é projetado para carregar baterias de lítio recarregáveis usando o método de carregamento de corrente constante / voltagem constante (CC / CV). Além de carregar com segurança uma bateria de lítio, o módulo também fornece a proteção necessária exigida pelas baterias de lítio.

O SX1308 é um conversor DC / DC ajustável de alta eficiência que mantém a tensão de saída constante em + 5V com uma tensão de entrada mínima de 3V, permitindo assim o aproveitamento completo da capacidade da bateria. Ajuste a tensão de saída com o trimpot em + 5V antes de conectar o circuito do microcontrolador!

O consumo total do Data Logger é de cerca de 20mA, portanto, mesmo uma bateria usada com capacidade residual de 200mAh (<20% da capacidade inicial de uma bateria de celular nova) permitirá 10 horas de gravação. A única desvantagem é que a corrente quiescente do SX1308 é em torno de 2mA, então é melhor você desconectar a bateria se não usar o Data Logger por um longo tempo.

Devido ao pequeno tamanho, ambos os módulos precisam ser fixados utilizando os furos de conexão tanto para conexão elétrica quanto mecânica com a placa de prototipagem, através de pequenos pedaços de fio de cobre. Por sua vez a placa é fixada na base da caixa com um parafuso de 3mm x 15mm (o comprimento é suficiente para prender o circuito do microcontrolador acima com o mesmo parafuso). A placa hospeda o conector JST 2mm para a bateria (disponível apenas na versão SMD, mas dobrando os pinos verticalmente você pode "girar" na versão PTH) e todas as fiações de acordo com o esquema. Só para ter certeza, colei o corpo do conector na placa obtendo uma boa vedação mecânica.

A bateria é colocada plana na área restante da parte inferior da caixa e atrás dela há um segundo parafuso de 3 mm x 15 mm com um espaçador vertical de 8 mm para evitar contatos entre a parte superior da bateria (que de qualquer forma é isolada) e a parte inferior do circuito superior.

Etapa 3: Receptor de RH e registrador de dados - esquemas, peças e montagem

Receptor de RH e registrador de dados - esquemas, peças e montagem
Receptor de RH e registrador de dados - esquemas, peças e montagem
Receptor de RH e registrador de dados - esquemas, peças e montagem
Receptor de RH e registrador de dados - esquemas, peças e montagem
Receptor de RH e registrador de dados - esquemas, peças e montagem
Receptor de RH e registrador de dados - esquemas, peças e montagem

A placa principal consiste em:

  • Placa de prototipagem 40mm x 120mm
  • Indutância 39mH, usei BOURNS RLB0913-393K
  • 2 x capacitor 22nF
  • Capacitor 4.7nF
  • Capacitor 47nF
  • Capacitor 39pF
  • Capacitor eletrolítico 10uF / 25V
  • Capacitor eletrolítico 1uF / 50V
  • 3 x resistor 10K
  • 2 x resistor 100K
  • 3 x resistor 1K
  • 4 x resistor 220R
  • Resistor 1M
  • Resistor 47K
  • Resistor 22K
  • Trimpot 50K
  • Diodo 1N4148
  • LED 3mm azul
  • 2 x LED 3 mm verde
  • LED 3mm amarelo
  • LED 3mm vermelho
  • Amplificadores operacionais de entrada JFET duplos de baixo ruído TL072P
  • Hex Inverting Schmitt Trrigger 74HC14
  • Conector JST 2,54 mm 2 pinos, como este
  • 2 x microinterruptores, tipo Alcoswitch
  • Microcontrolador Arduino Pro Mini, 16 MHz 5V
  • Módulo de cartão Micro SD SPI 5V da DFRobots

A frequência de ressonância do tanque ressonante paralelo composto por L1 e C1 é em torno de 5,4 kHz, o que corresponde perto o suficiente dos 5,3 kHz da portadora do campo magnético do sinal transmitido para convertê-lo em tensão. Lembre-se que, na maioria dos casos, a portadora é modulada na base de um formato simples OOK (On-OFF Keying), onde cada pulso do coração muda a portadora para "ON" por cerca de 10ms. O sinal detectado é muito fraco (tipicamente uma onda senoidal de 1mV a uma distância de 60-80cm da fonte, desde que o eixo da indutância esteja devidamente alinhado com o campo magnético), portanto, precisa ser cuidadosamente amplificado para evitar interferências e falsos detecções. O circuito proposto é o resultado do meu melhor esforço e de horas de testes em diferentes condições. Se você estiver interessado em aprofundar este aspecto - e talvez melhorá-lo - dê uma olhada na próxima etapa, caso contrário, você pode pular.

As seguintes portas Schmitt Trigger executam a digitalização e uma função de detecção de pico, restaurando o sinal de modulação original, que é encaminhado para o Arduino Pro Mini.

A placa microcontroladora Pro Mini é perfeita para este projeto porque o cristal a bordo permite uma alta precisão das medidas (que são essenciais sob o ponto de vista "médico", ver último passo), e ao mesmo tempo está livre de qualquer outra dispositivo não necessário, o que resulta em um baixo consumo de energia. A única desvantagem é que, para carregar o código, você precisará de uma interface FTDI para conectar o Pro Mini à porta USB do seu computador. O Pro Mini está conectado a:

  • Switch S1: iniciar a gravação
  • Chave S2: insira o marcador
  • LED azul: pisca quando um pulso válido é detectado
  • LED verde: gravação iniciada
  • LED amarelo: marcador inserido (piscar curto) / tempo limite (fixo)
  • Módulo de cartão MicroSD (por meio de barramento SPI)

Diferentemente de muitos módulos de cartão SD que operam a 3,3 V, o módulo DFRobot opera a 5 V, portanto, nenhum deslocador de nível é necessário.

Quanto à montagem, você pode notar que dividi a placa de prototipagem em duas partes, conectadas por duas pequenas "pontes" de fio de cobre rígido de 1mm. Isso foi necessário para elevar o módulo do cartão MicroSD a um terceiro "nível de construção" e alinhá-lo com o recesso que fiz no gabinete, logo acima da fenda para a porta USB. Além disso, fiz três recessos na própria placa, um para acessar o potenciômetro do conversor DC / DC, outro para acessar o conector do barramento serial do Arduino Pro Mini (montado "voltado para baixo"), e o terceiro para o indutância.

Etapa 4: Receptor de RH - Simulação Spice

Receptor de RH - Simulação Spice
Receptor de RH - Simulação Spice

Partindo do projeto de Peter Borst que mencionei antes, meu objetivo era tentar estender o alcance de detecção o máximo possível, ao mesmo tempo que limitava a sensibilidade a interferências e a geração de pulsos falsos.

Decidi mudar a solução original de Op-Amp porque ela provou ser muito sensível a interferências, provavelmente porque o valor do resistor de feedback de 10M é muito alto, e dividir o ganho geral em dois estágios.

Ambos os estágios têm ganho CC G = 100, diminuindo em torno de 70 @ 5,4 KHz, mas com impedância de entrada diferente para otimizar a sensibilidade.

Portanto, vamos supor que a tensão do sinal mais fraco gerado pelo tanque LC seja de 1mV.

Se transpormos todo o circuito receptor em um ambiente Spice (eu uso ADIsimPE) substituindo o circuito paralelo LC por um gerador de seno com a mesma tensão e frequência (5,4KHz) e rodarmos a simulação, notamos que a tensão de saída V1 do primeiro o amplificador ainda é uma onda senoidal (devido ao fator de escala, a onda senoidal de entrada não é apreciável), se o amplificador estiver trabalhando na zona linear. Mas após o segundo estágio, a tensão de saída V2 mostra que agora estamos atingindo a saturação (Vhigh = Vcc-1,5V / Vlow = 1,5V). Na verdade, a família TL07x não foi projetada para a faixa de saída de trilho a trilho, mas isso é o suficiente para exceder com uma margem de segurança ambos os níveis de limiar da porta Schmitt Trigger e gerar uma onda quadrada limpa (V3).

Etapa 5: Software

Programas
Programas

Por causa do alto ganho do estágio do receptor, e apesar do estágio do detector de pico agir basicamente como um filtro passa-baixo, o sinal de entrada no pino D3 do Arduino Pro Mini ainda pode ser fortemente perturbado e precisa ser pré-processado digitalmente por meio de um verificação de validade contra falsas detecções. O código garante que duas condições sejam atendidas para considerar um pulso como válido:

  1. O pulso deve durar pelo menos 5ms
  2. O intervalo mínimo aceitável entre dois pulsos sucessivos é de 100ms (correspondendo a 600 bpm, muito além do limite de uma taquicardia grave!)

Uma vez que o pulso é validado, o intervalo (em ms) do anterior é medido e armazenado no cartão SD em um arquivo "datalog.txt", juntamente com um carimbo de data / hora no formato hh: mm: ss, onde 00:00: 00 representa a hora da última reinicialização do microcontrolador. Se o cartão SD estiver faltando, o LED vermelho acende indicando erro.

Um novo rastreamento de gravação pode ser iniciado / interrompido com o interruptor Iniciar / Parar S1 e será identificado por uma linha de marcador "; Iniciar" e "; Parar", respectivamente, no início e no final do arquivo de texto.

Se nenhum pulso for detectado por um tempo maior que 2.400 ms (25 bpm), uma linha de marcador "; Timeout" é colocada no arquivo e o LED amarelo D4 é ligado.

Se a chave do marcador S2 for pressionada durante a gravação, uma linha de marcador adicional no formato "; MarkerNumber", com incremento automático do número do marcador a partir de 0, será gravada no arquivo e o LED amarelo piscará brevemente.

Anexado o código Arduino completo.

Etapa 6: configuração inicial e teste

Image
Image
Configuração inicial e teste
Configuração inicial e teste

Etapa 7: Uso - Análise de Sinal Médico

Uso - Análise de Sinal Médico
Uso - Análise de Sinal Médico

O formato do invólucro que usei é bastante próximo ao de um smartphone para que você possa encontrar no mercado muitos acessórios para usá-lo ou montá-lo em um equipamento de ginástica. Em particular para a bicicleta, posso sugerir o suporte universal para smartphone denominado "Finn", produzido pela empresa Austrian Bike Citizens. Barato (€ 15,00) e fácil de montar, é realmente universal e como você pode ver na foto perfeito também para o Cardio Data Logger

A maneira mais simples de usar os dados brutos registrados pelo Registrador de Dados é traçá-los em um gráfico usando programas de PC padrão (por exemplo, Excel). Comparando gráficos obtidos repetindo o mesmo exercício, ou analisando a correlação entre as variações da FC e os esforços físicos, pode-se otimizar a dosagem das forças durante a atividade.

Mas de maior interesse é o estudo da FC, e em particular da Variabilidade da FC (HRV), para fins médicos. Ao contrário de um traçado de ECG, o traçado de FC não contém informações diretas sobre o funcionamento do músculo cardíaco. No entanto, a sua análise do ponto de vista estático permite obter outras informações de interesse clínico.

A fonte de conhecimento mais abrangente sobre HRV é a empresa finlandesa KUBIOS. No site deles você pode encontrar muitas informações sobre Sinais Biomédicos e você pode baixar "KUBIOS HRV Standard", um software gratuito de análise da variabilidade da frequência cardíaca para pesquisa não comercial e uso pessoal. Esta ferramenta não só permite traçar gráficos a partir de um arquivo de texto simples (você deve remover os carimbos de data / hora), mas também realizar avaliações estatísticas e matemáticas (incluindo FFT) e produzir um relatório incrivelmente detalhado e valioso, como o anexo abaixo.

Lembre-se de que somente um médico especializado pode decidir quais exames são necessários para a prática esportiva em qualquer nível e avaliar seus resultados.

Este Instructable foi escrito com a única intenção de criar interesse e diversão na aplicação de produtos eletrônicos à saúde.

Espero que tenham gostado, comentários são bem-vindos!

Recomendado: