/ Top / Hardware /心電計の製作


1Ch Electro Cardio Graphy(ECG)
手のひらサイズのECG

撮影前に端子に触れてしまい、ノイズが出てしまいました。


第2回
さて、第2回です。
今回は、1チャネルのECG(心電計)を作ってみます。

心電計というと、病院に置いてあるアレです。そう、アレ。
アレを作るって、お前馬鹿かと言われそうですが、意外とシンプルにまとまったので、 紹介します。(注)病院のは、4チャネル以上有りますけどね。

ECGの基礎
ECGを構成する要素として、「生体アンプ」を考えて見ます。
生体アンプというのは、生体、つまり生きた体です。動物でも、人間でも、まぁ、筋肉を動かすと言う事は、 大体同じ原理です。その時、筋肉に微弱な電圧(電位差)が発生します。その電位差を 扱いやすい電圧レベルに増幅するのが生体アンプです。勿論、神経の働きとかでも、電位差が発生しますよね。 聡明な皆様なら、もうお気付きでしょう。脳波を取るためのアンプも生体アンプです。筋電も、脳波も、 心電も、計測することが出来ます。

所で、心電は、体表で観測すると、大体1mV位です。それなら、生体アンプなんて無くても、 オシロスコープで観られるのでは?、そんな気がしませんか?。確かに、電圧の領域からすれば、 観られる筈です。しかし、そう簡単には行きません。オシロのプローブのGNDと、信号入力を左右の手で持ってみましょう。
どうでしょう?
おそらく、管面から波が外れるほど大きく、しかも、途轍もなく速い。時間軸を変えてみると、なんとなく見えてきます。 これって、誘導ノイズと言って、筋電や、心電とは無関係な、電灯線由来のノイズなんです。 これでは、目的の信号を観測するどころか、何だか良く分からない事に成って仕舞います。 では、どうすれば、目的の信号を取り出せるのでしょうか。これが大変厄介な問題だったりします。

一般的に、心電ならば、10Hzを超える様な事は有りません。ネズミさんならともかく、人間では、 正常な心拍で、この様な周波数が無いことが分かっているので、アナログ的にローパスフィルタを組みます。 しかし、これが結構大変で、シャープなカットオフ特性が求められたり、特性により、心電の細かい部分が 消えちゃったりします。勿論、50Hzや、60Hz付近のカットフィルタも必要です。 それに、コンデンサーの特性やら、コイルやらと、やたらとめんどくさいものです。

そこで、信号も、ノイズも、飽和しない範囲で増幅して、最後に算術的に誘導ノイズだけを取り除けば目的の信号が出現します。 では、そんなDSP任せみたいな計算をどうやって・・・。

いえ、発想を変えれば、そんな恐ろしげなものではないんです。そもそも、誘導ノイズは、規則性のあるノイズです。 サイン波全体を加算すると、ゼロに成るって、覚えてますか?忘れちゃいました?。それが答えなんです。 つまり、信号全体の平均値を出し、50Hz地域なら1/50[Sec]、つまり20[mS]間のサンプルをすべて足し算すれば 50Hzのノイズは消えてしまいます。これを1サンプル毎、移動しながら足し算すれば、いつでも、ノイズの無い信号が得られます。 しかし、本当に、こんな計算させたら、メモリーがたくさん必要になりますし、ポインタも3〜4本必要になり、 大変ですよね。

だから、そんな事もしません。では一体・・・
リングバッファを20[mS]間にAD変換する分だけ用意します。リングバッファ内のデータで足し算します。 最後に一番古いデータを引いて、最新のデータを足します。これを1サンプル毎に最初と最後だけ計算すれば、 上記の恐ろしげな計算は完了します。
つまり、最後に押し出されるデータを引けば、移動加算できるはずですね。

ちょっと算数のトリックにつままれた感じですが、1サイクルに10回のサンプルが有るとします。 サンプルには便宜上D1, D2, D3.....D10, D11, D12と、並んでいると考えます。
最初のD1がサンプル出来たので、
P = P + D1 - ??
次に、2番目のサンプルが取れたので、
P = P + D2 - ??
これを繰り返すだけです。では、11番目のサンプルD11のときは?
P = P + D11 - D1
これで、1週して、D1が押し出されるので、引いてあげます。次は、
P = P + D12 - D2
このように成ります。でも、実際に、リングバッファは10個しか用意してあげませんので、
P = P + D(new) - D(new - 1)
と言う計算で、ひたすら足して引くを繰り返します。全体を足す必要はありません。

と言うわけで、ノイズキャンセルの部分は算術的に、簡単に実現できることが分かりました。


それでは、この辺で、回路図を見てみます。
先ずは、生体アンプから。
生体アンプ
生体アンプ

表示コントローラ
表示コントローラ

生体アンプの回路の下にノイズフィルタが云々と書いてありますが、 ただの覚書ですので、この回路には不要です。
どうですか?、シンプルでしょ?。

あれ?、俺のとは違うような・・・。
今見直していて気づいたのですが、生体アンプの部分は、トラ技の記事を参考にした様な気がします。
僕が描く回路とはちょっと雰囲気が違う気がします。多分、トラ技です(多分)。あれ?先輩の描いた回路かも??。
あ、でも、あの部分は僕の・・・??。不明です。

兎に角小さく作りたかったので、この規模に成ったのですが、一応、立派に1Ch ECGです。
電池は006Pタイプの7.2V〜8.4V位のHi-MH二次電池を使いました。電源スイッチを切ると、 充電出来る様に成っています。それと同時に、外部電源が+も-も流れない様になっています。
箱の中身

液晶ユニットを外すと、全体が見えます

とは言ったモノの、両方に電源があるのはおかしいですね。表示コントローラの電源が正解です。
生体アンプの回路中の電源部分は無視してください。電池1個、レギュレータ1個で全回路を駆動しています。

バックライト
せっかくのバックライトつき液晶なのですが、電池駆動ゆえ、バックライトは消費が大きすぎるので、 使ってません。勿体無い話ですが、使いません。
注意
この回路、見ていただくと、電池で動作しています。これには訳があり、電源を商用交流から取ると、 漏れ電流で感電することがあります。モノがモノだけに、それは、絶対にまずいので、必ず 電池駆動としてください。

4000Vの耐圧
通常、病院で使っているECGは、プローブ(入力)全てと、筐体アース間に4000V/1分と言う、 厳しい絶縁規格が設定されています。これは、患者さんに溜まった静電気がプローブを通じて ECGに流れても、電流が流れない様に設計されているからです。もし、ここで、静電気が放電しようとすると、 患者さんは感電します。心臓にR-T遅延などの障害のある患者さんなら、命に係わるでしょう。 だから、ECGは、4000V位かけても、何食わぬ顔をして働き続ける必要があるのです。

実験で使いましょうね
一応、きちんと波形も見られますし、感電防止もしてありますが、医療機器ではありません。
ここで得られた波形を元に診断することは無意味です。と言うか、私は責任を取れませんので、 実験にとどめて、
「あ〜、おいらの心臓の波形って、こんなんなんだぁ〜」
と言うところで、お楽しみいただければ幸いかと思います。

心電採りながら写真とって、筋電乗りまくって、わかるかぁ〜!
一応、V4相当の波形なんですけど、ちょっと誘導の場所が違うかな。
まぁ、綺麗に出ています。


ソフトウェアー
アセンブラ ソース
アセンブル済みHEXファイル

アセンブラのソースとHEXファイルです。アセンブルには、Microchip社のMPLABOが必要です。 また、PIC16F819.INC(MPLABO付属)を使っています。手を加える場合、これらをインストールしてください。 MPLABOは、Microchip社で無料で配布されています。


使い方
右手、左手、右足のプローブをご自身で付けます。50Hz地域の方は、電源を入れる時、 プッシュスイッチを押したまま電源を入れます。60Hz地域の方は、そのまま電源スイッチを入れてください。

起動すると、最初に大きな波が見えます。2Sweep以内に波が安定し、心電が見える様に成ります。
起動後は、プッシュスイッチを押すごとに、波形の拡大や、スイープ速度の変更が出来ます。
数回押すと、元の状態に戻ります。
一応、病院のECGにあわせて、1dot40mSに調整して(あったと思うんですけど・・・)

波形が逆さに成って仕舞ったら、右手と左手のプローブを入れ替えます。
ちなみに、右足は、回路図からもお分かりの通り、基準電位です。が、接続しなくても、あまり問題ありません。
なお、精密な計測には、心電ならば、心臓を交差する回路で、その中心電位からの体表の誘導電位を測定します。 それが無い場合は、簡易測定となります。例えば、病院で6ChのECGで測定する場合、 両手と両足に電極(巨大な洗濯バサミのような電極)を付けますよね。あの4点で基準電位を出します。 そこから、体表にみぞおちの上から、脇までV1, V2....V6と、6点を計測しています。
逆に、AEDの場合、右肩の下とみぞおちの左の脇に電極を付けて細動を検出します。このシステムと同じですね。 だから、このシステムの場合も、AEDと同じ位置にプローブを付けても、きれいな波形が観測できます。

それから、計測する時は、リラックスして、力を抜いて計測してください。
決して、私の様に、波形が見え始め「おぉ〜おぉ〜、キターっ」とか、興奮しないようにしてください。 途端に、心電ではなく、筋電が乗って、訳の分からない波形になりますからね(笑
ただでさえ、波形が見えたら、興奮して、心電が乱れますので(笑

実験のポイント
電極を付ける位置によって、波形が異なります。右足、右手、左脇や、右足、右胸、左脇など、 どこからどこに向かって誘導した電位であるか、その場所は、心臓のどの部位からの誘導なのか、 よくドラマなどで見慣れた波形が出る場所、普通は観る事の無い波形が出る場所、いろいろです。 詳しくは図書館で(^^;

実は、機能は半分ほど・・・

実は、製作の途中で忙しくなって、放置しています。まだ、心拍/分の表示や、心拍に合わせて 点滅するハートマークなど、作ってません。

応用
このシステムの表示部分は、意外と汎用設計になっていまして、心電計と言えば、脈流計がセットですね。 高校(1987)で、塩ビ管にLEDと、フォトトランジスタと、簡単なアンプで作った脈流計。学校では、オシロスコープで 表示させていましたが、この表示部分と組み合わせても、面白いと思います。

逆に、生体アンプをいくつも作って多チャネル化するのも面白そうですが、大きくなるし、めんどくさいでしょうね。 脳波とかも採って観たい気はしますが・・・。

編集後記・・・・

同窓会で・・・
二十歳の同窓会で、もう就職している友達も結構居ました。私も就職していました。 勿論、その中に看護士さんも何人か居ました。 その看護士さん数名と私は、結構仲が良かったので、同窓会でも話していたのですが、 その中で、ささみちゃん、何やってるの?。と言うから、会社でECGの試作とかやってるの。 って答えたら、流石看護士さん。すぐに解ってくれたのですが、逆に、

「凄い凄い!!!、何で波形が出るの?」 と、質問されて仕舞い、何だか専門外の説明までする羽目に成って仕舞った事が有りました(トホホ)。 電子屋なら、不思議でも何でもない原理なんですけど、看護士さんは、ハード屋じゃありませんからね。(苦

まぁ、その後、私の人生が狂いに狂って、やっと地の底から這い上がったのに、医学部 医学課の2次試験に落ちてからは、 再び奈落の底に叩き落される事と成って仕舞うとは、夢にも思わなかった未来でした。

まぁ、人生なんて、失敗して何ぼでしょ?(笑