心拍センサーを使用して心拍数を測定する方法は?

心拍数または脈拍数は、医学の分野で測定される最も重要なパラメータです。心拍数を測定する方法は2つあります。 1つは聴診器を使用して手首を手動でチェックし、心拍数を推測する方法です。もう1つは、心拍数センサーを使用する方法です。心拍数センサーは脈拍の読み取り値を取得し、マイクロコントローラーに電気信号を送信します。次に、これらの読み取り値が計算され、正確な脈拍数が表示されます。



心拍数の測定

心拍数センサーはどのように脈拍数を測定しますか?

何をするかわかっているので、このプロジェクトに取り掛かりましょう。



ステップ1:コンポーネントの収集

プロジェクトを開始する前に、コンポーネントのリストを作成し、それらのコンポーネントの動作を調査することが最善のアプローチです。以下は、私たちのプロジェクトで使用されるコンポーネントです。



  • Arduino UNO
  • 心拍数センサー
  • ジャンパー線
  • 黒テープ

ステップ2:使用されているコンポーネントを知る

使用する装置のリストがあるので。次に、これらのコンポーネントがどのように機能するかを見てみましょう。



Arduino Unoは、さまざまな回路を制御するために使用されるマイクロコントローラーボードです。タスクを実行するための指示を与えるCコードを使用します。市場で入手可能なこのマイクロコントローラーボードの他の代替品は、Arduino Nano、Node MCU、ESP32などです。

SEN-11574は、Arduinoと統合されたプラグアンドプレイ脈拍数センサーです。それには2つの側面があります。片側には、発光するLEDが配置されています。このLEDは、静脈の上部に直接配置する必要があります。心臓がポンピングすると静脈内の血液量が多くなることがわかっているため、静脈内の血液量が多いほど、センサーに反射される光が多くなります。センサーが受け取る光のこの変化は、時間の経過とともに分析され、心拍数が測定されます。センサーの反対側には、受信信号の増幅とノイズ除去を担当する回路があります。

ステップ3:コンポーネントを組み立てる

  1. 皮膚は人体であることがわかっているので、時々湿ったり油っぽくなったりします。これにより、センサーが短絡し、誤った測定値が得られる可能性があります。センサーのLED側にビニールステッカーを貼って、皮膚が湿らないようにすることをお勧めします。
  2. これを行った後、黒いベクターテープを1枚取り、センサーの反対側に貼り付けます。これにより、周囲からの光がセンサーの光を遮るのを防ぎます。
  3. 次に、センサーのVccとアースピンをArduinoに接続し、センサーのアナログピンをArduinoのA0に接続します。

これですべての装置が設定され、使用できるようになりました。センサーを指または耳の静脈に直接配置して、心拍数を測定します。



ステップ4:Arduino入門

これまでにArduinoIDEで作業したことがない場合でも、ArduinoIDEを使用してマイクロコントローラーボードにコードを書き込む手順を以下に示しますのでご安心ください。

  1. ArduinoボードをPCに接続した後、[コントロールパネル]> [ハードウェアとサウンド]> [デバイスとプリンター]に移動して、Arduinoが接続されているポートの名前を確認します。コンピュータによって異なります。

    ポートを見つける

  2. Arduino IDEを開き、ボードを次のように設定します Arduino / GenuinoUNO。

    セッティングボード

  3. 次に、コントロールパネルで以前に観察したポートを設定します。

    設定ポート

  4. 以下のコードをダウンロードして開きます。をクリックして、マイクロコントローラーボードにコードを書き込みます アップロード ボタン。

    アップロード

クリック ここに コードをダウンロードします。

ステップ5:コード

脈拍数を測定するコードは少し長くて複雑です。コードの一部を以下に説明します。

1.最初に、使用されるすべてのピンが定義されます。さまざまな機能および割り込みサービスルーチン(ISR)で使用されるすべての変数。

2.2。 void setup() ピンがINPUTまたはOUTPUTとして使用されるように定義されている関数です。ボーレートもこの関数で設定されます。ボーレートは、マイクロコントローラが他のコンポーネントと通信する速度です。この関数ではISRも呼び出されます。

3.3。 void loop() サイクルで継続的に実行される関数です。ここでは、脈拍数が検出され、心拍が検出されたときにLEDをフェードするタイミングが決定されます。

void loop(){serialOutput(); if(QS == true){//ハートビートが見つかりました// BPMとIBIが決定されました// arduinoがハートビートを見つけたときに定量化された自己 'QS' true fadeRate = 255; // LEDフェード効果を発生させます// 'fadeRate'変数を255に設定して、パルスでLEDをフェードしますserialOutputWhenBeatHappens(); //ビートが発生し、それをシリアルに出力します。 QS = false; //次回のためにQuantifiedSelfフラグをリセットします} ledFadeToBeat(); // LEDフェード効果を発生させるdelay(20); // 休憩する }

四。 void serialOutput() シリアルモニターに出力を表示する方法を決定する機能です。

void serialOutput(){switch(outputType){case PROCESSING_VISUALIZER:sendDataToSerial( 'S