Heart Unit
MAX30100 is a complete pulse oximetry and heart-rate sensor system solution designed for the demanding requirements of wearable devices.
Support the following products:
Micropython Example:
1# SPDX-FileCopyrightText: 2024 M5Stack Technology CO LTD 2# 3# SPDX-License-Identifier: MIT 4 5import os, sys, io 6import M5 7from M5 import * 8from hardware import * 9from unit import HeartUnit 10 11 12label0 = None 13labelHeart = None 14i2c0 = None 15heart_0 = None 16 17 18def setup(): 19 global label0, labelHeart, i2c0, heart_0 20 21 M5.begin() 22 Widgets.fillScreen(0x222222) 23 label0 = Widgets.Label("Heart Rate", 57, 18, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu40) 24 labelHeart = Widgets.Label("label1", 82, 111, 1.0, 0xFFFFFF, 0x222222, Widgets.FONTS.DejaVu56) 25 26 i2c0 = I2C(0, scl=Pin(22), sda=Pin(21), freq=400000) 27 heart_0 = HeartUnit(i2c0, 0x57) 28 heart_0.start() 29 30 31def loop(): 32 global label0, labelHeart, i2c0, heart_0 33 M5.update() 34 labelHeart.setText(str(heart_0.get_heart_rate())) 35 36 37if __name__ == "__main__": 38 try: 39 setup() 40 while True: 41 loop() 42 except (Exception, KeyboardInterrupt) as e: 43 try: 44 heart_0.deinit() 45 from utility import print_error_msg 46 47 print_error_msg(e) 48 except ImportError: 49 print("please update to latest firmware")
UIFLOW2 Example:
class HeartUnit
Constructors
- class HeartUnit(i2c, address)
Initialize the HeartUnit.
i2c
: I2C port to use.address
: I2C address of the HeartUnit.
UIFLOW2:
Methods
- HeartUnit.stop()
Stop the HeartUnit.
UIFLOW2:
- HeartUnit.start()
Start the HeartUnit.
UIFLOW2:
- HeartUnit.deinit()
Deinitialize the HeartUnit.
UIFLOW2:
- HeartUnit.get_heart_rate()
Get the heart rate.
UIFLOW2:
- HeartUnit.get_spo2()
Get the SpO2.
UIFLOW2:
- HeartUnit.get_ir()
Get the IR value.
UIFLOW2:
- HeartUnit.get_red()
Get the red value.
UIFLOW2:
- HeartUnit.set_mode(mode)
Set the mode of the HeartUnit.
- 参数:
mode (int) – The detect mode of the HeartUnit. Options: -
HeartUnit.MODE_HR_ONLY
: Only heart rate -HeartUnit.MODE_SPO2_HR
: Heart rate and SpO2
UIFLOW2:
- HeartUnit.set_led_current(led_current)
Set the LED current of the HeartUnit.
- 参数:
led_current (int) – The LED current of the HeartUnit. Options: -
HeartUnit.LED_CURRENT_0MA
: 0mA -HeartUnit.LED_CURRENT_4_4MA
: 4.4mA -HeartUnit.LED_CURRENT_7_6MA
: 7.6mA -HeartUnit.LED_CURRENT_11MA
: 11mA -HeartUnit.LED_CURRENT_14_2MA
: 14.2mA -HeartUnit.LED_CURRENT_17_4MA
: 17.4mA -HeartUnit.LED_CURRENT_20_8MA
: 20.8mA -HeartUnit.LED_CURRENT_24MA
: 24mA -HeartUnit.LED_CURRENT_27_1MA
: 27.1mA -HeartUnit.LED_CURRENT_30_6MA
: 30.6mA -HeartUnit.LED_CURRENT_33_8MA
: 33.8mA -HeartUnit.LED_CURRENT_37MA
: 37mA -HeartUnit.LED_CURRENT_40_2MA
: 40.2mA -HeartUnit.LED_CURRENT_43_6MA
: 43.6mA -HeartUnit.LED_CURRENT_46_8MA
: 46.8mA -HeartUnit.LED_CURRENT_50MA
: 50mA
UIFLOW2:
- HeartUnit.set_pulse_width(pulse_width)
Set the pulse width of the HeartUnit.
- 参数:
pulse_width (int) – The pulse width of the HeartUnit. Options: -
HeartUnit.PULSE_WIDTH_200US_ADC_13
: 200us -HeartUnit.PULSE_WIDTH_400US_ADC_14
: 400us -HeartUnit.PULSE_WIDTH_800US_ADC_15
: 800us -HeartUnit.PULSE_WIDTH_1600US_ADC_16
: 1600us
UIFLOW2:
- HeartUnit.set_sampling_rate(sampling_rate)
Set the sampling rate of the HeartUnit.
- 参数:
sampling_rate (int) – The sampling rate of the HeartUnit. Options: -
HeartUnit.SAMPLING_RATE_50HZ
: 50Hz -HeartUnit.SAMPLING_RATE_100HZ
: 100Hz -HeartUnit.SAMPLING_RATE_167HZ
: 167Hz -HeartUnit.SAMPLING_RATE_200HZ
: 200Hz -HeartUnit.SAMPLING_RATE_400HZ
: 400Hz -HeartUnit.SAMPLING_RATE_600HZ
: 600Hz -HeartUnit.SAMPLING_RATE_800HZ
: 800Hz -HeartUnit.SAMPLING_RATE_1000HZ
: 1000Hz
UIFLOW2:
Constants
- HeartUnit.MODE_HR_ONLY
Detect heart rate only.
- HeartUnit.MODE_SPO2_HR
Detect heart rate and SpO2.