LoginSignup
2
1

More than 1 year has passed since last update.

M5 StickCと心拍センサHATで脈拍、酸素飽和度(SpO2)を測る、但し医療機器ではない

Last updated at Posted at 2022-01-09

この記事でやったこと

M5StickC用の心拍センサHat(MAX30102搭載)を使って、脈拍、酸素飽和度を測れるようにします。
いわゆるパルスオキシメーター機能ですが、センサーは医療機器用ではないのであくまでこの数値は目安です。診断等に使用することはできません。

M5StickC 心拍センサ Hat(MAX30102搭載)- スイッチサイエンス

FGGEMd-VQAEMWfC.jpeg

サンプルをちょっとだけアレンジ

メーカー公式サイトから、下記のサンプルプログラムを使います。
Arduino Example Code / M5StickC Plus with HEART RATE HAT

このサンプルプログラムはM5 StickC Plus用でした。私が用意したのは"Plus"のついてない普通のM5 StickCです。includeするライブラリをM5 StickC用にする必要があるので、少し修正します。
冒頭のinclude文を書き換えるだけ。

#include <M5StickC.h>             // #include <M5StickCPlus.h>

これだけでも動きます。センサー部に指を当てると、脈拍のグラフが表示され、酸素飽和度(SpO2)とBPMが表示されます。
FGGEMbEVIAIl0Ev.jpeg

これでもいいんですが、表示の字が小さく見づらいですね。
PlusとCでは画面サイズも違うので、LCD設定を変えておきます。
M5StickCの画面サイズは160,80です。

  //set Lcd
  M5.Lcd.setRotation(3);
  M5.Lcd.setSwapBytes(false);
  Disbuff.createSprite(160, 80);       // Disbuff.createSprite(240, 135);
  Disbuff.setSwapBytes(true);
  Disbuff.createSprite(160, 80);       // Disbuff.createSprite(240, 135);

表示の数字がものすごく小さいので、文字サイズを変えておきます。。

    {
      Disbuff.setTextSize(2);           // added
      Disbuff.setTextColor(GREEN);
      Disbuff.printf("spo2:%d", spo2);
      Disbuff.setCursor(5,45);          // Disbuff.setCursor(60,25);
      Disbuff.printf("BPM:%d", beatAvg);
    }

これでとりあえず形にはなりました。
IMG_0280.jpeg
今は数値を表示するだけですが、記録するようにしてもいいですね。
その辺はまた。

2
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
2
1