Всем привет и с праздником!
Занялся тут в рамках борьбы с бессимптомной инфекцией ковида изготовлением пульсоксиметра на базе MAX30101/MAX30102 с целью измерить величину периферийного насыщения крови кислородом (SpO2). Как-то у нас тихо на эту тему. В свое время вопрос
поднимался на форуме. В то время у меня был оксиметр фирменный, надо было мониторить кой-кого, но потом зачем-то продал. Теперь они в цене подросли...
Принцип описывать тут не буду, он в даташите есть, коротко заключается в облучении пальца разными длинами волн и записи пульсаций отраженного света, рассчете SpO2 на основании полученных значений.
Имеются публикации, что MAX30101 намного надежнее MAX30102 за счет наличия зеленого светодиода, так что купил на али и то и другое, однако первое стоит как пять вторых... При этом китаец похоже забыл этот светодиод впаять - при детальном анализе и там и сям по два светодиода. Проверить не могу, т.к. если 02 купил в виде модулей, то 01 еще надо и впаять. И другой стороны зеленый свет в основном используется для определения пульса... Темная история.
Из пяти модулей в двух разбились окошки при пересылке, т.к. продавец наложил к модулям еще прямых и кривых гребенок, а в процессе как обычно пакеты топтали нещадно. Так что мой совет просить продавца не ложить гребенки, которые изыскивать в личной коллекции.
Подключил через идвас к популярной плате на STM32F103C8T6, законфигурировал и считал данные практически без проблем. Данные чистенькие, без лишнего шума и пыли, правда имеются отдельные всплески. Картину пульса прилагаю (постоянная величина порядка сотен тысяч у.е. вычтена). На модуле надо запаять перемычку, на каком уровне напряжения желаете общаться - 1.8 или 3.3. Тут был вопрос т.к. питание у макса 1.8В. По даташиту он должен позволять на i2c хоть 5В, но не будет ли сбоев? Как оказалось, на 3.3В данные гоняются почти без сбоев. Но дальше возникли проблемы которые решаю до сих пор, связанные собственно с расчетом величины оксигенации. Дело в том, что кривая, выдаваемая датчиком довольно крива, а хочется получить более-менее постоянную величину. Наиболее известный источник по вопросу - книженция Webster J.G. Design of pulse oximeters 1997, в ней в основном интересна глава 9. Что интересно - когда я начал разбираться этой книги нигде не было, но буквально через неделю появилась на известных сайтах. Я в книгах ссылку кинул. Там есть вывод основной формулы, довольно правда сумбурный, но разобраться можно. Довольно интересно по-моему. И все же, даже имея формулу остается искусство выделить нужные величины из сигнала... Занимаюсь этим в настоящий момент, когда закончу не знаю, но хотелось поднять интерес к проблеме.