STM32. Медицинское применение. Тонометр. Введение и аппаратная часть

Одним из интересных профилей применения современного МК, безусловно, является медицина. Спектр приборов здесь достаточно широк, начиная от простых термометров, где можно применить простой STM8L с ЖК экраном, заканчивая навороченными кардио-мониторами, измерителями ЭКГ, холтерами с возможностями дистанционного сбора и отправки информации по эйзернет или беспроводно с коек пациентов прямо в кабинет глав-врачу. Сегодня мы поговорим о возможности применения МК STM32 при неинвазивном измерении артериального давления осциллометрическим методом. Всех заинтересованных прошу под кат.

Введение


Сегодня «золотым стандартом» измерения артериального давления принято считать метод «тонов Н.С. Короткова», признанный Всемирной Организацией Здравоохранения. Однако не следует забывать, что это косвенный метод измерения кровяного давления. Безусловно, измерение АД происходит с некоторой погрешностью, определяемой упругостью стенок артерии и мягких тканей, амплитудой и формой пульсовой волны и другими факторами, индивидуальными для каждого человека. Если отказаться от округлений и точно использовать цену деления манометра, то мы увидим разницу между соседними измерениями и при пользовании механическим прибором. Считывание показаний манометра на слух также выполняется с некоторой ошибкой, зависящей от индивидуальных особенностей человека — быстроты реакции, наличия навыков и т. д. В итоге погрешность ручных тонометров складывается из трёх составляющих: самого метода, точности манометра и ошибки определения момента считывания показаний. Реально её величина может составлять до 15 мм рт. ст.! На результаты измерений влияет также скорость нагнетания воздуха в манжету, скорость стравливания и величина давления, создаваемого в манжете. Если прибавить ещё и естественные колебания артериального давления, то разница между двумя соседними измерениями может быть ещё большей.

Электронный тонометр, в принципе, должен был быть лишен всех этих недостатков, т.к. измерение тонов происходит с помощью самой-же манжеты, а обработка осуществляется с помощью ряда запатентованных алгоритмов и методик. Однако, практика показывает, что в ряде случаев электронный тонометр дает устойчивое расхождение с показаниями ручного тонометра. Как следствие — на сегодняшний день у людей сложилось стойкое мнение — «электронные тонометры врут — лучше врача со ртутным измерителем давления никто не измерит!» Опыты показали, что большая погрешность измерения вызвана исключительно неумением рядового обывателя пользоваться данным прибором, а именно, правильно одевать манжету. Правильно одетая манжета — залог получения хорошей огибающей тонов Короткова и успешного нахождения характерных точек на огибающей.

Где копать


Литературы по методике нахождения АД по огибающей тонов в интернете достаточно много [1], [2], [3], [4], [5]. У Freescale есть даже хороший appnote, где популярно описано, как измерять тоны Короткова в манжете. Но! Как именно анализировать полученную огибающую — информации практически нигде нет. Каждый производитель тонометров лепит по-своему, хотя общая методика просматривается четко. Достаточно зайти на freepatentsonline.com и набрать в поиске non invasive blood pressure, и Вы получите достаточно информации чтобы написать заготовку тонометра. Но! Дальше-хуже. Экстрасистолы, артефакты, и другие страшные слова встают на пути к точным результатам осциллометрии…

Сборка измерительного стенда


Если желание собрать свой тонометр всё-же не отпало, то приступим.

… У нас было две манжеты, горстка операционных усилителей, несколько датчиков давления, пара клапанов и микроконтроллер. Единственное что вызывало у меня опасение — это MEMS датчики давления. Я знал, что рано или поздно мы перейдем и на эту дрянь...

Что потребуется для измерителя АД:
1) Плата с МК STM32F1xx (подойдёт STM32 VL Discovery с STM32F100RBT6 на борту);
2) Датчик давления MPXV5050GP (модель взята из Freescale BPM Application Note, в Вашем случае м.б. другая модель);
3) Интегральный ОУ LM358 (LM324) (лучше, конечно, взять рейл-ту-рейловый);
4) Какой-нибудь индикатор — на чем показывать давление (если нет индикатора — можно смотреть результаты в watch при отладке);
5) Помпа с моторчиком от китайского тонометра или груша от бабушкиного тонометра;
6) Если все-таки Вы взяли помпу с моторчиком из тонометра, Вам также понадобится клапан медленного стравливания из того же тонометра;
7) Аварийный клапан (по вкусу — нужен для быстрого стравливания остатков воздуха в манжете после проведения измерения);
8) Манжета тонометрическая;
9) SD карточка с картоприемником (или microSD с адаптером, к которому не жалко подпаяться).

image
Рисунок 1 — Схема пневмотракта для измерения АД

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

Далее необходимо собрать электрическую схему для управления нашим пневмотрактом. Схема состоит из узла выделения тонов Короткова, узла управления помпой и узла управления клапаном аварийного стравливания. Схемы управления помпой и клапаном очень простые и состоят, фактически из одного NPN транзистора (каждая), которые управляются логическим уровнем микроконтроллера (… любой GPIO). Остановимся поподробнее на схеме выделения тонов по Короткову. Схема реализована на ОУ общего применения LM358, и представляет собой усилитель с полосовым фильтром. Задача данного каскада изолировать постоянную составляющую и выделить т.н. тоны Короткова — пульсации крови в артерии при сокращении сердечной мышцы. Т.о. на аналоговые входы микроконтроллера подаются сигналы непосредственно с аналогового датчика давления и сигнал, выделенный ОУ. Подведём итог: сигнал с датчика давления состоит из «биений» и постоянной составляющей давления в манжете. Т.о. на первый канал АЦП МК мы подаем медленно стравливаемое давление в манжете, операционным усилителем вылавливаем переменную составляющую тонов Короткова и подаем их на другой канал АЦП МК.

image
Рисунок 2 — Электрическая принципиальная схема измерительной части и управления

На рисунках 3 и 4 приведены осциллограммы на выходах, непосредственно с датчика давления (Рис.3) и на выходе выделяющего ОУ (Рис.4). На рисунке 4 стрелочками показаны «характерные» точки на огибающей тонов Короткова. SBP — Systollic Blood Pressure — Систолическое АД (верхнее давление), MBP — Mean Blood Pressure — среднее давление в артерии, DBP — Dyastollic Blood Pressure — Диастоллическое АД (нижнее давление). О том, как найти эти точки, а значит, определить АД речь пойдёт позже.

image
Рисунок 3 — Напряжение на выходе датчика давления (цикл накачки воздуха, цикл стравливания)

image
Рисунок 4 — Напряжение на выходе ОУ. Выделенные тоны по Короткову

Подведём итог. Мы собрали пневмотракт, изготовили электронику для его обслуживания. В следующей части мы поговорим о том, как подключить к этому всему МК с дисплеем и SD картой и начать «слушать» предплечье. Результатом должны стать данные на SD карте, которые мы визуализируем в Excel и попытаемся обработать с помощью простейших алгоритмов расчёта АД.

image
Рисунок 5 — Данные с датчиков, записанные на SD карту в ходе измерения

На рисунке 5 видно:
— в данном варианте реализации, стравливание у меня ступенчатое;
— тоны Короткова (пулсации давления в манжете) записываюся полностью.
— на лету вычисляется максимальная амплитуда тонов Короткова.

Почему именно ступенчатое стравливание? Дело в том, что при ступенчатом стравливании мы получаем кучу бонусов по измерению. Например, мы можем измерять два тона за одну ступень значения давления в манжете, т.о. фильтруя экстра систолы. Либо, при проблемности полученной огибающей, докачать до интересующего нас участка и померить тоны на нем повторно. Это уже фитча кардиомониторов. Можно вообще реализовать измерение на восходящем участке давления в манжете (накачке):

1) Закрыть клапан;
2) Сделать донакачку на 50 единиц;
3) Померить тоны Короткова;
4) На пункт 2, пока не промеряем всю огибающую, иначе на пункт 5;
5) Произвести вычисления SBP, DBP, исходя из параметров огибающей
6) Вывести результат.

image
Рисунок 6 — Результат вычисления значений SBP и DBP

Пояснения к рисунку 6:
1) Ряд 1 — сигнал непосредственно с датчика давления — уровень давления в манжете (фаза медленного стравливания);
2) Ряд 2 — Рассчитанное Систолическое значение АД;
3) Ряд 3 — Рассчитанное Диастолическое значение АД;
4) Ряд 4 — Огибающая тонов Короткова ( не сами тоны, а значения амплитуд пиков).

В ходе многочисленных экспериментов (которые длятся и по сей день) выяснилось, что вычисление значения пика тона Короткова является ключевым во всём цикле измерения АД. Чем лучше измеришь огибающую — тем точнее узнаешь значение АД.

Приведу немного видеороликов, поясняющих весь процесс. На всех видео фигурирует прибор, к которому подключен разрабатываемый тонометр — «симулятор человека с заданным артериальным давлением». Давление можно выбирать из пресетов. Затем прибор имитирует сердцебиения (тоны Короткова), а тонометр измеряет огибающую. На втором видео (Part 2) я прогнал тонометр по всем основным режимам симулятора. При гипертонии алгоритм делает донакачку, всё как положено! На третьем видео (Part 3) представлен цикл измерения на реальном человеке (на мне).


Видео 1 — Симулятор пациента, тоны Короткова на осциллографе


Видео 2 — Прогон тонометра по всем пределам АД на симуляторе


Видео 3 — Измерение АД на человеке

Литература:


[1] Oscillometric blood pressure monitor and method employing non-uniform pressure decrementing steps. (US Patent № US5170795);
[2] Determination of oscillometric blood pressure by linear approximation. (US Patent № US5577508);
[3] Method and apparatus for measuring blood pressure by the oscillometric technique. (US Patent № US6719703);
[4] Oscillometric determination of blood pressure. (US Patent № US6893403);
[5] Oscillometric determination of blood pressure. (US Patent № US7311669).
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 15

    +2
    Только что читал про ужасный измеритель давления к мобилке, а тут прямо бальзам.
      0
      хоть картинки с изиэлектроникс, но рискну задать вопрос: зачем ОУ? разрешающей способности обычного АЦП (встроенного в контроллер, 12 бит, можно на 11 точно рассчитывать) разве не хватит, что бы с достаточной точностью «выцепить» пульс?
        0
        Не туда.
          0
          при помощи ОУ смещается постоянка сигнала датчика на пол-питания
            0
            только делитель 5/29 какой-то странный. Видимо диапазон показаний датчика в плюс больше чем в минус раз в 6 где-то.
          0
          Не толстоват ли у вас электролит, на который нагружен ОУ? У контроллера импеданс входа АЦП должен быть очень большой, поэтому электролит практически замыкает выход ОУ на землю по переменному току. По идее электролит можно безболезненно заменить эквивалентной RC-цепочкой (R с выхода ОУ, после него конденсатор меньшей емкости вместо электролита), при этом уменьшится лишняя нагрузка по току на ОУ. К тому же, не очень хорошая практика оставлять неиспользуемые части ОУ болтающимися в воздухе. Обычно в таких случаях их включают по схеме буферов и вход связывают с землей (т.е. делают из них повторители 0).
            0
            Заменил схему на «рабочую». Электролитов в реальном проекте нет. Все конденсаторы — керамика 0805. Усилитель одиночный rail-to-rail, в корпусе SOT23-5.
            0
            Интересно, что в устройстве применены светодиодные индикаторы, которые жрут больше, чем вся остальная схемотехника вместе взятая, кроме компрессора ;), плохо читаются на ярком свете, но… придают устройству определенную ностальгическую весомость — не то что пустые китайские аппараты с ЖКИ.

            Впрочем, решающим все равно будет качество алгоритма, так как продающиеся в аптеках бытовые серии легко дают погрешность плюс-минус 15 мм для обеих границ, что делает их применение малоосмысленным.

            Eще интересно увидеть способность алгоритма справляться с пропусками зажигания экстрасистолией и давать на ее фоне достоверный результат
              0
              С экстрасистолами сейчас борется медианный фильтр.
              0
              А почему большинство тонометров меряют именно в процессе стравливания воздуха?
              Мой домашний производит измерения в процессе накачки. Вам не встречалась информация есть ли какая-то разница между этими методами?
                +1
                Скорее всего потому, что в дешевых конструкциях компрессор — сам источник импульсов давления, которые затрудняют детекцию пульсаций в сосудах человека, поэтому проще работать на нисходящей ветви
                  +1
                  В процессе накачки тоже можно измерять — но только в одном случае — если получится фильтровать шум двигателя.
                  0
                  Вроде в полном варианте метод называется Короткова-Рива-Роччи.
                    0
                    Чем характерны отмеченные точки на рисунке — особенно SBP, DBP? Я визуально не могу понять почему выбраны именно эти пики.

                    image
                      +1
                      Существует несколько методов определения «характерных» точек. Один из них заключается в том, что ищется MAP, и затем, по определённым коэффициентам (полученным в результате исследований на пациентах) рассчитывается SBP и DBP. Также есть метод определения SBP по крутизне нарастания пиков тонов Короткова. С DBP всё гораздо сложнее.

                    Only users with full accounts can post comments. Log in, please.