Датчик пульса Pulse Sensor: принцип работы и связка с Arduino

Датчик пульса Pulse Sensor: принцип работы и связка с Arduino

Как оптический датчик Pulse Sensor регистрирует сердечный ритм, как подключить его к Arduino и вывести частоту пульса и график на компьютер.

Что измеряет датчик

Пульс — это ритмичные колебания стенок сосудов, возникающие при сокращениях сердца. Самый понятный его параметр — частота, выражаемая в ударах в минуту. Наблюдение за ней важно при диагностике сердечно-сосудистых заболеваний и полезно во время занятий спортом, чтобы не допускать перегрузки организма.

Pulse Sensor — доступный аналоговый датчик сердечного ритма, рассчитанный на работу с микроконтроллерами.

Датчик пульса Pulse Sensor

Метод фотоплетизмографии

В основе датчика лежит фотоплетизмография. Объём крови в сосудах меняется в зависимости от фазы сердечного цикла, а вместе с ним меняется оптическая плотность участка тела, на котором ведётся измерение, — например, пальца или мочки уха. На плате расположены зелёный светодиод и фотоприёмник: напряжение на фотоприёмнике колеблется в такт пульсациям.

Светодиод и фотоприёмник на плате датчика пульса

Записанный во времени сигнал образует характерную кривую — фотоплетизмограмму, или ППГ-диаграмму.

Форма фотоплетизмограммы

Датчик усиливает сигнал и нормализует его относительно середины напряжения питания (V/2). Он реагирует на относительные изменения интенсивности света: при неизменной освещённости сигнал держится около середины диапазона АЦП, при росте интенсивности кривая идёт вверх, при снижении — вниз.

Регистрация удара пульса на графике сигнала

Частоту пульса определяют по интервалу между точками графика, в которых сигнал на переднем фронте импульса достигает 50% амплитуды волны.

Параметры и подключение

Напряжение питания5 В
Ток потребления4 мА
Выходаналоговый

Выводов три: VCC — 5 В, GND — земля, S — аналоговый выход. Контакт S соединяют с аналоговым входом Arduino; в примере это A0. Кроме платы Arduino Uno и самого датчика, ничего не требуется.

Чтение пульса в скетче

Пример построен на библиотеке iarduino_SensorPulse. Объект датчика создаётся с указанием входа A0, в setup запускаются последовательный порт на 9600 и сам датчик. В цикле сначала проверяется, приложен ли датчик к пальцу: Pulse.check(ISP_VALID)==ISP_CONNECTED. Если да, в порт выводятся два числа — текущее аналоговое значение (ISP_ANALOG) и вычисленная частота пульса (ISP_PULSE). Если контакта нет, печатается «error».

Визуализация на компьютере

Чтобы увидеть фотоплетизмограмму на экране, используют среду Processing, внешне похожую на Arduino IDE. На плату загружается скетч PulseSensorAmped_Arduino_1dot1, а на компьютере в Processing запускается парный скетч PulseSensorAmpd_Processing_1dot1: он принимает данные из последовательного порта и строит по ним график. Для компьютеров Mac есть ещё один вариант — программа Pulse Sensor, которая с тем же скетчем на Arduino показывает график, уровень сигнала и значение пульса.

Советы по измерению

  • Если зелёный светодиод не горит, следует проверить правильность подключения.
  • Если значения «скачут», датчик с одной стороны оборачивают чёрной лентой, чтобы внешний световой фон оставался постоянным.
  • При явно неверных показаниях стоит проверить положение датчика: его прикладывают между центром подушечки и сгибом пальца.

← Все статьи