\ AmazonにてArduino UNO R4 発売中!! /

Arduino 入門 Lesson 47 【脈拍・心拍センサ その1】

arduino-lesson47-00 Arduino入門編
記事に広告(アフィリエイト広告)が含まれています。
スポンサーリンク
子供と一緒に始める マイコンプログラム
Arduino 入門
Lesson 47
【脈拍・心拍センサ その1】

こにんちは、管理人のomoroyaです。

センサーの使い方の基本を学習する入門編。

一部修正
電子部品の使い方が微妙だったので修正
フォトダイオード → フォトトランジスタ

※フォトダイオードとフォトトランジスタの違い
フォトトランジスタは、フォトダイオードとトランジスタが一体化した構造。
フォトダイオードの出力電流(光電流)をトランジスタで増幅してから出力する素子。

 

世の中には、まだまだ色々なセンサーがあります。

これからも、色々なセンサーで遊んでいきます。

 

本記事はLesson 47 【脈拍・心拍センサ その1】です。

名前だけ見るとすごそうな感じですが、赤外線LEDとフォトトランジスタを組み合わせただけのセンサです。

精度は?ですが、遊びで使う分には面白いかも。

単品で部品をそろえれば自作も可能です。

 

本Lessonで使用する脈拍・心拍センサは以下が同等品となります。

※プライム対応品は見つからない・・・。

 

赤外線LED、フォトトランジスタ、抵抗を単品で揃えブレッドボード上に作ってしまってもOKです。

 

Arduino入門編の解説にて使用しているArduinoは互換品です。

互換品とは言え、Arduinoはオープンソースであり複製して販売するのもライセンス的に問題なし。

そのため互換品の品質も悪くなく、それでいて値段は安いです。

正規品本体の値段程度で豊富な部品が多数ついています。

 

正規品の本体単品がほしい方はこちらとなります。

 

スポンサーリンク

はじめに

本Lessonで使用する「脈拍・心拍センサ」の動作は難しくありません。

ただし、検出したデータを処理する工夫が必要です。

原理は「脈拍センサ」で調べればででくるので興味のある方は調べてみてください。

 

簡単に説明すると・・・

  • 血液中のヘモグロビンが赤外線を吸収する性質がある
  • ヘモグロビンは波長700~1200nmの赤外線を吸収しやすい
  • 心拍によって血流がかわる = ヘモグロビンの量が変わる
  • ヘモグロビンの量が変わることで透過する赤外線の量が変わる

上記を検出することで脈拍を測定。

ということで、本Lessonで使用するセンサは「透過型脈拍センサ」に分類されると考えます。

 

上記の原理から簡易的なものでよければ下記3つで作れます。

  • 赤外線LED(IR LED)
  • フォトトランジスタ
  • 調整用の抵抗

上記は本Lessonで使用するモジュールに実装されているものとなります。

 

実際には、微妙な調整が色々必要となります。

自作するなら出力をオペアンプ等を使って増幅するとか回路を追加した方が良いです。

ということで、このLessonで紹介するセンサは・・・

あくまでも、「脈拍、測れてそう・・・」って感じで遊んでください。

 

Lesson 47 目標

本Lessonの目標は以下です。

1.脈拍・心拍センサの使い方を学習する
2.脈拍・心拍を検知するスケッチを描く
3.脈拍・心拍センサで遊ぶ

いつものように、遊ぶことが重要です。

 

今回のセンサも動作は単純。

ただし動作の理屈を理解するためには電子回路の知識が少し必要・・・。

回路がわからなくても遊べる、使える、作れるのがArduino の良いところ。

 

準備

ではLessonの準備に取り掛かりましょう。

部品は「脈拍・心拍センサ」のモジュールのみ。

 

必要なもの

※ブレッドボードはセンサとUNOを直接つなぐ場合不要です。
※ジャンパワイヤーは「M-M」「M-F」を必要に応じて使い分けてください。

 

Jumper wire、抵抗は今後も頻繁に利用します。

Jumper wireはできれば、「オス-メス オス-オス メス –メス」の3種類を揃えておくことをお勧めします。

短めが使いやすい場合も。

 

抵抗も単品で揃えるよりはセットをおすすめします。

 

抵抗、LEDなどを個別でセット品を購入しても、そんなに使わない!

という方は、「電子工作基本部品セット」が使い勝手が良い。

 

使用部品説明

脈拍・心拍センサ」のモジュールについて説明していきます。

 

脈拍・心拍センサ 実物写真

下の写真が脈拍・心拍センサの実物写真です。

本Lessonで使用するものは、回路が基板実装されたもの。

赤外線LED、フォトダイオード、抵抗で構成されています。

pulse-sensor

 

管理人の持っている脈拍・心拍センサははずれを引いてしまいました。

赤外線LEDの足が短すぎて、うまく光をフォトダイオードに向けられない・・・。

 

脈拍・心拍センサ 回路図

脈拍・心拍センサセンサの回路について解説します。

実装されている部品は以下。

個別に電子部品を購入してブレッドボード上に作成したい場合は下記を揃えてください。

  • 赤外線LED(IR LED) 1個
  • フォトトランジスタ(型番:PT908-7C-F) 1個
  • 抵抗:10kΩ 1個
  • 抵抗:330Ω 1個

個別に揃えればブレッドボード上に作れます。

別の機会に作ってみたいと思います。

 

回路図も記載しておきますが興味のない方はすっ飛ばしてください。
※間違えていたらご連絡ください。

  • VCC  Arduinoの5Vに接続
  • GND ArduinoのGNDに接続
  • S  Arduinoのアナログ入力ピンへ接続

heartbeat-sensor-shematic

簡単に回路動作を説明すると以下。

  1. 赤外線LEDとフォトトランジスタの間に指を入れる
  2. 心拍に合わせて変化する赤外線をフォトトランジスタで受け取る
  3. 心拍に合わせて出力ピン(S)に出力される電圧が変化する
  4. Sに出力される電圧レベルをArduinoのアナログ入力ピンでAD変換する。

 

自作するなら10kΩは半固定ボリュームなどを使って調整できるようにしておくとよいと思います。

 

脈拍・心拍センサ 仕様

センサモジュール自体に仕様という仕様は特にないです。

気にするとしたら赤外線LEDとフォトトランジスタの仕様でしょうか。

自作する場合は抵抗を忘れずに・・・。

 

本Lessonは遊び、学習を想定しています。

Arduinoの仕様範囲内で使用していれば問題になることもありません。

遊び、学習以外での使用用途をお考えの場合はデータシートを必ず確認しましょう。

 

実践 回路作成とコード作成

最初に回路図を確認してください。

次に、回路図に合わせて部品を接続します。

最後にコードを書いて、脈拍・心拍センサを動かしていきましょう。

 

Arduinoのピン配置を確認したい方は番外編02を参照してください。

 

回路図

脈拍・心拍センサが実装されたモジュール端子を接続していきます。

Arduinoはアナログ入力としてA0を使用。

あとは、5VGNDのみ。

 

回路図がこちら。

heartbeat-sensor-shematic-03

こちらがブレッドボード図。

heartbeat-sensor-breadboard-04

 

回路図は「fritzing」を利用しています。

「fritzing」の使い方は下記を参照してください。

 

接続

下図に示すように、用意した部品を使用して接続しましょう。

部品は「脈拍・心拍センサ」のみとなります。
※センサが実装されたモジュール

部品は1個、接続は簡単です。

脈拍・心拍センサと接続するジャンパーワイヤーはF-Mを使用してます。

そのため、ブレッドボードもいりません。

 

使用するポートは、アナログ入力A0、5V、GND。

穴に挿入しづらいときは、ラジオペンチなどを使用してください。

arduino-lesson47-05

 

コードの書き込み

接続が終わったら、USBケーブルを使用してUNOにプログラムを書き込んで行きましょう。

コードを書き終えたら、いつでも利用できるように「ファイル」⇒「名前を付けて保存」で保存しておきましょう。

 

コマンド説明

本Lessonでは、特に新しいコマンドはありません。

 

サンプルコード

赤外線センサ、フォトダイオードのみという単純な回路だけにスケッチには工夫が必要です。

本LessonはフォーラムのProgramming Questionsでのやり取りを参考にさせていただきました。

 

もう少しスケッチを追加しようかと思っています。

下記でデータ自体は取得可能。

//Lesson 47 脈拍・心拍センサ(Detect the heartbeat module)
//指での脈拍・心拍の検出
//https://omoroya.com/

// Pulse Monitor Test Script
int sensorPin = 0;    // センサの出力ピン
double alpha  = 0.75; // 以前の値の平均の75%と現在の値の25%を使用して、値を平均化する
int period    = 10;   // 読み取り時間設定

void setup ()
{
  Serial.begin (115200);
}

void loop ()
{
    static double oldValue = 0;                               // 平均化に使用
    
    int rawValue = analogRead (sensorPin);                    // センサの出力ピンをアナログピンで読み取り
    double value = alpha * oldValue + (1 - alpha) * rawValue; // 前値75%と新値25%を使用して平均を計算
    
    Serial.print (rawValue);                                  // アナログピンで読み取った値の表示
    Serial.print (",");                                       // 区切り文字
    Serial.println (value);                                   // 計算値の表示
    oldValue = value;                                         // 計算値を前値として格納
 
    delay (period);                                           // 測定周期
}

 

動作確認 脈拍・心拍の確認

では、さっそく動作を確認していきます。

赤外線LEDとフォトトランジスタの間に指を入れてください。

管理人の持っているセンサは外れを引いたらしく、赤外線LEDが短すぎてうまく調節ができません・・・。

  • 間に指なし → シリアルプロッタで脈拍・心拍が確認されない
  • 間に指あり → シリアルプロッタで脈拍・心拍を確認

 

補足
測定の邪魔になる他の光は遮断しましょう。

 

■間に指なしの状態

serial-plotter-06

 

■間に指ありの状態

serial-plotter-07

違いがでていることから測定できていることがわかります。

 

補足
赤外線LEDの点灯を確認したい場合はスマホのカメラ越しに見れば見えます
確認してみてください。

 

まとめ

本Lessonは、以下を目標としました。

1.脈拍・心拍センサの使い方を学習する
2.脈拍・心拍を検知するスケッチを描く
3.脈拍・心拍センサで遊ぶ

 

本Lesson、いまいち測定できているのかどうか?っぽい感じがしますが・・・

指を挟んだ時と挟んでいない時で差が出ていれば測定できているということです。

 

測定するこつは・・・

他の光は遮断して脈拍・心拍を測定すること!

 

Lesson 47 【脈拍・心拍センサ その1】 はここまで。

自作もできます。

どうすれば精度向上ができるかを考えて遊ぶのも面白いかも。

疑問点、質問などありましたら気軽にコメントください。

 

次回、Lesson 48は 【脈拍・心拍センサ その2】。

Lesson 47は透過型でした。

Lesson 48は反射型で遊んでみます。

Arduino 入門 Lesson 48 【脈拍・心拍センサ その2】
こにんちは、管理人のomoroyaです。本記事はLesson 48 【脈拍・心拍センサ その2】です。Lesson 47の簡易的な脈拍・心拍センサに対して、本LessonのセンサはLEDと照度センサ、オペアンプ、ノイズキャンセル回路を搭載し…

 

最後に

疑問点、質問などありましたら気軽にコメントください。

この電子部品の解説をしてほしい!などなどなんでもOKです。

リンク切れ、間違いなどあればコメントいただけると助かります。

 

Arduino入門編、番外編、お役立ち情報などなどサイトマップで記事一覧をぜひご確認ください。

 

Arduino入門編で使用しているUNOはAmazonにて購入可能です。

互換品とは言え、Arduinoはオープンソース。

複製して販売するのもライセンス的に問題なし。

 

そのため互換品の品質も悪くなく、それでいて値段は安いです。

正規品本体の値段程度で豊富な部品が多数ついています。

 

学習用、遊び用、お試し用には安価な互換品がおすすめです。

 

 

上記のものでも十分に多数の部品が入っていますが、最初からもっと多数の部品が入っているこちらもお勧めです。

 

Amazonでお得に買う方法

Amazonでお得に購入するなら、Amazonギフト券がおすすめです。

現金でチャージするたびに、チャージ額に応じたポイントが付与されます。

最大2.5%!!!(Amazonプライム会員ならさらにお得)

チャージ額(一回分) 一般 プライム会員
5,000円~19,999円 0.5% 1.0%
2,0000円~39,999円 1.0% 1.5%
40,000円~89,999円 1.5% 2.0%
90,000円~ 2.0% 2.5%

さらに、初回チャージで1000ポイントもらえるキャンペーンも実施中!

\Amazonギフト券 1000ポイントキャンペーン/
Amazonチャージ 初回購入で1000ポイントキャンペーン

 

補足情報
コンビニ・ATM・ネットバンクが対象
購入は1円単位で可能

コメント

タイトルとURLをコピーしました