#この記事でやったこと
M5StickC用の心拍センサHat(MAX30102搭載)を使って、脈拍、酸素飽和度を測れるようにします。
いわゆるパルスオキシメーター機能ですが、センサーは医療機器用ではないのであくまでこの数値は目安です。診断等に使用することはできません。
M5StickC 心拍センサ Hat(MAX30102搭載)- スイッチサイエンス
#サンプルをちょっとだけアレンジ
メーカー公式サイトから、下記のサンプルプログラムを使います。
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が表示されます。
これでもいいんですが、表示の字が小さく見づらいですね。
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);
}