Skip to content

Cray-coder/Max301002

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

Библиотека Python для пульсоксиметрического чипа Maxim MAX30102

Библиотека предоставляет базовый интерфейс Python для датчика частоты сердечных сокращений MAXIM MAX30102 и чипа датчика Sp02.

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

Базовая настройка

Создать интерфейс для своего устройства/чипа, создав экземпляр класса MAX30102.

import max30102
mx30 = max30102.MAX30102()

Можно передать ряд необязательных параметров для начальной настройки, в том числе:

  • i2c ​​пользовательский объект i2c, если у вас уже есть возможность подключения к шине
  • режим для включения показаний SpO2 по умолчанию
  • sample_rate количество выборок данных в секунду
  • pulse_width длительность каждой выборки
  • led_current_red количество тока, подаваемого на красный светодиод
  • led_current_ir количество тока, подаваемого на инфракрасный светодиод
  • max_buffer_len количество измерений для локального хранения

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

Чтение значений

Чтобы считать текущие значения датчика с микросхемы MAX30102 можно вызвать .read_sensor. Это позволит получить последние значения из буфера и сохранить их локально. Последние значения доступны в .ir и .red для измерений ИК и красного соответственно. Локальный буфер FIFO используется для хранения предыдущих измерений, вплоть до max_buffer_len, указанного при настройке.

mx30.read_sensor()

# Последние значения теперь доступны через .ir и .red
mx30.ir, mx30.red

Снимите показания SpO2 (насыщение кислородом)

Чтобы включить чтение Sp02, можно либо установить режим напрямую, либо использовать удобный метод:

mx30.set_mode(max30102.MODE_SPO2)
# or
ms30.enable_spo2()

Если выполнить еще одно считывание датчика, можно увидить значение параметра «.red» (который необходим для считывания насыщения кислородом).

mx30.read_sensor()
mx30.ir, mx30.red

Предыдущие измерения доступны в файлах .buffer_ir и .buffer_red.

Автоматизация измерений

Микросхема MAX30102 обеспечивает механизм прерывания, который можно использовать для запуска чтения, когда значения становятся доступными. Используя gpiozero, можно связать этот триггер прерывания с методом MAX30102.read_sensor, что приведет к выводу результатов измерения в реальном времени в наш буфер FIFO. Соедините контакт INT MAX30102 с подходящим контактом на вашем контроллере. Например:

mx30.set_interrupt(max30102.INTERRUPT_FIFO) # Настройте триггер на срабатывание при заполнении буфера FIFO (на MAX30102).
                                             # Вы также можете использовать INTERRUPT_HR для получения триггера при каждом измерении.

from gpiozero import Button 
interrupt = Button(16) 
interrupt.when_activated = mx30.read_sensor 

Теперь вы можете видеть значения в буферах, например:

mx30.buffer_red

Или можно отметить самые последние значения, например:

while True:
     print(mx30.buffer_red[-10:])

About

A Python library for the Maxim MAX30102 pulse oximetry chip

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages