[Из песочницы] STM32. Медицинское применение. Тонометр. Введение и аппаратная часть
Одним из интересных профилей применения современного МК, безусловно, является медицина. Спектр приборов здесь достаточно широк, начиная от простых термометров, где можно применить простой STM8L с ЖК экраном, заканчивая навороченными кардио-мониторами, измерителями ЭКГ, холтерами с возможностями дистанционного сбора и отправки информации по эйзернет или беспроводно с коек пациентов прямо в кабинет глав-врачу. Сегодня мы поговорим о возможности применения МК STM32 при неинвазивном измерении артериального давления осциллометрическим методом. Всех заинтересованных прошу под кат.ВведениеСегодня «золотым стандартом» измерения артериального давления принято считать метод «тонов Н.С. Короткова», признанный Всемирной Организацией Здравоохранения. Однако не следует забывать, что это косвенный метод измерения кровяного давления. Безусловно, измерение АД происходит с некоторой погрешностью, определяемой упругостью стенок артерии и мягких тканей, амплитудой и формой пульсовой волны и другими факторами, индивидуальными для каждого человека. Если отказаться от округлений и точно использовать цену деления манометра, то мы увидим разницу между соседними измерениями и при пользовании механическим прибором. Считывание показаний манометра на слух также выполняется с некоторой ошибкой, зависящей от индивидуальных особенностей человека — быстроты реакции, наличия навыков и т. д. В итоге погрешность ручных тонометров складывается из трёх составляющих: самого метода, точности манометра и ошибки определения момента считывания показаний. Реально её величина может составлять до 15 мм рт. ст.! На результаты измерений влияет также скорость нагнетания воздуха в манжету, скорость стравливания и величина давления, создаваемого в манжете. Если прибавить ещё и естественные колебания артериального давления, то разница между двумя соседними измерениями может быть ещё большей.Электронный тонометр, в принципе, должен был быть лишен всех этих недостатков, т.к. измерение тонов происходит с помощью самой-же манжеты, а обработка осуществляется с помощью ряда запатентованных алгоритмов и методик. Однако, практика показывает, что в ряде случаев электронный тонометр дает устойчивое расхождение с показаниями ручного тонометра. Как следствие — на сегодняшний день у людей сложилось стойкое мнение — «электронные тонометры врут — лучше врача со ртутным измерителем давления никто не измерит!» Опыты показали, что большая погрешность измерения вызвана исключительно неумением рядового обывателя пользоваться данным прибором, а именно, правильно одевать манжету. Правильно одетая манжета — залог получения хорошей огибающей тонов Короткова и успешного нахождения характерных точек на огибающей.
Где копать Литературы по методике нахождения АД по огибающей тонов в интернете достаточно много. У Freescale есть даже хороший аппноут, где популярно разжовано, как измерять тоны Короткова в манжете. Но! Как именно анализировать полученную огибающую — информации практически нигде нет. Каждый производитель тонометров лепит по-своему, хотя общая методика просматривается четко. Достаточно зайти на 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 с адаптером, к которому не жалко подпаяться).
Рисунок 1 — Схема пневмотракта для измерения АД
Давайте попытаемся разобраться в том, что мы сейчас только-что собрали. Пневмо-схема очень простая. Помпа служит для накачки манжеты, после чего воздух начинает медленно стравливаться нерегулируемым клапаном с очень маленьким отверстием. При этом следует учесть, что аварийный клапан должен быть закрыт — иначе Вы ничего не накачаете! По завершению измерения давления, можно открыть аварийный клапан и быстро стравить остаточное давление в манжете.
Далее необходимо собрать электрическую схему для управления нашим пневмотрактом. Схема состоит из узла выделения тонов Короткова, узла управления помпой и узла управления клапаном аварийного стравливания. Схемы управления помпой и клапаном очень простые и состоят, фактически из одного NPN транзистора (каждая), которые управляются логическим уровнем микроконтроллера (… любой GPIO). Остановимся поподробнее на схеме выделения тонов по Короткову. Схема реализована на ОУ общего применения LM358, и представляет собой усилитель с полосовым фильтром. Задача данного каскада изолировать постоянную составляющую и выделить т.н. тоны Короткова — пульсации крови в артерии при сокращении сердечной мышцы. Т.о. на аналоговые входы микроконтроллера подаются сигналы непосредственно с аналогового датчика давления и сигнал, выделенный ОУ. Подведём итог: сигнал с датчика давления состоит из «биений» и постоянной составляющей давления в манжете. Т.о. на первый канал АЦП МК мы подаем медленно стравливаемое давление в манжете, операционным усилителем вылавливаем переменную составляющую тонов Короткова и подаем их на другой канал АЦП МК.
Рисунок 2 — Электрическая принципиальная схема измерительного каскада
На рисунках 3 и 4 приведены осциллограммы на выходах, непосредственно с датчика давления (Рис. 3) и на выходе выделяющего ОУ (Рис. 4). На рисунке 4 стрелочками показаны «характерные» точки на огибающей тонов Короткова. SBP — Systollic Blood Pressure — Систолическое АД (верхнее давление), MBP — Mean Blood Pressure — среднее давление в артерии, DBP — Dyastollic Blood Pressure — Диастоллическое АД (нижнее давление). О том, как найти эти точки, а значит, определить АД речь пойдёт позже.
Рисунок 3 — Напряжение на выходе датчика давления (цикл накачки воздуха, цикл стравливания)
Рисунок 4 — Напряжение на выходе ОУ. Выделенные тоны по Короткову
Подведём итог. Мы собрали пневмотракт, изготовили электронику для его обслуживания. В следующей части мы поговорим о том, как подключить к этому всему МК с дисплеем и SD картой и начать «слушать» предплечье. Результатом должны стать данные на SD карте, которые мы визуализируем в Excel и попытаемся обработать с помощью простейших алгоритмов расчёта АД.
Рисунок 5 — Данные с датчиков, записанные на SD карту в ходе измерения
На рисунке 5 видно: — в данном варианте реализации, стравливание у меня ступенчатое; — тоны Короткова (пулсации давления в манжете) записываюся полностью.— на лету вычисляется максимальная амплитуда тонов Короткова.
Почему именно ступенчатое стравливание? Дело в том, что при ступенчатом стравливании мы получаем кучу бонусов по измерению. Например, мы можем измерять два тона за одну ступень значения давления в манжете, т.о. фильтруя экстра систолы. Либо, при проблемности полученной огибающей, докачать до интересующего нас участка и померить тоны на нем повторно. Это уже фитча кардиомониторов. Можно вообще реализовать измерение на восходящем участке давления в манжете (накачке):
1) Закрыть клапан;2) Сделать донакачку на 50 единиц;3) Померить тоны Короткова;4) На пункт 2, пока не промеряем всю огибающую, иначе на пункт 5;5) Произвести вычисления SBP, DBP, исходя из параметров огибающей6) Вывести результат.
Рисунок 6 — Результат вычисления значений SBP и DBP
Пояснения к рисунку 6:1) Ряд 1 — сигнал непосредственно с датчика давления — уровень давления в манжете (фаза медленного стравливания);2) Ряд 2 — Рассчитанное Систолическое значение АД;3) Ряд 3 — Рассчитанное Диастолическое значение АД;4) Ряд 4 — Огибающая тонов Короткова (не сами тоны, а значения амплитуд пиков).
В ходе многочисленных экспериментов (которые длятся и по сей день) выяснилось, что вычисление значения пика тона Короткова является ключевым во всём цикле измерения АД. Чем лучше измеришь огибающую — тем точнее узнаешь значение АД.
Приведу немного видеороликов, поясняющих весь процесс. На всех видео фигурирует прибор, к которому подключен разрабатываемый тонометр — «симулятор человека с заданным артериальным давлением». Давление можно выбирать из пресетов. Затем прибор имитирует сердцебиения (тоны Короткова), а тонометр измеряет огибающую. На втором видео (Part 2) я прогнал тонометр по всем основным режимам симулятора. При гипертонии алгоритм делает донакачку, всё как положено!
[embedded content]Видео 1 — Симулятор пациента, тоны Короткова на осциллографе
[embedded content]Видео 2 — Прогон тонометра по всем пределам АД
[embedded content]Видео 3 — Измерение АД на человеке