pdf-icon

Arduino入門

2. デバイス&サンプル

5. 拡張モジュール&サンプル

アクセサリー

6. アプリケーション

Unit Heart Arduino チュートリアル

1. 準備

2. 注意事項

ピン互換性
各ホスト機のピン配置は異なります。製品ドキュメントのピン互換表を参照し、実際の配線に合わせてサンプルコードのピン定義を修正してください。

3. サンプルコード

  • 本ガイドでは StickS3 をコントローラとして Unit Heart モジュールを使用します。心拍センサは I2C 通信を採用しており、配線に応じてコード内のピン定義を調整してください。スタック時の I2C ピンは G9 (SCL)G10 (SDA) です。
cpp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
#include "M5Unified.h"
#include "MAX30100.h"

#define SAMPLING_RATE   MAX30100_SAMPRATE_100HZ
#define IR_LED_CURRENT  MAX30100_LED_CURR_24MA
#define RED_LED_CURRENT MAX30100_LED_CURR_27_1MA
#define PULSE_WIDTH     MAX30100_SPC_PW_1600US_16BITS
#define HIGHRES_MODE    true

MAX30100 sensor;  // MAX30100 センサクラスのインスタンス

void setup()
{
    M5.begin();        
    M5.Power.begin();  // 電源初期化
    Serial.print("Initializing MAX30100..");

    while (!sensor.begin()) {  // センサ初期化
        M5.Lcd.setCursor(50, 100);
        M5.Lcd.println("Sensor not found");
        delay(1000);
    }
    M5.Lcd.setRotation(3);
    M5.Lcd.fillScreen(BLACK);
    M5.Lcd.setFont(&fonts::FreeMonoBold12pt7b);
    M5.Lcd.setTextSize(1.5);
    // パラメータ設定
    sensor.setMode(MAX30100_MODE_SPO2_HR);
    sensor.setLedsCurrent(IR_LED_CURRENT, RED_LED_CURRENT);
    sensor.setLedsPulseWidth(PULSE_WIDTH);
    sensor.setSamplingRate(SAMPLING_RATE);
    sensor.setHighresModeEnabled(HIGHRES_MODE);
}

void loop()
{
    uint16_t ir, red;
    sensor.update();                       // センサデータ更新
    if (sensor.getRawValues(&ir, &red)) {  // データ取得時
        M5.Lcd.setCursor(5, 20);
        M5.Lcd.printf("IR: %d", ir);
        M5.Lcd.setCursor(5, 70);
        M5.Lcd.printf("RED: %d", red);
    }
    delay(100); // 適切なディレイ
    M5.Lcd.fillScreen(BLACK);
}

4. 心拍データの取得

  • デバイス起動後、MAX30100 センサから取得した赤外線・赤色光の生データが画面に表示されます。心拍モジュールのセンサ部に指を置き、画面の数値変化を観察してください。血流の変化に応じて数値が変動します。
On This Page