Grove - 指クリップ型心拍センサー
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

Grove - 指クリップ型心拍センサーは、PAH8001EI-2Gをベースにした高性能で低消費電力のCMOSプロセス光学センサーで、緑色LEDとDSPが統合されており、心拍検出(HRD)センサーとして機能します。このモジュールは光学技術に基づいており、血管内の人間の血液の動きの変化を測定します。低消費電力と柔軟な省電力モードにより、ウェアラブルデバイスに適しています。心拍センサーのチップは心拍データのアルゴリズムに高い処理速度を必要とするため、このモジュールにはSTM32が統合されており、SWDインターフェースが予約されているため、ユーザーはSTM32を再プログラムすることができます。
仕様
超低消費電力、タッチ動作がない時間の省電力モード
柔軟なスリープレート制御
STM32F103を統合
I2Cインターフェース
心拍センサーエリアはわずか3.0 x 4.7mm
SWDインターフェースを予約
動作温度: -20 ~ +60℃
インターフェース機能


1: Groveインターフェース
2: STM32のプログラミング用予約SWDインターフェース
3: 心拍センサー
使用方法
ここでは、このセンサーの使用方法を示す例を提供します。
ハードウェアのインストール
Groveケーブルを使用してセンサーをSeeeduinoのI2Cポートに接続します。

ソフトウェア部分
Arduinoを使用する場合
ハードウェアシリアル
以下のコードをArduinoの新しいスケッチにコピーしてアップロードしてください。その後、シリアルモニターから心拍数を取得できます。センサーに指を触れた後、心拍数が有効になるまで約1分かかる場合があります。
#include <Wire.h>
void setup() {
Serial.begin(9600);
Serial.println("心拍センサー:");
Wire.begin();
}
void loop() {
Wire.requestFrom(0xA0 >> 1, 1); // スレーブデバイスから1バイトを要求
while(Wire.available()) { // スレーブが要求より少ないデータを送る可能性あり
unsigned char c = Wire.read(); // 心拍数値(1バイト)を受信
Serial.println(c, DEC); // 心拍数値を出力
}
delay(500);
}
ソフトウェアシリアル
Arduinoの標準I2CライブラリはWireライブラリです。このライブラリは、I2CピンSDA/SCLが他の目的で既に使用されている場合には動作しません。そのため、SoftwareI2Cを使用できます。SCLをD2に、SDAをD3に接続してください。SoftI2CMasterライブラリをダウンロードし、Arduinoライブラリのインストール方法に従ってライブラリを設定してください。以下のコードをArduinoの新しいスケッチにコピーしてアップロードしてください。その後、シリアルモニターから心拍数を取得できます。センサーに指を触れた後、心拍数が有効になるまで約1分かかる場合があります。
#define SDA_PORT PORTD
#define SDA_PIN 3
#define SCL_PORT PORTD
#define SCL_PIN 2
#include <SoftI2CMaster.h>
#include <SoftWire.h>
SoftWire Wire = SoftWire();
void setup() {
Serial.begin(9600);
Serial.println("心拍センサー:");
Wire.begin();
}
void loop() {
Wire.requestFrom(0xA0 >> 1, 1); // スレーブデバイスから1バイトを要求
while(Wire.available()) { // スレーブが要求より少ないデータを送る可能性あり
unsigned char c = Wire.read(); // 心拍数値(1バイト)を受信
Serial.println(c, DEC); // 心拍数値を出力
}
delay(500);
}
Mbedを使用する場合
I2Cデバイス0xA0(8ビットアドレス)から1バイトを読み取り、それが心拍数です。
#include "mbed.h"
I2C i2c(I2C_SDA, I2C_SCL);
const int addr = 0xA0;
int main() {
char heart_rate;
while (1) {
i2c.read(addr, &heart_rate, 1);
printf("心拍数: = %d\r\n", heart_rate);
}
}
ファームウェアのアップグレード
心拍センサーのブートローダーを介してファームウェアをアップグレードすることができます。
- ブートローダーは0x08000000 - 0x08002000に配置されています
- アプリケーションは0x08002000 - 0x08020000に配置されています
ハードウェア接続

- USB to serial adapterが必要です
- UART(GroveコネクタはI2CとUARTをサポート)、ファームウェアをアップグレードする際にはGroveインターフェースがUARTモードで動作します。
Grove-Finger-clip_Heart_Rate_Sensor | USB to Serial (TTL) Module&Adapter |
---|---|
VCC | VCC |
GND | GND |
SDA | TX |
SCL | RX |
ソフトウェア
- Tera Termソフトウェアをダウンロードしてください
- UARTボーレートを115200に設定してください

ファームウェアをダウンロードします。
Grove - Finger-clip Heart Rate Sensor.bin を選択します。

- ファームウェアを Grove-Finger-clip Heart Rate Sensor にダウンロードします。

- ファームウェアのダウンロードが成功しました。

Grove - Finger-clip Heart Rate Sensor は心拍数の測定を提供します。ただし、これは医療機器ではありません。手首、指、または手のひらで心拍数センサーを使用するには、以下を守る必要があります:
センサーをしっかりと固定し、肌に密着させ、測定中は安定した状態(動かない)を保つことで、正確な心拍数を取得できます。センサーが肌に十分に接触していない場合や、測定中に極端な動きがある場合、心拍数は正確に測定されません。
センサーの性能は血流が多いほど最適化されます。寒い日や血行が悪い(例:冷たい手、指、足)場合、測定位置での血流が少ないため、センサーの性能(心拍数の精度)が影響を受ける可能性があります。
回路図オンラインビューア
リソース
技術サポート & 製品ディスカッション
弊社製品をお選びいただきありがとうございます!製品の使用体験がスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルを用意しています。