はじめに
脈拍はスマートフォンやスマートウォッチでも計測していますね.
webカメラで撮影した顔画像から計測している人もいます.
https://qiita.com/taichi-iki/items/0b9165deab187bb2d3f9
今回はこの脈拍を実際に計測してみます.
webカメラで撮影した顔画像から計測している人もいます.
https://qiita.com/taichi-iki/items/0b9165deab187bb2d3f9
今回はこの脈拍を実際に計測してみます.
Androidスマートフォンによる計測(失敗談)
Androidのセンサーリストの中に"TYPE_HEART_RATE"を発見したので,実装してみます.
https://developer.android.com/reference/android/hardware/Sensor
https://developer.android.com/reference/android/hardware/Sensor
実装
センサーの登録とセンサー値が変化した時の挙動を示すプログラムの一部を載せます.
言語はKotlinです.
アプリのパーミッション設定をし忘れないようにしてください.
言語はKotlinです.
アプリのパーミッション設定をし忘れないようにしてください.
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) mSensorManager = getSystemService(Context.SENSOR_SERVICE) as SensorManager mHeartRate = mSensorManager.getDefaultSensor(Sensor.TYPE_HEART_RATE) mSensorManager.registerListener(this, mHeartRate, SensorManager.SENSOR_DELAY_NORMAL) for (permission in PERMISSIONS) { if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) { if(ActivityCompat.shouldShowRequestPermissionRationale(this, permission)) { Toast.makeText( this, getString(R.string.toast_requires_permission, permission), Toast.LENGTH_SHORT ).show() }else{ ActivityCompat.requestPermissions(this, PERMISSIONS, REQCODE_PERMISSIONS) } } }
heartRate(onCreate).kt
override fun onSensorChanged(p0: SensorEvent?) { if (p0 != null) { when(p0.sensor.type){ Sensor.TYPE_HEART_RATE -> { var rate = p0.values[0] Log.d(TAG, rate.toString()) } } } }
heartRate(onSensorChanged).kt
ここまでは良かったのですが,使用しているスマホMoto Z Playは非対応のようです,,,
スマートウォッチ用のAPIでしょうか,,,
無印良品のアプリのようにカメラとフラッシュを併用すればスマホでも計測することができます.
スマートウォッチ用のAPIでしょうか,,,
無印良品のアプリのようにカメラとフラッシュを併用すればスマホでも計測することができます.
ないならつくればいいじゃない.
スマホで計測する作戦が頓挫したので脈拍センサを製作します.
光を吸収するヘモグロビンの特徴を利用して,指に入射した光の反射光を計測することで脈拍を計測します.
脈動を打つ=>ヘモグロビンが増える=>光を多く吸収する=>反射光は弱くなる
今回使用したセンサはNJL5501RというLED(入射光の発光部品)とフォトトランジスタ(反射光の計測部品)がセットになったものです.
http://akizukidenshi.com/catalog/g/gK-09433/
回路はこちらを参考にしました.
http://akizukidenshi.com/download/ds/akizuki/pulseoxi_appl_v1.1.pdf
部品はほぼ参考回路と同じですが,オペアンプはJRC7032Dを使用しています.
光を吸収するヘモグロビンの特徴を利用して,指に入射した光の反射光を計測することで脈拍を計測します.
脈動を打つ=>ヘモグロビンが増える=>光を多く吸収する=>反射光は弱くなる
今回使用したセンサはNJL5501RというLED(入射光の発光部品)とフォトトランジスタ(反射光の計測部品)がセットになったものです.
http://akizukidenshi.com/catalog/g/gK-09433/
回路はこちらを参考にしました.
http://akizukidenshi.com/download/ds/akizuki/pulseoxi_appl_v1.1.pdf
部品はほぼ参考回路と同じですが,オペアンプはJRC7032Dを使用しています.
原理図
計測の様子
緑のセンサに指を置くことで計測できます
計測結果
ほぼ等間隔でピークになってます.
60秒で73回程度極値を取っているので心拍数は73回程度ですね.
60秒で73回程度極値を取っているので心拍数は73回程度ですね.
おわりに
今回は市販されている脈拍センサを利用して脈拍を計測してみました.
簡単かつ安価に計測できるので,皆さんも挑戦してみてください.
ピーク値からピーク値までの間隔の変動は交感神経や副交感神経と関連があり,ストレスの検知に役立つそうです(リンク文献を参照).
次回は計測した脈拍からストレス状態を観察してみます.
簡単かつ安価に計測できるので,皆さんも挑戦してみてください.
ピーク値からピーク値までの間隔の変動は交感神経や副交感神経と関連があり,ストレスの検知に役立つそうです(リンク文献を参照).
次回は計測した脈拍からストレス状態を観察してみます.
生体システム工学の基礎 (計測・制御テクノロジーシリーズ) | 福岡 豊, 野村 泰伸, 内山 孝憲, 計測自動制御学会 |本 | 通販 | Amazon
Amazonで福岡 豊, 野村 泰伸, 内山 孝憲, 計測自動制御学会の生体システム工学の基礎 (計測・制御テクノロジーシリーズ)。アマゾンならポイント還元本が多数。福岡 豊, 野村 泰伸, 内山 孝憲, 計測自動制御学会作品ほか、お急ぎ便対象商品は当日お届けも可能。また生体システム工学の基礎 (計測・制御テクノロジーシリーズ)もアマゾン配送商品なら通常配送無料。