今回のゴール

フォトリフレクタを利用して、自身の脈拍をグラフとして出力する。

利用するもの

  • Arduino UNO
  • ブレッドボード
  • フォトリフレクタ(LBR-127HLD)
  • 抵抗(330Ω、1kΩ)

フォトリフレクタとは

フォトリフレクタは物体が「ある」か「ない」かの判定処理に用いられるセンサです。位置検出や物体の回転数検出などに利用されます。

送信部と受信部の2つから成り、送信部から発行された光を物体が反射し、その光を受信することによって値を計測します。通常は送信部に赤外線や青色LED、紫外線などが利用されます。

また「フォトセンサ」、「フォトインプランタ」などと呼ばれることもあります。

なぜ脈拍が測れるのか

血液中のヘモグロビンには、赤外線を吸収する性質があります。血流の量が多い時には、その分赤外線を多く吸収するため、フォトリフレクタで計測をおこなった場合、反射する光の量は小さくなります。

その数値の変化を計測することで、脈拍が検知できるようになるのです。

回路の作成

以下のように回路を作成します。

普通のグラフ

作成すると

普通のグラフ

こんな感じになります。センサ部分に指を軽く乗せることで計測できるようにします。

フォトリフレクタの値の取得

ArduinoIDEでコードを記述します。

void setup() {
  Serial.begin(9600); //ポートを開く
}

void loop() {
  int val;
  val = analogRead(0); //センサーから読込む
  Serial.println(val);
  delay(100);
}

これを実行し、指を近づけたり話したりすると、シリアルモニタに以下のような出力を得ることができます。

985
985
985
985
985
984
882
865
860
856
850
849
854
928
...

指を近づけると、値が下がっていくのが確認できるかと思います。 これで値の取得は完了です!

グラフへのリアルタイム出力

取得した値について、これだけだとよく分からないので、グラフに出力してみます。

ArduinoIDE1.6.6以降で利用可能なシリアルプロッタを利用します。 これを用いることで簡単な値をリアルタイムでグラフとしてみることができます。

早速グラフで出力してみます。

普通のグラフ

グラフが表示されました!

出力する値valに少し手を加えて、もう少し見やすくなるように工夫します。

val = val*val/100

すると…

いい感じのグラフ

しっかりと脈拍を可視化することができました!

まとめ

  • フォトリフレクタは物体が「ある」か「ない」かを検知することができる。

  • フォトリフレクタを利用し、血流の変化を計測できる。

  • ArduinoIDEのシリアルプロッタを用いて、計測した値を簡単にグラフ化できる。