78F9222のコーナー(6)

更新日:2006年4月23日


脈拍計を作ろう

今回はC言語での作りやすさを利用して脈拍計を作ります。アセンブラなら割り込みに苦労するところですが、Appliletが生成したソースを使いますので、そのあたりの設定が自動的に出来ますので大変便利です。今回もUSBから電源を取るようにしていますので自分のPCのそばにおいて健康管理(?)に利用して下さい。
脈拍計を作ろうの回路図
今回も回路的にはいたって簡単です。
(脈拍計のメイン回路図)
P30を脈拍信号の入力に使います。このポートを割り込みで制御して脈拍の周期を測定し表示を行います。
(脈拍測定部分の回路図)
脈拍の測定の原理はインターネット上で見つけました。「しぶちゃんの電子工作」
http://www.asahi-net.or.jp/~gt6s-sbic/electro/index-j.htm
から脈拍計センサー部分の作成のページを参考にさせていただきました。
ありがとうございます。

反射型の赤外線センサーで脈流が検出出来るようです。
定数の設定にかなり悩みましたがなんとか動くものにすることが出来ました。
(ブレッドボード上での確認)
センサー部分の定数の検討はブレッドボードで検討すると楽に出来ると思います。
反射型の赤外線センサーにはオムロンの「EE-SY121」を使いました。現在のオムロンのカタログには掲載されていないようですが、同じシリーズで新製品があるようですのでそれを使用しても同じ動作が可能と思います。焦点距離は1mmのタイプです。
(反射型赤外線センサーの配線)
脈拍計を作ろうの基本仕様
1)1分間の脈拍数を3桁の7セグメントLEDで表示します。
2)脈拍に応じて下桁のドットが点滅します。
すいません、今回はこれだけです。
脈拍計を作ろうのポート割付と設定
(ポート割付と設定)
ポート設定に難しい部分はありません。タイマー割り込みは1msecにしています。
P34はリセットとしてしましたので外部でプルアップしました。
脈拍計を作ろうの測定
脈拍計のセンサー部分からは脈拍に応じたパルスが出力されます。
このパルスの周期を測定することによって脈拍数を計算します。
パルスの入力ごとに1msecのタイマー割り込みのカウント数を読み込み、60000を測定数で割ることによって1分間の脈拍数としています。
アセンブラで割算を考えると気が遠くなりますが、さすがにC言語は簡単ですね。余分なことを考えずにやりたいことが最短で出来ます。詳しくは後でソースリストを眺めて下さいね。
脈拍計を作ろうのハード製作
今回もコンパクトなケースにまとめてみました。センサー部分をかなり窮屈に作らないと入りきりませんのでよろしくお願いいたします。赤外線センサーの部分は充分に指を近づける必要がありますのでケースからかなり飛び出すように組み込みお願いいたします。
(完成基板状態です)
脈拍計を作ろうの大完成
では大完成した姿を見て下さい。
(表示中です)
(測定中です)
測定にはかなりのコツが要ります。指の押さえ方(押さえる強さ)によってうまく検出出来るか出来ないか決まりますので10秒程度は試行錯誤しながら押さえて下さい。
ドットの点滅が自分の心臓の音に合わせられるように念じながら測定しましょう。
(センサー部分の拡大です)
あまり良くみえませんが、赤外線センサーの一部から赤外線が出ているのが判ります。
この赤外線が脈流で反射して受光部の部分に戻ってくるのを検出します。かなり難しい?
脈拍計を作ろうのソースファイル
ソースファイル一式はこちらからダウンロードして下さい。フォルダごと圧縮しています。全てのファイルが入っています。ライタで書き込みする実行ファイルも含まれています。
いかがでしたか。これまで難しいと思っていてなかなか製作出来なかったものも簡単に製作出来るようになりましたね。今回難しかったのはソフトよりハードでしたね。特に赤外線センサーは直接指で触るので破壊には充分気をつけて下さい。私の場合も簡単に1個壊してしまいました。皆さんも色々工夫してみて下さい。
次回より待望の人形改造シリーズが始まります。ネタ仕込みも充分です。
これからも「NEC78K0/K0Sマイコン開発室」はどんどん楽しくなります。

NEC78K0/K0Sマイコン開発室へ戻る