EMC_M5StickC_PulseOximeter

 M5Stack Store社(?)のマイコンモジュール「M5StickC」と同オプション「UNIT HEART」を使って血中酸素濃度と心拍数…と思しき数値を表示する簡易パルスオキシメーターもどきArduinoスケッチ例のご紹介です。

写真 概観 起動時 写真 概観 測定中

能書き(経緯)

 時は2020年春。世界は「新型コロナウイルス感染症(COVID-19)」に振り回されております。
 未知のウイルスによるバイオハザード。ワクチンも特効薬もなく、また病状や感染経路、予防策などの情報も玉石混交に錯綜する中、病状の急激な悪化の予兆を早期に見出しうる観察手法のひとつとしてにわかに注目を集めているのが「血中酸素濃度」とそれを手軽に計測しうる「パルスオキシメーター」というものだそうです。
 「パルスオキシメーター」なんて素人にはあまり聞き馴染みのない測定器で、話を耳にして近所を当たってみたところでは体温計などとは違ってどうやら一般のドラッグストアの類いでは取り扱ってなさそうですが、通販サイトなどではピンからキリまでいろいろ扱いがあるようです。得体の知れぬ安いものは2000円くらいから、高級なものは数万円まで。ボリュームゾーンは5000円くらいですかね…。試しにひとつ買ってみたところ、よくわからないけれどもなんだかそれっぽい数字を表示してくれます。血中酸素濃度だけでなくて、心拍数も測ってくれる。3A級 USB ACアダプター大のクリップ状ユニット(買ったものは単4電池×2本で駆動)に指を突っ込めば、程なく測定結果が表示されます。手軽。体温計より手軽(笑)。

 気を良くしてTwitterで自慢したりしてたところ…、タイムラインにM5マイコンのオプション「UNIT HEART」の宣伝記事(共立電子産業デジットさんのツイート)が。「GroveケーブルでM5Coreと接続できる心拍センサユニットです。MAX30100を搭載しており、センサの上に指を置くことで、血中酸素濃度と心拍数を測定できます。M5Stackと心拍センサーモジュールを使用して、簡易パルスオキシメーターなども作れます。」と。…なんだって??
 え。そんなUNITあったっけ。そんなのがあるなら、買うべきは出来合いよりもそっちだったでは。いや比較用に出来合いも欲しいけど…、値段も手頃そうだし、とにかくこれは試さない手はないのでは…って、持ってるじゃん既に!?Σ(在庫UNIT確認した。) そうでした…、血中酸素濃度だなんてバラックのセンサーユニットでいかほどまともに測れるものか、測れたところで何に使えようかと気にもとめていなかったものの、心拍数センサーとしては興味があって(LED制御とかとインタラクティブ連動させてみることをイメージしてました)、先行投資的に確保していたのでした…。
 試せるじゃん…、すぐに!

 早速サンプルスケッチを当たってみたものの…、サンプルはサンプル。出力はもっぱらシリアル通信で、スタンドアロンの簡易パルスオキシメーター的に使うには出力表示は自分で作んなきゃいけないっぽい。そりゃそーだ。
 「UNIT HEARTなんて新製品なわけでなし、誰か先駆者がいるだろう」とざっとネット検索してみたのだけれど…、意外と少ないのですね…(実のところ情報探索は苦手)。あってもM5Stackのものが多くて、M5StickCでの実装例で引っかかったのは数えるほど。この程度の用途にM5Stackは大仰なんだよなぁ…(手持ちのものは電源SWの挙動が謎だったりもしてイマイチ気が乗らない)。M5StickCがいい。断固いい(我儘)。
 いいやもう…、練習がてら自分で実装しよう…。

 と、いうわけで作ってみたのが本稿のスケッチです。実用ではなく、機能お試し&デモ用です。


概要


ダウンロードとインストール

 上記のZIPアーカイブを解凍し、含まれている「EMC_M5StickC_PulseOximeter_????????.ino」をArduino IDEで開いてM5StickCにコンパイル・書き込みしてください。

 「MAX30100lib」というライブラリを利用しています(M5StickCライブラリ同梱のサンプルスケッチで使われているのと同じものです)。予めArduino IDEに導入しておいてください。Arduino IDEのライブラリマネージャで「MAX30100」を検索すると複数(執筆時点では2つ)引っかかりますが、ここで使っているのは末尾に「lib」がつくものです。(スケッチで直接読み込んでいるヘッダーファイルはそれに含まれる「MAX30100_PulseOximeter.h」です。)


使い方


問題点


コード解説

 200行ほどのしょぼいソースコードです。コメントもアホほど入れましたので、そちらを見ていただくのが良いかと。


他者製作例

 参考までに、一連の取り組みの中で見つけた他の方による製作事例をご紹介しておきます。
 M5Stackによるものはいくつもあるようなので割愛して、ここではM5StickC+UNIT HEARTによるものを中心に。


開発履歴(だいたい)


更新履歴(だいたい)


このページから抜けるいさな工房HP トップ / @nifty
サイト管理者:岩橋伴典 as いさな (E-mail:jo3emc@jarl.com / Twitter:@jo3emc)