Bukan sehari tanpa olah raga: memprogram ulang monitor detak jantung Tiongkok

"Dengar, detak jantung macam apa yang harus kamu miliki saat jogging?"
- Ya, saya tidak tahu - 150 hit
- Ya? Mengapa saya punya 840?
- 840 per menit ?!
- Dan apa, itu perlu dipertimbangkan dalam satu menit atau apa?
"Apa yang kamu pikirkan?"
"Yah, aku baru menghitung sampai aku tersesat ... Jadi, oke, aku pergi untuk menceritakan."
(film "Hari Pemilihan")

Hampir persis tentang monitor detak jantung Cina. Seperti kata pepatah, jika Anda ingin melakukan sesuatu dengan baik, maka lakukan sendiri. Dan jika perangkat tidak berfungsi seperti yang diminta, maka mungkin akan mungkin untuk memperbaikinya?


Banyak orang yang tertarik dalam olahraga memantau detak jantung mereka selama berolahraga. Untuk ini, monitor detak jantung digunakan. Bukan tugas artikel ini untuk mempertimbangkan semua tipenya, tetapi salah satu yang paling dapat diandalkan dan terbukti adalah sensor denyut nadi dada yang menerima sinyal listrik dari jantung.

Sehubungan dengan aktivitas fisik saya yang sangat meningkat, monitor denyut jantung Kyto 2809 dibeli . Denyut nadi baik, tetapi ada kebutuhan untuk pengukuran interval RR yang akurat. Monitor detak jantung mendukung dua protokol: ANT + dan BLE. Menurut spesifikasinya, keduanya, selain secara langsung detak jantung, mentransmisikan durasi interval RR.

Apa itu interval RR
RR – R .


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

Untuk merekam data dari kedua saluran, aplikasi Android ditulis untuk memenuhi kebutuhan Anda dengan log data ke file teks. Monitor detak jantung analog dikirim sebagai standar yang kurang lebih memadai, mengirimkan sinyal pada frekuensi 5,3 kHz, terhubung langsung ke PC melalui arduino.

Perbandingan pertama agak sedih.


"Perangkat" untuk satu denyut jantung nyata menunjukkan 4-5 tidak ada (pada grafik biru Anda dapat melihat banyak poin). Denyut nadi, bahkan dengan mempertimbangkan kemungkinan rata-rata, tidak bersinar dengan akurat. Tentang mengukur interval bicara RR tidak berjalan sama sekali.

Komunikasi dengan pabrikan tidak membuahkan hasil. Selain beberapa video, upaya untuk meyakinkan saya bahwa semuanya baik-baik saja, dan frasa: "data denyut jantung KYTO2809 akurat!", Saya tidak mendapatkan apa pun dari mereka. Lalu tatapannya jatuh pada kotak dengan obeng. Membuka kasing, saya menemukan chip nRF51422.


Mengetahui bahwa ada SDK untuk MK ini, saya memutuskan untuk mencoba merombaknya. Program paling sederhana diperlukan di sana: dari penguat sinyal listrik jantung (setetes hitam di foto), sinyal masuk ke input MK, dan kemudian itu masalah teknik, kami menangkap pulsa melalui interupsi, mengukur waktu di antara mereka dan menampilkan semua ini melalui BLE dan ANT +. Semuanya sederhana, tetapi tampaknya ada yang salah dengan programmer China.

Chip ini diprogram melalui SWD. Firmware asli dilindungi dari pembacaan. Oleh karena itu, tanpa ragu-ragu, perintah "format c:" "--eraseall" dijalankan. Papan bahkan menampilkan kontak yang sesuai. Input dari penguat sinyal listrik jantung P0.07. Pinout dari modul BLE itu sendiri adalah (atas ke bawah):
  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

SDK berisi banyak contoh yang cukup untuk menulis firmware Anda sendiri. Chipnya sudah cukup tua dan SDK untuk itu juga sudah ketinggalan zaman, versi 10. Menggunakannya, layanan BLE dinaikkan pada monitor detak jantung: Informasi Perangkat, Layanan Baterai, Denyut Jantung. Profil HeartRate telah ditambahkan untuk ANT +. Kami mengukur interval RR dengan penghitung waktu, mengirim data ke profil BLE dan ANT +. Untuk menghemat biaya tanpa adanya rangsangan eksternal (dalam 5 detik), monitor detak jantung dimasukkan ke mode tidur. Ketika sebuah pulsa muncul (gangguan pada input), MK bangun. Dalam firmware dari pabrikan, Kyto2809 terus-menerus mengirimkan paket iklan melalui BLE, mis. bila hanya menggunakan saluran ANT +, BLE terus mengirim paket dan menguras baterai. Saya membatasi waktu iklan hingga 5 menit, yang seharusnya memiliki efek positif pada profitabilitas.
Pengujian telah menunjukkan bahwa untuk parameter Detak Jantung Dihitung lebih baik untuk memperkenalkan penyaringan (membuang data yang tidak akurat, mis., Pulsa di bawah 30 dan di atas 240) dan rata-rata dengan rata-rata bergerak. Perbandingan terakhir dengan monitor detak jantung analog di bawah ini. Perbedaan dalam pengukuran interval RR 0-2 ms, yang cukup dapat diterima.


Dari fungsi yang bermanfaat, kemampuan untuk memperbarui firmware OTA (nama asli DFU OTA) telah ditambahkan. Sekarang, setelah menjahit OTA-bootloader, Anda dapat dengan mudah memperbarui firmware jika Anda ingin mengubah sesuatu dalam kode. Firmware dilakukan dari smartphone melalui utilitas milik nRFConnect. Juga, jika saya tidak salah, Anda dapat membuat dukungan OTA di aplikasi Android Anda, ada perpustakaan untuk ini. Sayangnya, untuk mengisi bootloader di memori, Anda harus terhubung melalui SWD, karena OTA pada awalnya tidak disediakan oleh pabrikan.

Urutan firmware:

  1. kami menjahit SoftDevice310 , itu adalah BLE dan ANT + setumpuk dari Nordic;
  2. kami menjahit Kyto_DFU_bootloader.hex (kasing dapat dirakit);
  3. melalui nRFConnect isi paket kyto_hr_dfu.zip yang sudah jadi

Dua file terakhir ada di sini . Ada juga firmware tanpa OTA (KytoHR.hex).

All Articles