Ни Дня Без Спорта: Перепрограммирование Китайского Пульсометра

- Слушай, а какой у тебя должен быть пульс во время пробежки? - Ну не знаю - 150 ударов.

- Да? Почему у меня 840? — 840 в минуту?! - Что, тебе приходилось считать по минутам что ли? - Ваше мнение? - Ну я просто считал, пока не сбился со счёта.

Так что, ладно, пошёл пересчитывать.

(фильм «День выборов») Почти точно о китайском пульсометре.

Как говорится, если хочешь, чтобы что-то было сделано хорошо, сделай это сам.

А если устройство работает не так, как ожидалось, то, возможно, его можно улучшить?

Ни дня без спорта: перепрограммирование китайского пульсометра

Многие люди, увлекающиеся спортом, контролируют частоту пульса во время тренировки.

Для этого используются пульсометры.

В задачу данной статьи не входит рассмотрение всех их типов, но одними из наиболее надежных и проверенных являются нагрудные датчики пульса, которые получают электрические сигналы от сердца.

В связи с резко возросшей физической активностью приобрел монитор Частота сердцебиения Кито 2809. Пульс хороший, но возникла необходимость относительно точного измерения интервалов RR. Пульсометр поддерживает два протокола: ANT+ и BLE. По характеристикам оба они, помимо самой частоты сердечных сокращений, передают длительность интервалов RR. Что такое интервалы RR Интервал RR — временной интервал между зубцами R на КГ сердца.



Ни дня без спорта: перепрограммирование китайского пульсометра

Размер интервалов RR не постоянен, а варьируется.

Это называется вариабельностью сердечного ритма.

Анализируя вариабельность, можно сделать выводы о состоянии спортсмена и наличии перетренированности (см.

статью Александра Вертышева «Анализ записи интервалов RR» в журнале «Лыжный спорт»).

Также проводятся исследования по определению аэробных и анаэробных порогов.

Для записи данных с обоих каналов под ваши нужды было написано Android-приложение с журналом данных в текстовых файлах.

В качестве более-менее адекватного эталона был взят аналоговый пульсометр, посылающий сигнал на частоте 5,3 кГц, подключенный через ардуино напрямую к ПК.

Первое сравнение немного огорчило.



Ни дня без спорта: перепрограммирование китайского пульсометра

«Прибор» выдавал 4-5 несуществующих за один реальный удар сердца (синий график показывает обилие точек).

Пульс, даже с учетом возможного усреднения, не очень точен.

Об измерении интервалов RR речи вообще не идет. Общение с производителем не принесло никаких результатов.

Кроме нескольких видео, попыток убедить меня, что все в порядке, и фразы: «Данные о пульсе KYTO2809 точны!», я от них ничего не получил.

Тут мой взгляд упал на коробку отверток.

Открыв корпус, я обнаружил чип nRF51422.

Ни дня без спорта: перепрограммирование китайского пульсометра

Зная, что для этих МК есть SDK, я решил попробовать его перепрошить.

Программа нужна самая простая: с усилителя электрических сигналов сердца (черная капля на фото) сигнал поступает на вход МК, а дальше дело техники, ловим импульсы через прерывания, измеряем время между ними и выводить все это через BLE и ANT+.

Все просто, но видимо что-то пошло не так с китайскими программистами.

Эти чипы программируются через SWD. Родная прошивка была защищена от чтения.

Поэтому, не долго думая, была выполнена команда «format c:» «--eraseall».

На плате даже отображаются соответствующие контакты.

Вход усилителя электрического сигнала сердца P0.07. Распиновка самого модуля BLE следующая (сверху вниз):

  1. Земля
  2. ВДД
  3. P0.30
  4. Р0.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 содержит множество примеров, достаточных для написания собственной прошивки.

Чип достаточно старый и SDK для него тоже устаревший, версии 10. С их помощью были подняты BLE-сервисы на пульсометре: Информация об устройстве, Обслуживание батареи, Частота пульса.

Добавлен профиль HeartRate для ANT+.

Мы измеряем интервалы RR с помощью таймера и отправляем данные в профили BLE и ANT+.

Для экономии заряда батареи при отсутствии внешних раздражителей (в течение 5 секунд) переводите пульсометр в спящий режим.

При появлении импульса (перебоев на входе) МК просыпается.

При прошивке от производителя Kyto2809 постоянно передавал рекламные пакеты по BLE, т.е.

при использовании только канала ANT+ BLE продолжал отправлять пакеты и разряжать батарею.

Я ограничил время рекламы 5 минутами, что должно положительно сказаться на эффективности.

Тесты показали, что для параметра «Расчетный пульс» лучше ввести фильтрацию (отбрасывать заведомо недостоверные данные, т.е.

частоту пульса ниже 30 и выше 240) и усреднение по значению скользящего среднего.

Окончательное сравнение с аналоговым пульсометром приведено ниже.

Различия в измерениях интервалов RR составляют 0-2 мс, что вполне приемлемо.



Ни дня без спорта: перепрограммирование китайского пульсометра

Среди полезных функций добавлена возможность обновления прошивки по ОТА (оригинальное название DFU OTA).

Теперь, установив ОТА-загрузчик, вы легко сможете обновить прошивку, если захотите что-то изменить в коде.

Прошивка производится со смартфона с помощью фирменной утилиты nRFConnect. Также, если не ошибаюсь, в вашем Android-приложении можно поддерживать ОТА, для этого есть библиотеки.

К сожалению, чтобы загрузить загрузчик в память, нужно подключаться через SWD, потому что.

ОТА производителем изначально не предусмотрено.

Порядок прошивки:

  1. мы шьем SoftDevice310 , это стек BLE и ANT+ от Nordic;
  2. прошейте Kyto_DFU_bootloader.hex (корпус можно собрать);
  3. через nRFConnect заливаем готовый пакет kyto_hr_dfu.zip
Последние два файла здесь .

Также есть прошивки без ОТА (KytoHR.hex).

Теги: #Программирование микроконтроллеров #Сделай сам или Сделай сам #Гаджеты #прошивка #прошивка #Kyto2809

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.