はじめに
脈拍はスマートフォンやスマートウォッチでも計測していますね.
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を使用しています.