Ардуино как Лего. Пульсоксиметр и не только.

Arhat109

★★★★✩✩✩
9 Июн 2019
473
203
Получилась примерно вот такая игрушка:
Пульсометр-1.jpg
Справа-снизу, стоят два "излучателя" - ИК-светодиод и RGB-светодиод. Сверху над ними "приемник" в виде доработанного фоторезистора. Доработка заключается в допайке 3-х нагрузочных сопротивлений вместо одного типового: 10кОм, 33кОм и 100кОм. Каждое имеет свой выход и можно подцепить на землю напрямую или через цифровой пин для выбора диапазона измерений.
Слева закреплен разьем для мостового делителя опорного напряжения (два резистора, ещё не закреплены в корпус) с грубой и точной балансировкой измерительного моста.
И платка с синеньким резистором - "измерительный ОУ" на базе 2-х LM358 (в одном корпусе). Резистор 100кОм с доп. резистором в 1кОм, что обеспечивает к-т усиления ОУ от 2.5 до 103.3 крат с устранением синфазной части.

Вот такая вот фигнюшка. Позволяет просвечивать палец 4-я длинами волн: 940нм, 630нм, 525нм и 450нм. В теории, можно получить содержание HbO2 (пульсоксиметр), а также HbMet и HbCO ..

Программное обеспечение в разработке. ;)
 

Arhat109

★★★★✩✩✩
9 Июн 2019
473
203
Похоже подпалил USB порт на компе. В общем, пока итог не утешительный, схему приведу ниже, как отрисую.

Опробовано 3 варианта дифференциального усилителя на базе ОУ LM358 и LM324. В общем-то это одинаковые ОУ но в первом их 2шт, во втором аж 4шт. Других нет в наличии.

Приемник (выше) с нагрузочным сопротивлением 100кОм, на этих излучателях (52-55мА) "через мой мизинец" , будучи подключен к питанию (нагрузочный резистор на землю) выдает около 1.8 - 2.65в на китайской измерялке напряжений в зависимости от "цвета".

Соответственно, была идея измерять "мостовым методом", собрав мост Уитсона из этого датчика и делителя на переменном резисторе в 50кОм.

В.1: "Усилитель на 1 ОУ" - классический дифф. усилок. Схем в сети, много, как работает тоже .. Вмест R3,R4 (у плюсового входа) этот самый делитель, на минусовый подаем сигнал с датчика и доп. подстроечник на 100кОм в ООС .. оказалось что отбалансировать таким способом этот "мостовой усилитель" практически не возможно, поскольку параметры моста, фоторезистора и нагрузки участвуют активно в к-те усиления "итого" .. зато, повозившись с часик, получил вполне красивую картинку на всех 4-х цветах. С какими-то выбросами, сильно похожими на пульс :)

В.2. "Инструментальный усилитель на 2-х ОУ" - тоже схема бралась из Сети .. На практике оказалось что к-т усиления .. "не работает". Балансировка возможна только при "обратном" включении .. что-то показывает, но что? Фиг знает..

В.3. "Инструментальный усилитель на 3-х ОУ (LM324). ООС первого каскада (2ОУ) 39кОм, между ними 12кОм, что дает типа 1 + 2*Roc/Rg = 1+ 39*2/12 = 7.5 .. возможно. Усиление третьего ОУ было разным от 1, до 10 (120к/12к) .. в итого:

Настроить "мост" резистором при больших усилениях - можно, но сложно. И настройка получается "разная" для ИК, Red+Green и Blue светоизлучателей. ИК выдает примерно 1.65в китайской измерялкой, Красный и Зеленый около 2.65в и Синий - 2.3-2.4в .. или нужна автоподстройка моста (как?) ..
Но это полбеды.

Беда в том, что без пальца ..эта байда выдает почти теже самые пульсации, которые я поначалу и принял за "мой пульс" .. очень похоже, о как! :)
Вторая беда в наводках в 50гЦ .. откуда они взялись - не знаю. Но, после того как случайно коротнул "измерялкой" питание и землю на своей Нано как Лего, что на фото выше .. поперла эта наводка, особенно хорошо ловится когда присутсвует палец в измерительном тракте. Сигнал забивает всю ширину АЦП уже при усилении от 10-15х .. поменял Нано, поменял расширительный шилд .. пофиг. Похоже прет из порта, т.к. анализ провожу в плоттере Ардуино.

На битой нанке от USB питание 2.65в и она не определяется без включения питания от аккумулятора. При включенном аккуме на плате 5в, и с подключенным шнурком плата определяется и прошивается нормально .. похоже вылетел стабилизатор самой Нано..

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

Сел рисовать схемы что да как пробовалось. Выудить из потока RAW оцифровки нифига глазом не могу, кроме наводок.. :( Может тупо не знаю что искать надо .. как преобразовать сигнал к "нулю" для всех осветителей пока идей тоже нет..
 

Arhat109

★★★★✩✩✩
9 Июн 2019
473
203
Pulsomer2.png
Собственно вот, не считая "излучателей" .. Датчик - к Земле подключается Gnd3 обеспечивая нагрузочное сопротивление 100кОм. Баланс моста - тупой, из пары резисторов "грубо"/"точно" .. второй практически не пригодился .. толку от него чуть больше ноля.

В общем .. чего выдает это на вход АЦП НАНО .. сказать крайне сложно. :)
 
Изменено:

Arhat109

★★★★✩✩✩
9 Июн 2019
473
203
поправил схему до реальных значений инструментальника на 3-х ОУ .. ну и расписал варианты.
 

Webduino

✩✩✩✩✩✩✩
20 Апр 2020
7
1
laserfan.wox.su
Добавте ещё AD8232 - модуль для ЭКГ и тогда будет полноценная система мониторинга здоровя :unsure:
 

Arhat109

★★★★✩✩✩
9 Июн 2019
473
203
Провел тесты, похоже что фоторезистор - очень не удачен в качестве датчика .. скорость его работы не лучше 20-30мсек. К сожалению, не представляю как должны выглядеть сырые данные, разработку пока отложил.
 

Arhat109

★★★★✩✩✩
9 Июн 2019
473
203
И все-таки она вертится! :love:
Удалось получить свой пульс с фоторезистора, причем напрямую, воткнув измерительный выход прямо в АЦП НАНО:
Пульсоксиметр.png
Но, для этого пришлось тщательно читать даташит на фоторезистор GL5537 (судя по результатам опытов у меня оказался такой или очень похожий), разобрать и вспомнить физику его работы в условиях крайне слабой освещенности и погуглить много чего.

Тем, кто захочет повторять:
1. Параметры девайсов имеют просто офигительный разброс, поэтому к каждому из них надо подходить "строго индивидуально". :(
2. По возможности надо исключать любую фоновую засветку. В итого, при темновом сопротивлении моего фоторезистора больше 2МОм, рабочий диапазон пришелся на где-то 300-500кОм. Пришлось сваять из Лего коробушку, в которую суется измеряемый палец...
3. .. и заземлить его обмотав проводочком. Второй конец подключенный к земле рядом с измерительным входом АЦП (у меня это А0) дает минимальный уровень наводок.
4. Работая с токами 53мА (ИК) и теже 53мА в красном .. оказывается что палец "практически прозрачен" в красном. И благодаря слабой побочной засветке измерение идет в режиме сверхмалой освещенности, где у девайса большие омические сопротивления и .. крайне высокая чувствительность к изменению освещения (левая часть гиперболы падающего сопротивления). На скриншоте уровень красного составляет около 10мА насколько помню. Пришлось сильно уменьшать его яркость.
5. CdS фоторезисторы имеют "долгую память", что отражено в даташите как времена нарастания и спада показаний. Для моего они составляют по 25мсек "в среднем". Замерил - очень правдоподобно.
Соответственно, алгоритм измерений - "импульсный": включаем светодиод, ждем 3мсек реакцию девайса, делаем несколько замеров для усреднения, выключаем светодиод и .. ждем релаксацию 15-20мсек прежде чем включить "ишо раз". На скриншоте нет времени предварительного ожидания, поэтому хорошо наблюдается "плавный рост" (падение сопротивления) сигнала в каждом "цвете". Время ожидания релаксации тут - 15мсек. В целом это "предел" скорости измерений.
6. На скриншоте между выводами сигнала цвета выводились небольшие полочки разного уровня .. дабы отличать визуально "где-что" :) На это обращать внимание не стоит..

Алгоритм тут:
Делаем 100 повторов измерительного цикла, внутри которого крутится цикл "по цветам". В каждом шаге:
Включаем светодиод; ждем паузу 3-5мсек; проводим 8 замеров для усреднения; сохраняем результат в двумерном массиве; выключаем светодиод; ждем паузу релаксации 13-20мсек;
По накоплению результатов - вывод "по очереди" в порядке замера с полочкой для различений "чего это" и пауза в 5сек "на посмотреть" картинку.

На красном хорошо виден пульс, который совпал с измеряемым цифровым тонометром Омрон одновременно.

В общем, можно ещё попробовать "ВЧ модуляцию" светового сигнала .. но не уверен. Можно оставить и так, дополнив схемой на ОУ для согласования сопротивления и дополнительного усиления переменки.
 
Изменено:
  • Лойс +1
Реакции: Старик Похабыч

Arhat109

★★★★✩✩✩
9 Июн 2019
473
203
В опщем, за это время нашел и почитал несколько разных попыток построить нечто свое на базе спец. мелкосхемы MAX30100 .. и пришел к выводу, что "показания" похожи. В том смысле, что она выдает точно такие же "сырые данные", которые требуют .. а всё то же самое:
устранять пост. составляющую, фильтровать "на водку", сглаживать фильтром Баттерворта до приемлемой частоты (ФНЧ) и проводить вычисления по относительным размахам показаний.
Смешно то, что тут сам фоторезистор играет роль очень нефигового фильтра из-за своей неторопливости. Я бы даже честно сказал - откровенной тормознутости! ;)

P.S. проект заброшен. Как "показометр" чего-то добится удалось, лучше оно или хуже чем MAX30100 - такую задачу сравнения даже и не ставил, как в силу отсутствия микросхемы, так и понятных различий в системе измерений и применяемых датчиках.

В целом вывод "получилось", но копать дальше .. не интересно: математики много, а толку мало.
 

Un_ka

★★✩✩✩✩✩
13 Июл 2020
241
71
других форумов.
Провел тесты, похоже что фоторезистор - очень не удачен в качестве датчика .. скорость его работы не лучше 20-30мсек. К сожалению, не представляю как должны выглядеть сырые данные, разработку пока отложил.
У него зависимость от яркости (количества света на площадь) логарифмическая.
В целом вывод "получилось", но копать дальше .. не интересно: математики много, а толку мало.
Не надо бояться математики.
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,159
1,267
Москва
Снимал показания с того же фоторезистора и передавал их на комп. Когда накрывал его пальцем касаясь получил пульсации. Видимо тоже пульс.
1598823373154.png
 
  • Лойс +1
Реакции: Arhat109

ununnamed

★✩✩✩✩✩✩
18 Авг 2020
75
20
Ждём пульсометр с использованием модуля микрофона
 

Arhat109

★★★★✩✩✩
9 Июн 2019
473
203
@Старик Похабыч, Было бы неплохо показать график с какими-то "отличительными особенностями" ну там .. частота сьема, амплитуды, цифирьки по осям .. дабы сориентироваться. ;)
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,159
1,267
Москва
Нет их пока,
но бессонной ночью подумал, подсчитал... не пульс это. Какая то пульсация на пальце, но не он. очень часто идет. Кажется 200 раз в секунду.
 
  • Лойс +1
Реакции: Arhat109

Un_ka

★★✩✩✩✩✩
13 Июл 2020
241
71
других форумов.
@Старик Похабыч, Тогда уж плоттер com порта в Arduino IDE использовать.
А какое освещение было? Одно дело светодиод от батарейки в темноте. От лампы накаливания или некачественной светодиодной лампы будут пульсации 100гц.
 
  • Лойс +1
Реакции: Arhat109

Старик Похабыч

★★★★★★★
14 Авг 2019
4,159
1,267
Москва
Тут и был смысл использовать свою программу. Освещение разное пробовал. от лампы светодиодной и от светодиодного фонарика телефона. Если просто затенять - пульсаций не будет. На ярком свете пульсаций нет. Они только если пальцем коснуться.
Примерное время - ширна картинки 1500 пикселей. Соотв. 1500 замеров с частотой примерно 150кГц. Среднее значение в вольтах в райное 0.8 вольта.
 

Arhat109

★★★★✩✩✩
9 Июн 2019
473
203
Это "на водки" .. тоже столкнулся с ними, описал выше. Там нельзя дотрагиваться до торчащих контактов терморезистора, лучше их заклеить мелкими кусочками скотча нафиг, а палец - заземлять. Тогда все кузявей. Ну и "экранировать всю конструкцию от посторонней засветки лампами освещения. Чем темнее - тем лучше.