カスタムソフトウェアを作成するには
WinSpec32/WinView32におけるマクロ/SnapIn/AddIn
優れた検出器でも、その機能を引き出すソフトウェアがなければ意味がありません。また、ソフトウェアの使い勝手は極めて重要な要素です。当社では、分光用の汎用ソフトウェア-WinSpec32-をはじめとして、様々なアプリケーションに対応したソフトウェアをご用意しています。またアプリケーションに合わせたカスタムソフトウェアの作成にも対応しています。
下図にIBM-PC/AT互換機、OSにマイクロソフト社製Windows95/98/NTを用いた場合のプリンストンインスツルメンツ製CCDカメラ用ソフトウェアの概略を示します。なおバイオイメージング等で用いられるソフトウェアに関しては、別のページをご覧下さい。
当社の汎用アプリケーション
お客様の用途に合わせた
には、3つの方法で対応しております。
本項では、1,3のアプリケーションの紹介と5のカスタムソフトウェアの紹介、最後にそれらの動作概念を記述します。
WinSpecは、プリンストン・インスツルメンツ社の冷却デジタルCCDカメラを使用したスペクトルの測定と解析のために、作成された多機能ソフトウェアです。Microsoft Windows95/98またはWindowsNTオペレーティングシステムのもとで、プリンストン・インスツルメンツ製CCDカメラを制御します。
図は、WinSpecを用いて測定したHg-Arランプのスペクトルです。
WinSpecは非常に多機能、高性能なソフトウェアで、露光時間、素子のグルーピング(素子をグループ化すること)などプリンストン・インスツルメンツ製の冷却CCDカメラを制御する機能の他、スペクトルの演算機能、微弱光測定の際に問題となる宇宙線の除去機能などを有しています。
そして、アクトン社の分光器と組み合わせるとSpectrograph Calibrationを行う事が出来ます。これは、通常の波長Calibrationと異なり、分光器の中心波長等を動かしても正しく高精度に校正されます。さらに中心波長を動かして何本かのスペクトルを取得して、幅広いスペクトルにするGlue機能も使用する事が出来ます。
また、非常に高度なマクロ機能も有しています。WinSpecのマクロ機能に関しては、この項の最後に記述します。
近年急速に発達したパルスレーザーを用いて、物質の励起状態の光吸収測定を行う事が出来ます。通常ミリ秒、マイクロ秒オーダーの測定にはナノ秒レーザー励起+フラッシュランプ・プローブが、フェムト、ピコ秒オーダーでは、フェムト秒パルス励起+フェムト秒白色光(フェムト秒レーザーを水などに集光照射して発生する自己位相光)プローブを用います。こうした、白色光吸収スペクトル測定に特化したソフトウェアです。
物質の励起状態の光吸収スペクトルを得るためには、励起(Pump)光を照射しない時の試料を通過した白色光のスペクトルを測定したり(シャッターによる制御)、励起光と白色光の時間差(ミリ秒、マイクロ秒ではパルスジェネレーター、フェムト秒、ピコ秒では光学ステージ)を制御したりと言った作業が必要となります。
本ソフトウェアでは、設定した(励起光と白色光の)時間差を制御して、自動的に測定を行う事が出来ます。下は、測定の画面です。
また、測定しながら、特定の波長の時間変化を見ることも出来ます。
フェムト秒白色光Pump&Probe測定では、自己位相変調によって発生させた白色光の揺らぎが測定上の大きな問題となります。このため、白色光をビームスプリッタで分け、試料を通過しない白色光を同時にモニターして、その揺らぎを補正する機能も備えています。その場合、CCDチップのような2次元アレイであれば、試料を通過した白色光と通過しない白色光をチップの上下に分離させてフォーカスさせます。
また、赤外測定用にInGaAsフォトダイオードアレイを用いるバージョンもあります。この場合、InGaAsフォトダイオードアレイは1次元アレイなため、2台の検出器、コントローラーを制御して同様な測定を行えます。
日本ローパーでは、上記のWinSpecのSnapIn機能を用いたカスタムソフトウェアの作成実績が数多くあります。以下では、それらの例を示します。
WinSpecで測定されたスペクトルから色度、相関色温度等を求め、下図のようにCIE1976UCS等の色度グラフを表示させるSnapInです。
色度を正確に求めるにはスペクトルの感度較正が必要ですので、後述の感度較正SnapInと合わせて使用します。
顕微ラマンは、微小な領域のラマンスペクトルを取得する手法です(下図参照)。サンプルの性質の空間的分布を明らかにするために、サンプルを移動させて(もしくはレーザー光を走査する)取得する場合が多々あります。また、得られたラマンスペクトルからある情報(ラマンピークの波数など)を抽出して2次元的なイメージ(ラマンイメージング)を作成する事も行われます。これら、一連の作業を自動化するソフトウェアです。
ある物質の励起状態の性質を、その振動状態から明らかにする手法として、時間分解ラマン分光は極めて強力な手法です。通常、こうした目的のためには、下図のようにパルスレーザー光を物質に照射し、励起状態をつくり、更に、その励起状態のラマン散乱光を測定するため、ある時間差をつけてパルスレーザー光を照射します。
ナノ秒からマイクロ秒オーダーの時間分解ラマン散乱分光では、通常2台のナノ秒パルスレーザーを用いて、その間の時間差を変化させながらラマンスペクトルを測定する事で、時間分解ラマン散乱分光を行います。
こうした測定を自動的に行うソフトウェアです。なお、より高速のピコ秒(ないしはフェムト秒)時間分解ラマン散乱測定には後述する「光学ステージ駆動SnapIn」を使用する事が出来ます。
近年急速に発達した超短パルスレーザーは、1shotあたりのパルス幅が100fs以下という非常に短い時間幅となっています。光は1秒間に3x108m進む事が出来ますが、フェムト秒レーザーの波束の幅100fsという時間では、わずか30μmしか進むことが出来ません。この事から、いわゆるPump & Probe測定においてPump光とProbe光に、こうした超短パルスレーザーを用いて時間分解測定を行うには、2つのレーザー光の時間差をつけるのに光路差を利用する事が良く行われています(下図参照)。
このSnapInを起動すると、下のダイアログのように、ステージのスキャン範囲を設定して、あるステップで測定を行う事が出来ます。
通常のスペクトル(発光、ラマン等)の他にProbe光に白色光を用いてシ光学ャッターを使用する事で、光吸収測定も行えます。
分光器、CCD共に検出感度に波長依存性を持つため、放射輝度を正確に求めるためには標準光源などで測定系全体を較正する必要があります。基本的には、
波長λでの標準光源の絶対放射強度スペクトルを 発光測定系で測定された標準光源のスペクトルを、測定された発光スペクトルを とすると、感度較正をした発光スペクトルは、 で求める事が出来ます。
しかし、通常、標準光源の放射強度のスペクトルは、数nmおきにデータシートとして与えられ、分光器+CCDの組み合わせで測定したスペクトルもまた、CCDの1ピクセルの幅と分光器のパラメータで決まる不連続な波長点の集合であす。このため、両者のスペクトル間の演算を行うには、なんらかの補間が必要でとなります。本SnapInは、この補間、演算を簡便に行うプログラムです。測定しながら、その場で感度較正のデータを表示させることも出来ます。
もし、「自分の測定にあった分光用ソフトウェアを自分で作成したい」とお考えであれば、WinSpecのマクロ(AddIn/SnapIn)機能の使用をお勧めします。Visual Basicを用いたWinSpecの制御プログラムは、意外なほど簡単に作成する事が出来ます。
WinSpec32/WinView32におけるマクロ/SnapIn/AddIn
WinSpec/WinViewでは、マイクロソフト社製のWORDやEXCELと同様、Windows Automationをサポートしています。Automationとは文字通り自動化を意味します。では、何を自動化するのでしょう? 例えば「WinSpecのData Acquisition機能を用いてスペクトル(画像)を取得し、ある演算を行って、その結果をセーブする」という動作を行うとします。この一連の作業を人間の手で行うのではなく、あるアプリケーションから同じ動作をさせるとすると、あたかも「自動的に」動作したように見えるはずです。以前の16bit版のWinSpecでは、マクロベーシックというVisual Basic(Visual Basicはマイクロソフト社の製品です)ライクなインタープリタ言語で、こうした動作を行う事が出来ました。では、32bit版ではどう変わったのでしょう? それは劇的な進歩を遂げています(その代わり16bit版との互換性は失われました)。Automationでは、コンポーネント(WinSpec)が自分の機能(Data Acquisition等々)をインターフェースを通して別のコンポーネントに公開しています。従って、コンポーネントは、WinSpecのインターフェースさえ知っていれば(これは簡単に知る事が出来ます)記述するプログラミング言語を選ばないのです。Visual Basicは勿論、より強力なVisual C++、また簡単なスクリプト言語であるVBScriptやInternet Explorer 4.0 or 5.0などを利用する事が出来ます。下図に、それらの概念図を示します。
WinSpec/WinViewは自分の機能をインターフェースを通して公開しています。そしてプログラム(マクロ、AddIn、SnapIn)は、WinSpec/WinViewの機能をあたかも自分の機能であるかのように扱う事が出来ます。マクロとAddInの違いは、マクロがスクリプト言語で記述されているもので、AddInが独立したexe-fileである事です。一方SnapInは、DLL-fileですので、単独では動作せず、WinSpec/WinViewに登録され、メニューの一部として現れ、あたかもWinSpec/WinViewに内蔵された機能であるかのように見えます。プリンストンインスツルメンツ社では、Visual BasicによるAddIn, SnapInの作成方法を記述した文書を公開しています。なお、日本ローパーにおいて邦訳したものもありますので、詳しい作成方法は、そちらを参照してください。また、Automationの概念に関してはCOM(Component Object Module)プログラミングに関する書籍をお読みください。
EasyDLLは、プリンストン・インスツルメンツ製の冷却CCDを制御する低(ハードウェア)レベルのドライバです。WinSpec/WinView、PumpProbeソフトもEasyDLL上で動作しています。EasyDLLを用いたアプリケーション作成は、WinSpecのマクロ機能を用いるよりも困難ですが、より(ユーザー側の)自由度の高いアプリケーションを作成するのに用いる事が出来ます。
最終更新日 2000/07/14