脈拍計 pulse meter : PIC12F1822, photo interrupter
Photoelectric sensor, RC high-pass filter, PIC MCU (Micro Controller Unit) の勉強に、トラ技 Jr. 2013年11・12月に掲載の脈拍計の制作が大変有用であった。オシロスコープ PicoScope3204 で確かめながらの楽しい工作実験であった。脈拍計は、多くの方のサイト・ブログで取り上げられているので、情報は容易に入手できる。稿末に参照書籍と製品を記した。
Revision on January 11, 2015
The pulse meter code compiled by XC8 is working on my PIC12F1822 board.
heart rate
LCD ( I2C, 3.3v : Strawberry Linux ) 制御は電子工作の実験室 ( http://www.picfun.com/p12frame.html ) の関数を使用。
上段に2拍毎に周期から脈拍を推計して表示。
下段に連続6拍から得られる3つの値の平均値を表示。
ケースは百円ショップのゲーム機用ハードカバーを使用。
<< プログラムの概要 >>
1) フォトリフレクタの電位をオペアンプで増幅して、PIC外部割り込み信号とする (RA2/INT)。
2) 割り込み処理でタイマをON/OFFする。
3) タイマで内部クロックから生成した信号をカウントして、脈拍の周期、1分間の脈拍数を算出する。
内部クロック Fosc = 500kHz、タイマー1 prescaler 1/8;
タイマ1入力信号の周波数 = Fosc/4/8 = 500000/32 = 15625 <Hz>;
タイマ1入力信号の周期 = 1/15625 </秒>;
脈の周期 = カウント数 / 15625 </秒>;
脈拍=60秒/脈の周期 = 60×15625/(TMR1H * 256 + TMR1L) = 937500/(TMR1H * 256 + TMR1L) <beat per minute>
<< 参照回路 >>
<< 考察 >>
指先の微かな動きでもカウント・ロスが起きるので正確な脈拍計測は難しい。従って、波間時間(周期)から1分間の脈拍を推計し、連続する3回程度の推計値を平均した値を採用するのが現実的。最終的には、LEDの点滅リズムから、表示される脈拍数の妥当性を判断する医療経験が必要である。期外収縮が頻発する場合や絶対性不整脈では1分間の脈拍を計測しなければならない。
<< 参照 >>
1) トラ技 Jr. 2013年11・12月:光でセンシング!ドキドキ脈拍計
2) ボクのArduino工作ノート(株式会社ラトルズ):指先脈拍計
3) 東京デバイセズ ( https://tokyodevices.jp/items/3 ):マニュアル