前回LEDとフォトトランジスタを1パッケージに収め、反射光を使って脈拍などを測定する用途のデバイスNJL5501Rを別件回路に接続して脈拍らしきもの観察。実は手元にもう一つ「バイオモニタリングセンサ」が引出しの奥で眠ってました。NJL5513R、前回の5501Rの兄弟デバイスです。でもこちらはフォトダイオードなんだな。
※「部品屋根性」投稿順Indexはこちら
NJL5513R、3波長の反射型バイオモニタリングセンサ
前回同様、今は日清紡マイクロデバイス社の一部になっているJRC(新日本無線)の製品です。このデバイスも日清紡マイクロデバイスになる以前にディスコンになっていたのか、保守品、生産終了品のページにも見当たりませぬ。しかしみんな大好き秋月電子通商殿の以下のページよりピッチ変換キットとして購入できます。
バイオモニタリングセンサ NJL5513R ピッチ変換キット
前回NJL5501Rとの違いは以下の2点です。
-
- 搭載のLEDは赤外、赤、緑の3波長
- フォトダイオードで受光
NJL5501Rは赤外と赤の2色でしたが、こちらは3色とゴージャス?です。その上、緑は2灯搭載(多分、受光のピーク波長から緑が一番遠いので盛っているのかと?知らんけど。)
しかし問題は、受光素子としてフォトダイオードを使っていることです。フォトトランジスタであれば、別件記事の回路そのままで信号を取り出せたのですが、ちょっと違う。。。
トランスインピーダンスアンプだな、これは
と短絡。大丈夫か?
トランスインピーダンス・アンプ
フォトトランジスタなど「微小な電流」を流し出してくれる素子の電流を取り扱いやすい電圧に変換してくれる回路、というのがこのアナログ素人の拙い理解です。自分じゃ設計できる気がしません。しかし上記のように大きく出たのは、以下のアナデバ社ページでトランスインピーダンス・アンプが設計できることを知っていたからです。
相当前に、以下の別シリーズ記事で使ってみたことがあり、何かに使えるのを虎視眈々と狙ってました。ホントか?
お手軽ツールで今更学ぶアナログ(16) アナデバ、フォトダイオード回路設計ウイザード
ただし、上記の記事でも書いたとおり、この「ウイザード」当然ですが、アナデバ社のオペアンプのみターゲットです、それも「推し」のオペアンプどものみ。毎度お世話になっている古いOP07などは「推し」に入ってないみたいです。当方手元在庫のオペアンプはそれほど種類なく、ましてやアナデバ様の「推し」などない、と思ったらありました。
LT1490A デュアル/クワッドOver-The-Top マイクロパワー・レール・トゥ・レール入出力オペアンプ
ちょっとね、トランスインピーダンス・アンプを作るのには割鶏牛刀のそしりをうけるかもしれませぬ。バッテリ保護回路用のアンプです。速度は速くないですが、Over-The-Top(R)です。このアナデバ様の商標は『入力同相範囲は、V+に関係なくV-より44V高い電圧まで』許すという表明であります。とんでもねえなあ。普通はV+より僅かに上の電圧を超えると「壊れる」かもなデバイスが多いなか、V-より44Vかよ。。。
まあ、電圧やら電流やら大いにオーバスペックですが、ウイザードで選択できるので、とりあえずこれを選択することに。
フォトダイオード回路設計ウイザード
最初はフォトダイオードの特性の入力からです。JRC殿のデータシートには、下記のパラメータぴったんこの項目が全てあるという分けではないのですが、データシートをヒックリ返しながらグラフなどをみて、後は野となれ山となれ、勝手に決めてございまする。
いいのかな~こんなことで。
つづいてトランスインピーダンス・アンプの目標値とターゲットとするオペアンプの入力です。オペアンプは今回LT1470A一択ですが、Target Bandwidth、ホントは~3Hzと超低いです。一方、この「ウイザード」が狙っているのは「高速な信号転送」なんだと思います。最低100Hz、本当は数百kHzどころか数MHzといったところがツールのホントの狙いじゃないかと。ですからツール的にも、かなりミスマッチというか、なんというか。
パルス応答(時間波形)も見れます。こんな感じ(こんな速い応答してくれなくても脈拍とれるケド、多分。)
周波数応答もこんな感じ。ホントはカットオフ3Hzでいいんだけど。
至れり尽くせりなのは、BOMまで作ってくれることです。Bill Of Materials(部品表)ね。
さらに言えば、この近くに「ボタン」あり。そのボタンを押せばアナデバ様にオペアンプのオーダーが入るっと。あらえっさっさ。
まっこと至れり尽くせりのツールなんでありますが、必要なDesignFilesというのをダウンロードすることも可能です。その中には当然LTspiceの回路図も漏れなく入ってます。
LTspiceでシミュレーション
ツールで設計してもらった回路図の定数がコマケーので、手元在庫でかつ精度の悪い(お求めやすいやつ)に取り換えたLTspice回路図が以下に。
回路図はAC解析用など3種類あるのですが、今回は過渡応答のみシミュレーション。
多少、定数を変えたって50μAの電流を2Vの振幅に変換してくれるようです。
実機で確認するぞ
ここまでやったからには実機で動作確認するしかありません。ブレッドボード上にNJR5513とLT1490Aを並べて作った実験回路が以下に。
NJR5513のLEDは、赤のみ点灯といたしました(赤外はみえないし、緑は2回路必要だし。。。)
抵抗やらコンデンサが並んでいて見苦しいのは、ちょうどの定数のものがなかったためです。だいたいね。
上記は指を載せたとき(赤色の反射光がフォトダイオードに入射している状態)です。フル反射で2V目標だったので、こんなもんかい。しかし、200mVくらいの振幅で細かく揺れているのはまさに50Hz、商用電力の波形でしょう。
指をNJR5513から離すとこのレベルから値が大きく低下するのでフォトダイオードが光に反応し、トランスインピーダンス・アンプがそれを電圧に変換しているのは確からしいです。しかし、本当にこの信号の中に脈拍とか埋もれているのか?
Scilabでデジタル信号処理?
アナログお得意の人であれば、ここでフィルタとかアンプとか、ちゃちゃっとこさえて波形を取り出してみせるのでしょうが、アナログ不得意な年寄は既にかなり疲れてます。ええい、ままよ、とデジタル信号処理に走りました。まあ、デジタル信号処理もよくわかっちゃいないんだけど、一応、別シリーズにてお勉強中デス。
まずは上記の実機波形を CSVファイルとして、AnalogDiscovery2にファイル化してもらいます。そのファイル名をScilabで取り込んで、サンプリング周波数Fsと、信号波形を変数xに格納、そしてFFTをかけてみます。
dat = csvRead("waveformNJL5513_work.csv"); Fs = 1 / (dat(2,1) - dat(1,1)); x = dat(:,2)'; plotFFT2(Fs, x, 1);
なお、plotFFT2は前述の別シリーズでこさえた、Scilab関数の「ラッパ」の自前関数です。FFTかけた結果が以下に。
50Hzとその逓倍が「卓越」しておりますが、低い周波数を観察するとこの辺に脈拍(1Hz前後)が載っている雰囲気が無いわけでもない。ホントか?
そこでカットオフ周波数3HzのFIRフィルタ(100次)を適用してみます。計算するだけなら簡単。
coeff100=genFIRLP2(Fs, 100, 3, 1); y=filter(coeff100, 1, x); plotFFT2(Fs, y, 1);
なおgenFIRLP2も自前のラッパっす。
横軸800点=1秒であるので、なんだかほぼ1秒周期くらいの長い波が見える気がしないでもないです。これが脈拍っぽいっすね。
元の信号にガツンとLPFかけて、そしてこの2~3mVくらいの振幅をアンプしてやれたら脈拍くらいはとれるんでないの? でも今日はここまで。また続きがあれば次回。