Использование нагрудного датчика фирмы Polar совместно со средой LabVIEW
Всем доброго времени суток! Продолжая тематику использования среды LabVIEW в биомедицинских целях и задачах, изложенную здесь и немного здесь, хотелось бы на этот раз рассказать о некотором опыте работы с нагрудным пульсометром фирмы Polar.
После того, как мы использовали в своих лабораторных исследованиях, проводимых в рамках моего дипломного проекта, а затем работы над диссертацией, электрокардиографическую систему, нам потребовалось устройство, которое могло бы измерять пульс человека во время его движения в пространстве, либо в положении сидя, но при движении конечностей. Например, во время вождения автомобиля. Поскольку руки постоянно находятся на руле и управляют им, то использовать проводные электроды-прищепки не представляется возможным. Во-первых, водитель просто может запутаться в проводах. Во-вторых, это вызывает дискомфорт. И наконец, это вносит большие искажения в электрокардиосигнал. Опыт таких экспериментов показал, что ЭКГ можно регистрировать лишь тогда, когда водитель движется по прямой и слегка подправляет рулевое колесо.[embedded content]
Конечно, есть решения в виде множества наручных фитнес-трекеров, которые неплохо справились бы с поставленной задачей. Но сегодня мне бы хотелось рассказать о нагрудном датчике пульса фирмы Polar. Поскольку анализ пульса мы производили в среде LabVIEW, то при выборе устройства искали такое, которое могло бы как-то сопрягаться с ПК. Либо в реал-тайм режиме, либо записывало бы файл пульсограммы и скидывало его на ПК. Так как работа ведется в рамках университетских НИР, материальные средства которых достаточно ограничены, то мы выбирали средство подешевле. Как оказалось, конфигурации, передающие в реал-тайме значения пульса на ПК, оказались очень даже недешевыми, и мы решили приобрести самый простой вариант, который связывается с Android по Bluetooth. Заказывали датчик здесь. Заказ приехал из Москвы в Рязань через два дня. Стоимость датчика составляла 4300 р с доставкой.
Менеджер порекомендовал воспользоваться одним из бесплатных приложений трекеров пульса. Установили приложение, запустили, заработало. Первое сравнение «на глаз» значений пульса датчика и нашего ЭКГ-регистратора показало, что датчик менее вариабелен. Если за 3–4 секуды значения пульса на ЭКГ изменяется 3–5 раз, то значения датчика изменялись в среднем 2 раза за это же время.
Первым делом захотелось конечно же посмотреть синхронную запись двух пульсограмм и сравнить их. Сначала мы просто попробовали сохранить данные из мобильного приложения. Сохранив, кажется, из программы Sports Tracker или из какого-то другого трекера cml файл, мы увидели долгожданные значения пульса, и их вполне можно было открыть в LabVIEW и вывести графики. Но тут случайно в гугле попалась тема из форума компании NI, где пользователь решал проблему подключения датчика к LV. Скачав исходники и приобретя USB-Bluetooth приемник, мы начали соединять датчик с ПК. Определив устройство в Windows и запустив виртуальный прибор, соединение прошло успешно и в индикаторах появились значения, но сам индикатор «пульс», выдавал явно не то, что требовалось. Тогда решили посмотреть всю передаваемую посылку. На первый взгляд 16-ричный код не позволял определить, где что есть, была некоторая запутанность строк, обрыв на непонятных позициях. Обратились на LV-портал и получили несколько рекомендаций. Почувствовав себя впервые шифровальщиком, мне предстояло разобраться в строчках закодированных посылок, что было весьма интересно. И решение было найдено.
Оказалось что, посылка отправляемая устройством со средним периодом 1,5 секунды, содержит заголовочный мнемокод. Этот мнемокод, как показала практика, содержит два символа: левый может принимать любые значения от 1 до F. А правый всегда равен 1. Вот так выглядят посылки:
Правда здесь первыми стоят значения FE, а в реальности они размещены на разных позициях. Красным, как видно помечены значения пульса. После этого несложно было сохранять эти значения в файл, предварительно преобразовав их в десятичную систему.
Привожу блок-диаграмму реализованного кода. Повторюсь, что основа программы считывания данных по Bluetooth написана не мной. Я лишь немного подкорректировал процедуру извлечения значений пульса. Привожу фрагмент кода и прилагаю исходник версии 9.0 в конце статьи.
Кстати для одного и того же устройства при разных BT-соединениях были разные мнемокоды. Поэтому в коде для первых 10 символов сделана проверка на определение мнемокода, а после этого происходит нормальное распознавание пульса.
Сравнение точности определения пульсаТеперь самое интересное. Какие же результаты показали Polar и наш ЭКГ регистратор.Вот такие:
Как видите, значения пульса Polar сильно зафильтрованы и применять их для расчета параметров и зависимостей вариабельности сердечного ритма нежелательно, дабы не получить сильно завышенные/заниженные и некорректные показатели.
Кроме этого, при работе с датчиком Polar были характерны регулярные сбои в подключении устройства к ПК. Используя неоднократно новые батарейки, устройство успешно определялось на ПК, но в среде LabVIEW происходил сбой. Пока непонятно с чем это связано.При обкатке датчика на водителе автомобиля во время движения сделали несколько записей пульсограмм, но к сожалению выявлялись сбои подключения после непродолжительной езды (7–10 минут).
[embedded content]
ВыводыУстройство относительно удобное в ношении, но имеет низкую точность определения значений пульса. Датчик неоднократно давал сбои при подключении и во время работы устройства. Возможно при работе с мобильными устройствами такие сбои случаются реже. Скорее всего необходимость усреднения пульсограммы возникла в связи с возникающими артефактами движения человека (аномальными выбросами), ведь датчик исполнен по электродному типу. Вцелом устройство по цене можно отнести к самым дешевым из линейки фирмы Polar. И если устранить проблему подключения и сбоев, то для регистрации резких изменений пульса (спокойное положение/бег) датчик вполне подходит. Здоровья вам!
Исходный код программыСайт нашей команды