Using the Hat Heart (Heart Rate HAT) ・ 使用 Hat Heart (Heart Rate HAT)
M5StackのHat Heart (Heart Rate HAT)をコントローラーに接続する最小構成。配線とBOMつき。
この構成をエディタで開く・編集する →| 部品 | 役割 | ポート | リンク・価格 |
|---|---|---|---|
| ATOM Lite | Controller | grove_i2c, i2c, gpio | official page — $7.5 |
| Hat Heart (Heart Rate HAT) | hat | i2c, gpio | official page — $36.9 |
ATOM LiteとHat Heart(心拍数HAT)を使って、心拍数と血中酸素濃度(SpO2)を測定する装置です。MAX30102センサーを搭載したHATをATOM LiteのI2Cポートに接続し、測定値を表示します。
# ATOM Lite + Hat Heart (MAX30102) heart rate & SpO2 monitor
# Wiring: Hat Heart I2C -> ATOM Lite Grove port (SDA=26, SCL=32)
import time
from machine import Pin, I2C
from m5stack import lcd
# Initialize I2C on ATOM Lite Grove port
# SDA=26, SCL=32 (Grove port pins)
i2c = I2C(0, scl=Pin(32), sda=Pin(26), freq=400000)
# MAX30102 I2C address is 0x57
MAX30102_ADDR = 0x57
# Simple register write function
def write_reg(reg, value):
i2c.writeto_mem(MAX30102_ADDR, reg, bytes([value]))
# Initialize sensor (simplified)
def init_sensor():
# Reset
write_reg(0x09, 0x40) # MODE_CONFIG: reset
time.sleep(0.1)
# Set mode to SpO2/HR
write_reg(0x09, 0x03) # MODE_CONFIG: SpO2 mode
# Set sample rate and LED current (typical values)
write_reg(0x0A, 0x27) # SPO2_CONFIG: 100Hz, 411us pulse width, 200uA
write_reg(0x0C, 0x1F) # LED1_PA: 50mA
write_reg(0x0D, 0x1F) # LED2_PA: 50mA
# Read FIFO data (simplified)
def read_fifo():
data = i2c.readfrom_mem(MAX30102_ADDR, 0x07, 6) # FIFO_DATA register
# Combine bytes to 18-bit values
val1 = (data[0] << 16) | (data[1] << 8) | data[2]
val2 = (data[3] << 16) | (data[4] << 8) | data[5]
return val1 & 0x3FFFF, val2 & 0x3FFFF
init_sensor()
while True:
ir, red = read_fifo()
print("IR:", ir, "Red:", red)
lcd.clear()
lcd.print("IR: %d" % ir, 10, 20)
lcd.print("Red: %d" % red, 10, 50)
time.sleep(0.1)
この作り方はAIが構成から生成したものです(未検証)。通電前に配線とコードをご確認ください。
この構成はAIが実在するM5Stack部品から設計し、ポート互換をサーバで検証したものです。編集・共有できます。
エディタで開く →UnitKit は M5Stack® 製品向けの非公式ツール。作りたいものを書くと、部品リストと配線図が出ます。