1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

マイクロ波ドップラーセンサで心拍を取得してみた

Last updated at Posted at 2025-06-12

はじめまして!ハニカムラボの漆館と申します。
電子回路設計や3Dプリンタなど、ハードウェア系のものづくりが得意です!

今回やること

ドップラーセンサを用いて、非接触で心拍を測定してみます。
センサは秋月電子で購入したドップラーモジュール(24GHz) IPM-165-A01を使います。

ドップラーセンサについて

ドップラーセンサとは、電波によって物体の動きを検出するセンサです。
センサから送信された電波が移動する物体に照射されたとき、ドップラー効果により物体から反射する周波数が変化します。
このときの周波数の差を検知して、物体の動きを取得します。
今回使用するIPM-165-A01は周波数が24 [GHZ]で、波長が約12.5 [mm]と短いため、微細な動きを検知することができます。

構成図

fig1.PNG

ドップラーセンサを胸部に向け、出力信号をADコンバータに入力しUARTでデータをPCへ送信、グラフで表示します。
今回使用するドップラーセンサの出力信号は、最大で399 [mVp-p]と小さい電圧のため、オペアンプ等で増幅する必要があります。
今回は、同じドップラーセンサで心拍検知をしている方12を参考に、増幅器を内蔵しているADコンバータMCP3425を使用します。

スケッチ

体動ノイズを除去するため、Filtersライブラリを使いハイパスフィルタをかけています。

doppler_heartbeat_esp32.ino
#include <Filters.h>
#include <Wire.h>
#define MCP3425_address 0x68
#define configRegister 0b10011011

float Vraw;
float Vref = 2.048 ;
float filterFrequency = 2.0;

FilterOnePole filterOneHighpass(HIGHPASS, filterFrequency);

void setup() {
    Wire.begin();
    Wire.setClock(400000);
    Serial.begin(115200);
    Wire.beginTransmission(MCP3425_address);
    Wire.write(configRegister);
    Wire.endTransmission();
}
 
void loop() {
    Vraw = (int)readADC() * Vref / 32767.0 ;
    filterOneHighpass.input(Vraw);
    float hpfVol = filterOneHighpass.output();
    Serial.print(">HPF:");
    Serial.println(String(hpfVol,5));
    delay(10);
}
 
float readADC() {
    Wire.requestFrom(MCP3425_address, 2);
    return ( (Wire.read() << 8 ) + Wire.read() );
}

デモ

(机ごちゃごちゃですみません)

心拍と思われる波形が取れました!
ただ、呼吸による動きは除去しきれなかったため、動画では息を止めています。

まとめ

シンプルな構成で非接触での心拍取得ができました!
今後としては、

  • デジタルフィルタの調整
    • 心拍、呼吸、体動の分離
  • 脈拍センサとの比較
  • インタラクティブコンテンツへの応用

など行っていきたいなと考えています!


参考文献

  1. ドップラー効果でバイタルを検知してみた
    https://qiita.com/pokurin123/items/57af34a9bb68bbaf5817

  2. ドップラーレーダーでバイタルセンシング(1)
    https://analyticsai.wordpress.com/2018/06/19/%e3%83%89%e3%83%83%e3%83%97%e3%83%a9%e3%83%bc%e3%83%ac%e3%83%bc%e3%83%80%e3%83%bc%e3%81%a7%e3%83%90%e3%82%a4%e3%82%bf%e3%83%ab%e3%82%bb%e3%83%b3%e3%82%b7%e3%83%b3%e3%82%b0%ef%bc%88%ef%bc%91%ef%bc%89/

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?