Skip to main content

Grove - 指クリップ型心拍センサー

note

この文書は 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_SensorUSB to Serial (TTL) Module&Adapter
VCCVCC
GNDGND
SDATX
SCLRX
ソフトウェア
  • Tera Termソフトウェアをダウンロードしてください
  • UARTボーレートを115200に設定してください
  • ファームウェアをダウンロードします。

  • Grove - Finger-clip Heart Rate Sensor.bin を選択します。

  • ファームウェアを Grove-Finger-clip Heart Rate Sensor にダウンロードします。
  • ファームウェアのダウンロードが成功しました。
note

Grove - Finger-clip Heart Rate Sensor は心拍数の測定を提供します。ただし、これは医療機器ではありません。手首、指、または手のひらで心拍数センサーを使用するには、以下を守る必要があります:

  • センサーをしっかりと固定し、肌に密着させ、測定中は安定した状態(動かない)を保つことで、正確な心拍数を取得できます。センサーが肌に十分に接触していない場合や、測定中に極端な動きがある場合、心拍数は正確に測定されません。

  • センサーの性能は血流が多いほど最適化されます。寒い日や血行が悪い(例:冷たい手、指、足)場合、測定位置での血流が少ないため、センサーの性能(心拍数の精度)が影響を受ける可能性があります。

回路図オンラインビューア

リソース


技術サポート & 製品ディスカッション

弊社製品をお選びいただきありがとうございます!製品の使用体験がスムーズになるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルを用意しています。

Loading Comments...