Лабораторный стенд для измерения давления

lluceu
lluceu аватар
Offline
Зарегистрирован: 21.07.2020

Идёт четвёртый курс, я пишу диплом по теме "Диагностика заболеваний сердечно сосудистой системы", а помимо теории нужно сделать комплект лабораторных работ, и собственно стенд для их проведения. Я сдаю диплом, а на стенде в колледже будут проводить практику. Суть работы в следующем: преподаватель задаёт давление и пульс на стенде, характерные для определённого отклонения, а лаборант надевает манжету на бутафорскую руку, и исходя из полученных данных о пульсе и давлении делает вывод о каком именно отклонении идёт речь и назначает лечение. Возможно не по адресу обращаюсь, но более не знаю куда. Тему для диплома выдали сегодня, за вечер набросал примерную схему как всё это по идеи должно будет работать, собственно, она ниже:

(прошу прощения за такие неказистые "схемы", делаю просто что бы было понятно что и куда подключено)

И непосредственно сам код:
 

#include <Servo.h>
Servo myservo;
void setup()
{
  myservo.attach(13);
}
void loop() 
{      // scale it to use it with the servo (value between 0 and 180) 
  myservo.write(0); // давим на шприц
  delay(200);
  myservo.write(90); //возвращаем кулачёк и выжидаем паузу перед следующим "сокращением сердца"
  delay(500);
} 

Данный код соответствует ЧСС примерно 100  ударам в минуту
Ну и собственно сама собранная на коленках за вечер схема (чистоту исполнения прошу строго не судить, делалось для проверки работоспособности самой концепции, будет ли такой стенд вообще работать)(те две платки, это схема питания, TP4056 и MT3608, нужны чисто для нормальной работы сервомашинки, что б дуина от нагрузки не загнулась.):

Стенд уже работает, пульс измеряет, давление тоже. В чём вопрос, спросите вы?
Есть ряд проблем:
1. Мощности сервопривода не всегда хватает, что бы создать нужное давление
2. Не имею понятия, как нормально соединить сервомашинку и поршень, что бы работало стабильно
3. Пока не понимаю, как этот тонометр измеряет давление, цифры выходят абсолютно рандомные, а иногда и вовсе не выходят
Из всего этого, на ум приходит идея заменить сервопривод на соленоид и подаваемой на него мощностью регулировать давление (чем больше ток подадим, тем дальше соленоид выдвинеться, тем больше жидкости переместиться из шприца в камеру манжеты, тем больше в ней будет давление), но тут уже возникает вопрос о том, как данный тонометр измеряет систолическое и диастолическое давление? Пробовал просто жмакать рукой по надутой манжете, сердцебиение так же считывалось, но замер не останавливаться, пока давление не падало почти до нуля, и прибор выдавал ошибку.
Может кто имеет опыт работы с таким прибором, кто способен объяснить, какие скачки давления в манжете и с какой периодичностью нужны, что бы прибор выдавал определённые систолическое и диастолическое давления?
И по поводу соленоида, ни разу с ними не работал, может кто подскажет, как его можно приспособить в данном контексте?
Или вдруг у вас есть своё видение реализации данного стенда?

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

Эмм, а принцип измерения давления по тонам Короткова читали? Шприцом и сервой здесь отделаться не выйдет, нужна обратная связь с тонометром (считывать текущий уровень давления в манжете, при верхнем требуемом пороге начинать пульсацию, при нижнем прекращать).

Можно попробовать снимать текущее давление косвенно, через ещё одну манжету, находящуюся между манекеном и манжетой тонометра.

Соленоид можно попробовать в связке с мембраной, по принципу мембранного насоса.

Вангую издохшую серву до сдачи проекта.

Любопытно, выльется в проект или лучше в "общий"?

rkit
Offline
Зарегистрирован: 23.11.2016

Создать серьезный симулятор сердечно-сосудистой системы это далеко за пределами знаний и бюджета студентов. Игрушка со шприцом никогда не обманет тонометр. От вас ждут какого-то бреда. Мучай преподов.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

lluceu пишет:

я пишу диплом по теме "Диагностика заболеваний сердечно сосудистой системы"

Пока запомним этот факт.

Цитата:

собственно, она ниже:

Что это?

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

Цитата:

И непосредственно сам код:

 

#include <Servo.h>
Servo myservo;
void setup()
{
  myservo.attach(13);
}
void loop() 
{      // scale it to use it with the servo (value between 0 and 180) 
  myservo.write(0); // давим на шприц
  delay(200);
  myservo.write(90); //возвращаем кулачёк и выжидаем паузу перед следующим "сокращением сердца"
  delay(500);
} 

Данный код соответствует ЧСС примерно 100  ударам в минуту

По моим подсчетам выходит 85.

Цитата:

Стенд уже работает, пульс измеряет, давление тоже. В чём вопрос, спросите вы?

Отнюдь.

В этом разделе авторы выкладывают свои проекты и отвечают на вопросы читателей. Авторы здеаь не должны задавать вопросы - для этого существуют другие разделы форума.

Цитата:

Есть ряд проблем:
1. Мощности сервопривода не всегда хватает, что бы создать нужное давление

Тут даже и говорить не о чем: сервопривод sg90 - самый дешевый и маломощный из сервоприводов. Просто заменить его другим, удовлетворяющим по характеристикам.

Цитата:

2. Не имею понятия, как нормально соединить сервомашинку и поршень, что бы работало стабильно

Тут сразу два вопроса: Что такое "стабильно"? и Могут ли в принципе сервопривод и поршень обеспечить это "стабильно" ?

Цитата:

3. Пока не понимаю, как этот тонометр измеряет давление, цифры выходят абсолютно рандомные, а иногда и вовсе не выходят

Вернемся к началу: это ведь Вы пишете диплом на медицинскую тему, а не мы. И форум здесь совсем не медицинский. Так что единственно возможный вариант - Вы разбираетесь сами (или с помощью преподавателя), а потом все это подробно описываете нам, чтобы мы тоже поняли.

От себя, как дилетант, могу отметить следующее: Судя по скетчу, изменение давления от времени должно иметь форму одиночного прямоугольного импульса со скважностью 3.5. Я не знаю, связан ли как-то профиль давления с кардиограммой, но, насколько я издалека видел, кардиограмма имеет совершенно другую форму. Поэтому могу предположить, что профиль давления в действительности также имеет форму далекую от прямоугольного импульса. И тонометр, скорее всего, это учитывает (с целью помехозащищенности и защиты от ложных срабатываний).

Цитата:

Из всего этого, на ум приходит идея заменить сервопривод на соленоид...

Я бы начал не с этого.

По сути, Вы сейчас пытаетесь придумать ответ на вопрос: "Как воспроизвести нужную форму сигнала?", тогда как Вы еще не знаете, а "Какова должна быть форма этого сигнала?".

Вот с определения требуемой формы и следовало бы начать: найти достаточно быстродействующий манометр (чтобы снимать показания можно было бы хотя бы на частоте в 20-50 раз превышающей частоту пульса), врезать его в измерительную магистраль тонометра и построить осциллограмму для реального пульса.

И только потом пытаться воспроизвести эту осциллограмму при помощи своего имитатора.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

видимо надо посмотреть и как устроен тонометр, разбирал, схему управления отбрасываем, по сути три устройства задействованы в измерении давления:
1.насос
2. стравливающий клапан
3. датчик

стравливающий клапан сбрасывает давление всегда, через калиброванный жиклёр
что в основе датчика не знаю, предположительно - микрофон

tekagi
tekagi аватар
Offline
Зарегистрирован: 07.10.2016

andriano, по идее там принцип проще. Манжета накачивается до, к примеру, 200 единиц, и начинает медленно стравливать давление, датчик давления в тонометре замеряет текущее давление в манжете и ждёт появления колебаний. Как только начинаются колебания - значение давления в манжете равно верхнему, далее ждём последнего определяемого удара - это нижнее. Ну и считая период между колебаниями определяет пульс и аритмию. Но всё равно простыми средствами а-ля серва и шприц такую задачу не решить. Нужно хотя бы MPS20N0040D с обвязкой и понимание сути эмулируемого процесса.
Пульс можно попробовать и динамиком эмулировать, но всё равно нужно знать текущее давление в манжете.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

tekagi пишет:
andriano, по идее там принцип проще. Манжета накачивается до, к примеру, 200 единиц, и начинает медленно стравливать давление, датчик давления в тонометре замеряет текущее давление в манжете и ждёт появления колебаний. Как только начинаются колебания - значение давления в манжете равно верхнему, далее ждём последнего определяемого удара - это нижнее. Ну и считая период между колебаниями определяет пульс и аритмию. Но всё равно простыми средствами а-ля серва и шприц такую задачу не решить. Нужно хотя бы MPS20N0040D с обвязкой и понимание сути эмулируемого процесса. Пульс можно попробовать и динамиком эмулировать, но всё равно нужно знать текущее давление в манжете.

Ну да, там по сути два датчика: один измеряет давление, а другой фиксирует наличие колебаний. Соответственно, возникает вопрос: что окажется проще - имитатор, состоящий из одной части, которая имитирует все процессы, или из двух частей, каждая из которых "нацелена" на свой датчик.

lluceu
lluceu аватар
Offline
Зарегистрирован: 21.07.2020

Премного благодарен за такой ответ, вы очень мне помогли!
Думаю стоит перенести данный топик в другой раздел, вы правы.
Касаемо самого стенда, думаю распечатаю на 3D-принтере втулку с тремя выходами (два на вход-выход трубки тонометра от манжеты, а третий, меньший по диаметру на датчик давления), таким образом буду проводить тесты и снимать импульсы при измерении давления на реальной руке, по графикам попытаюсь определить зависимость показаний на экране тонометра, от скачков давления в манжете. Затем, заменить руку на трубку, и вставив камеру под манжету и нагнетая туда жидкость из поршня, буду пытаться повторить эти импульсы, так же снимая данные. Но для повторения я думаю стоит всё таки сделать соленоид, а не сервопривод, у первого и диапазон движения больше как в прочем и возможное оказываемое давление. 
Касаемо датчика давления, нашёл вот такую платку () вопрос, подойдёт ли она для измерения давления внутри манжеты на живой руке, и можно ли будет снимать данные с неё через ардуины в виде осцилограммы на экран?

lluceu
lluceu аватар
Offline
Зарегистрирован: 21.07.2020

Думаю будет проще сделать имитатор, сейчас нацелен на это. Чуть выше описал дальнейший план действий
Нашёл ещё несколько материалов по теме:
Подключение MPS20N0040D к ардуино: http://arduino.ru/forum/apparatnye-voprosy/kak-podklyuchit-dachik-davleniya и http://arduino.ru/forum/obshchii/datchik-davleniya-s-atsp-hx710b-podklyuchenie-k-arduino

И накопал полную инструкцию по выводу информации: https://makersportal.com/blog/2020/6/4/mps20n0040d-pressure-sensor-calibration-with-arduino

sadman41
Offline
Зарегистрирован: 19.10.2016

По ходу дела медики на форуме самые нестандартные идеи выдвигают. То с тремором, то с ногой, теперь с пульсом.

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

lluceu
lluceu аватар
Offline
Зарегистрирован: 21.07.2020

Спасибо большое за идею! Есть в наличии byj28-48, как думаете, его мощности хватит для создания нужных колебаний? Сейчас заказал два датчика давления, хочу ещё сегодня подготовить "тройник" для манжеты,  и как придёт 3D-печать и датчики, проверю импульсы на реальном пульсе и на byj28-48!
Ещё раз спасибо за идею!

sadman41
Offline
Зарегистрирован: 19.10.2016

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

На пальцах прикинуть можно. Насколько мне помнится - нужно взять палку, одним концом, как рычагом, прижать шланг (например), на другой конец навешивать груз. Между точкой прижима и грузом должно быть расстояние в 1 метр. Из веса, достаточного для пережимания шланга, вычисляется необходимая сила. Эту силу требуется сравнить с характеристикой "torque" шаговика. Ну, и принять решение - хватит этой силы хотя-бы теоретически или нет.

kost82
Offline
Зарегистрирован: 30.11.2015

1. А зачем делать бутафорскую вену в руке? Может проще сделать бутафорский экран манометра? Пусть выводит нужные показания.
2. Если нужно снизить нагрузку на серву - возьмите шприц потоньше, а вену сделайте потолще. Я так понял вам нужно не давление создавать а пульсации.

3. Возможно проще сделать сосуд с жидкостью или газом под давлением (заранее нагнетать его компрессором), а пульсации создавать электромагнитным клапаном, который будет выпускать жидкость или газ в трубку-вену.

lluceu
lluceu аватар
Offline
Зарегистрирован: 21.07.2020

Следую вашему совету про измерения импульса собрал такую вещь:

Но так как возник чисто аппаратный вопрос, создал тему по данному конкретному датчику тут: http://arduino.ru/forum/apparatnye-voprosy/mps20n0040d-datchik-davleniya-rabotaet-v-15-diapazona

Там же результаты измерений