Nem um dia sem esportes: reprogramando um monitor de freqüência cardíaca chinês

"Escute, que tipo de frequência cardíaca você deve ter enquanto faz jogging?"
- Bem, eu não sei - 150 hits
- Sim? Por que eu tenho 840?
- 840 por minuto ?!
- E o que, era necessário considerar em um minuto ou o quê?
"O que você acha?"
"Bem, eu apenas contei até me perder ... Então, tudo bem, fui recontar."
(filme "Dia da eleição")

Quase exatamente sobre o monitor cardíaco chinês. Como diz o ditado, se você quiser fazer algo bem, faça você mesmo. E se o dispositivo não funcionar conforme necessário, talvez seja possível melhorá-lo?


Muitas pessoas interessadas em esportes monitoram sua freqüência cardíaca durante o exercício. Para isso, são usados ​​monitores de freqüência cardíaca. Não é tarefa deste artigo considerar todos os seus tipos, mas um dos mais confiáveis ​​e comprovados são os sensores de pulso no peito que recebem sinais elétricos do coração.

Em conexão com o aumento da minha atividade física, também foi adquirido o monitor de freqüência cardíaca Kyto 2809. O pulso é bom, mas era necessário medir com precisão os intervalos RR. O monitor de frequência cardíaca suporta dois protocolos: ANT + e BLE. De acordo com as especificações, ambos, além da freqüência cardíaca direta, transmitem a duração dos intervalos RR.

O que são intervalos RR
RR – R .


RR , . . , (. « RR » « »). .

Para gravar dados dos dois canais, um aplicativo Android foi gravado para atender às suas necessidades com um registro de dados em arquivos de texto. Um monitor analógico de frequência cardíaca foi enviado como um padrão mais ou menos adequado, enviando um sinal a uma frequência de 5,3 kHz, conectado diretamente a um PC via arduino.

A primeira comparação ficou um pouco triste.


O “dispositivo” para um batimento cardíaco real mostrou 4-5 inexistente (no gráfico azul, você pode ver muitos pontos). O pulso, mesmo considerando a possível média, não brilha com precisão. A medição dos intervalos RR de fala não é de todo.

A comunicação com o fabricante não trouxe resultados. Além de vários vídeos, tentativas de me convencer de que está tudo bem e frases: "Os dados da frequência cardíaca KYTO2809 são precisos!", Não recebi nada deles. Então seu olhar caiu na caixa com chaves de fenda. Abrindo o gabinete, descobri o chip nRF51422.


Sabendo que existe um SDK para esses MKs, decidi tentar atualizá-lo novamente. O programa mais simples é necessário: do amplificador dos sinais elétricos do coração (uma gota preta na foto), o sinal vai para a entrada MK e, em seguida, é uma questão de técnica, captamos os pulsos através de interrupções, medimos o tempo entre eles e exibimos tudo isso através de BLE e ANT +. Tudo é simples, mas aparentemente algo deu errado com os programadores chineses.

Esses chips são programados via SWD. O firmware nativo foi protegido contra leitura. Portanto, sem hesitar, o comando "formato c:" "--eraseall" foi executado. O quadro ainda exibe os contatos correspondentes. Entrada do amplificador de sinais elétricos do coração P0.07. A pinagem do próprio módulo BLE é (de cima para baixo):
  1. GND
  2. Vdd
  3. P0.30
  4. P0.00
  5. P0.01
  6. P0.02
  7. P0.03
  8. P0.04
  9. P0.05
  10. P0.06
  11. P0.07
  12. P0.08

O SDK contém muitos exemplos suficientes para escrever seu próprio firmware. O chip é bastante antigo e o SDK também está desatualizado, versão 10. Utilizando-os, os serviços BLE foram gerados no monitor de freqüência cardíaca: informações do dispositivo, serviço da bateria, frequência cardíaca. Um perfil HeartRate foi adicionado para o ANT +. Medimos intervalos RR com um timer, enviamos dados para os perfis BLE e ANT +. Para economizar carga na ausência de estímulos externos (em 5 segundos), o monitor de freqüência cardíaca é colocado no modo de suspensão. Quando um pulso aparece (interrupções na entrada), o MK acorda. No firmware do fabricante, o Kyto2809 transmitia constantemente pacotes de publicidade via BLE, ou seja, ao usar apenas o canal ANT +, o BLE continuou enviando pacotes e drenando a bateria. Limitei o tempo de publicidade a 5 minutos, o que deve ter um efeito positivo na lucratividade.
Os testes mostraram que, para o parâmetro Frequência cardíaca calculada, é melhor introduzir filtragem (descartar dados deliberadamente imprecisos, ou seja, um pulso abaixo de 30 e acima de 240) e calcular a média com uma média móvel. A comparação final com o monitor analógico de frequência cardíaca abaixo. Diferenças nas medições de intervalos RR de 0-2 ms, o que é bastante aceitável.


De funções úteis, foi adicionada a capacidade de atualizar o firmware OTA (nome original DFU OTA). Agora, depois de costurar o OTA-bootloader, você pode atualizar facilmente o firmware, se quiser alterar algo no código. O firmware é feito a partir do smartphone através do utilitário proprietário nRFConnect. Além disso, se não me engano, você pode oferecer suporte ao OTA no seu aplicativo Android, existem bibliotecas para isso. Infelizmente, para preencher o gerenciador de inicialização na memória, você precisa se conectar via SWD, porque OTA não foi originalmente fornecido pelo fabricante.

Ordem de firmware:

  1. costuramos o SoftDevice310 , é BLE e ANT + uma pilha da Nordic;
  2. costuramos Kyto_DFU_bootloader.hex (o gabinete pode ser montado);
  3. através do nRFConnect, preencha o pacote pronto kyto_hr_dfu.zip

Os dois últimos arquivos estão aqui . Também há firmware sem OTA (KytoHR.hex).

All Articles