Измерение пульса с помощью пьезоэлектрического датчика

С вами Джонни Кэтсвилл и сегодня мы будем фиксировать пульс человека с помощью пьезоэлемента 😺

Измерение пульса с помощью пьезоэлектрического датчика Arduino, Пульсометр, Длиннопост

В поиске новых идей на Pinterest я нашел статью от пары израильских исследователей, на тему детектирования сердцебиения с помощью пьезоэлементов. Статья довольно старая, но не менее актуальная.

Измерение пульса с помощью пьезоэлектрического датчика Arduino, Пульсометр, Длиннопост

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

Измерение пульса с помощью пьезоэлектрического датчика Arduino, Пульсометр, Длиннопост

Когда-то я получил этих красавцев в подарок на али, но так и не использовал для автоуровня 3d принтера, и они пролежали у меня несколько месяцев.

Подключая пьезо элемент желательно подключить параллельно ему стабилитрон и сопротивление с достаточно большим сопротивлением, чтобы защитить плату ардуино.

Измерение пульса с помощью пьезоэлектрического датчика Arduino, Пульсометр, Длиннопост

Кстати не будет лишним сказать, что сопротивление шунтирующего резистрора чертовски важно, т.к. определяет диапазон значений которые будут регистрироваться АЦП микроконтроллера. Вот так выглядят усредненные данные без шунтирующего сопротивления.

Измерение пульса с помощью пьезоэлектрического датчика Arduino, Пульсометр, Длиннопост

Данные были получены с помощью совсем простого скретча. Мы считываем 64 аналоговых значения, усредняем их через среднее арифметическое и отправляем в консоль.

Измерение пульса с помощью пьезоэлектрического датчика Arduino, Пульсометр, Длиннопост

Это конечно сложно назвать тестовым стендом, но всеже проще, чем использование светодиодов, поскольку для этого требуется только пьезоэлектрический датчик, стабилитрон, сопротивление и любая плата Arduino.

Измерение пульса с помощью пьезоэлектрического датчика Arduino, Пульсометр, Длиннопост

В итоге параллельно стабилитрону я впаял бу резистор 1.5М из какого-то лома. И получил следующие данные.

Измерение пульса с помощью пьезоэлектрического датчика Arduino, Пульсометр, Длиннопост

При определении произвольного порогового значения (например, половины максимального измеренного значения) передний фронт сигнала будет преодолевать пороговое значение один раз за такт, что делает его измерение таким же простым, как измерение времени между двумя последовательными биениями. Чтобы уменьшить дрожание, я решил рассчитать частоту сердечных сокращений, используя среднее значение последних 16 временных различий (дельт) между ударами.

Измерение пульса с помощью пьезоэлектрического датчика Arduino, Пульсометр, Длиннопост

Безусловно, это говнокод! Но это работает!

Измерение пульса с помощью пьезоэлектрического датчика Arduino, Пульсометр, Длиннопост

Теперь о ложке дегтя. Это прежде всего proof of concept, тоесть доказательство практической осуществимости, и алгоритм который я вам сейчас показал — очень и очень плохой, т.к. имеет предрасположенность к ложным срабатываниям, или к несрабатыванию вообще. Это потрясающая технология с большими перспективами, но ей нужна серьезная обработка сигналов с датчика.

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

Arduino & Pi

1.4K поста20.6K подписчиков

Добавить пост

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу