TO-5パッケージに収まった浜松ホトニクスのSiフォトダイオードを仕込めるようなコネクタないかなーと思って、見た感じサイズが合いそうだったBNC-P-5FB(Ag)というコネクタを先週末千石で買ってきてみた。
で、帰ってきてからフォトダイオードをはめてみたのだけれど、
これがまた、あつらえたようにぴったり。
早速、BNCコネクタ型検出器*1にしてみた。
我ながら感動的にぴったりサイズだったので、ちょっと紹介してみる。
*1: 電流入力プリアンプに接続する用途。
いまどき、必要なことの大半はデジタルオシロでも大丈夫かな…って思って、テクトロニクスのDPO4054を借りてみた。500MHzのデジタル・フォスファ・オシロスコープってやつ。
いまどきのデジタルオシロスコープってすごい色々機能があって、USBやLANでPCからオシロスコープのデータを取り込めたり、トリガーが掛かった後のデータを1つだけ取り込んで閲覧できたり、普通にトリガーかかる前の波形観測から見たい位置までの遅延調整とか、いろいろできて面白い。
ところが、1kHzのパルス列の強度揺らぎをリアルタイムモニタするために、PINフォトダイオードからのパルス出力を繋いでみたら、どうやら長い時間レンジでは正確な表示が全然できないらしいことが分かった。理由は簡単で、kHzを見るためのレンジはミリ秒で、その時間レンジではデジタルオシロのサンプリング周波数が10Mサンプリング/s程度になってしまうから。
PINフォトの出力って、1ナノ秒くらいのパルスだから、パルスのピークをサンプリングできなくなるのね。…で、結果としてまともに表示できなくなる。*1
もちろん時間レンジを狭くして、PINフォトからのパルス1発だけ狭い時間レンジでモニタするならデジタルオシロでも全く問題ない。
写真:フェムト秒レーザーのPINフォト出力(浜松S5973)をオシロスコープでモニタ(レンジ:2ns, 500mV)
ただこれ、浜口研のテクトロ2467Bだと問題なくモニタできたような気がするので、アナログなら大丈夫なのかなと思って試しに手元の岩通のアナログオシロで試してみたけど、なんか手元のTS-80600でもSS-7802でも輝度が足りなくてPINホト出力のパルス列表示はうまくいかない…。
結局、テクトロ2467Bは偉大だったということなのだろうか…。*2
そういえばAgilentとLeCroyはどうなんだろ…。
*1: さらにいろいろ試してみたら、パルスの強度揺らぎを見たいだけなのでピーク検出モードを使うとOKらしいことが分かった。…というか、全然知らなかったけど、1divの時間が長くなって取り込みレートが落ちても実はサンプリング自体は最高サンプリングレート(2.5GS/s)で行われていて、そのうちどれを取り込んで表示するか…というところが表示方法のポイントなのね。9/5追記。
*2: 10/24追記:2467Bを手に入れて試してみましたが、どうやら記憶違いだったようです。ピンホト出力の1ms間隔表示、2467Bだとかろうじて見えないことはないですが、思っていたほど明瞭ではありませんでした。(手に入れた2467Bが劣化しているのでなければ。)あと、テクトロ2467Bと比較してみて、改めて岩通TS-80600も見直しました。(帯域が広いところとか、描画がシャープなところとか、画面が広いところとか。)
題名そのまんま。
バイトンは酢酸99%には溶けるらしいです。(当たり前とか言わないでー。)
バイトンでシールして酢酸入れといたらなんかバイトンOリングの表面が変わってました。
酢酸が飛んだ後に油状の物が残ってました。
…とここで、使ってる人じゃないと全然分からないと思うのでとりあえず解説入れると、バイトンっていうのはデュポンが作ってるフッ素ゴム。耐薬品性・耐熱性が高いゴムなのでOリングなどにしばしば使われます。
とはいえ、それでも普通のフッ素ゴムだとアセトンとか酢酸エチル、アミン類には耐えられないので、そういう溶剤を使うにはパーフロロゴムってやつを使うようです。代表格はデュポンのカルレッツ。
…なので、パーフロにすると影響受けなくなるはず。
ちなみに、バイトンのOリング価格は150円。
同じ規格のOリングを日本製パーフロ(リンク先は例)で作ると5000円前後
カルレッツで作ると7200円ナリ。
結構高いですね。
もう1つ小ネタを。
レンズホルダーとかによくついてる白いリング。
あれ、濃硫酸に入れると溶けます。
跡形もなくなります。
のもとはあれテフロンだと思って濃硫酸に放り込んだら、跡形もなくなりました。
残ったのは黄色くなった濃硫酸…。
いやー。
あれ、アセタール樹脂だって知らなかったんだよぅ。
スペクトルシリーズ第7弾。
先日の赤色レーザーポインターがうまくいったので、共立エレショップで 緑色レーザーダイオードモジュールも買って、とりあえず電池につないで光を出してみました。(写真の電池は単1)
緑色レーザーのスペクトルについては「スペクトルいろいろ」の方を見ていただくとして、このレーザーモジュール、このサイズで内部にレーザーダイオードにNd:YVO
さらにこのモジュール。送られてきた段階で5mW以上出たのが、基板の可変抵抗を動かすと夜空に光束が見えるようになるくらいには出力が増えます*2。
532nmで15mWとか出るなら、ひょっとしてもしかするとバンド幅さえ気にしなければ強いバンドならラマン散乱とか測定できてしまいそうな気もしないでもないですね。
まかりまちがって肉眼でラマン散乱光が見えたりはしないかと思って、試しにベンゼンをスクリュー管に入れて横からレーザーを照射しながらアルゴンレーザー用のレーザーゴーグル越しに見てみると、光路が見えました。…ということはどうやら、ベンゼンのラマン散乱なら肉眼で見えるくらいの出力はあるようです。
実は最初は四塩化炭素で試したのですが見えませんでした。
532nm励起のラマン散乱光は1000cm-1で562nmで、アルゴンレーザー用のレーザー保護眼鏡の吸収は550〜560nmくらいから始まります。
ですから800cm-1以下の低波数モードで構成される四塩化炭素のラマン散乱光が見えなかったのは実のところ当然なのでした。
…と、散々遊んだところでこのレーザーユニット、一応本当は実験に使おうと思って買ったものです。
実験用としても、外径が12mmなので何も考えなくても12mmのロッドクランプにぴったりはまるのでとても良い感じで、同時にクロスクランプが放熱ブロック的役割も果たしてくれます。パス調整用には1mWもあれば十分なので、出力調整ができるところもGood。逆に不便なところとしては、このレーザーユニットはどうやらレーザーポインター用らしいので、基板上のボタンを押さないと光らない点でしょうか。
ボタンを押さなくても光るようにちょっと改造しないと駄目そうです。
最後に念のため。
レーザーの出力が仮に目に入ると失明の危険…どころじゃなくて本当に失明します。
もしこのエントリーを見て製作を試す方がいらっしゃいましたら出力光には十分ご注意下さい。
しばらく前、アキバの秋月電子で赤色レーザーの発光モジュールを買ってきてあったのですが、今日はこれに電池ボックスをくっつけてみました。
レーザーダイオードが450円で電池ボックスが210円、計660円でレーザーポインターのできあがり。
…とはいえ、形がいびつなのでレーザーポインターとして使うにはちょっと不便です…。
まぁ、実のところこれはテストで、本命としては緑色のレーザーダイオードモジュールを買ってきて分光器の調整用とかそういう用途に*1使おうと計画中なのでした。
*1: ついでにほんとにレーザーポインタにも。
MC-10Nを制御するに至るための第2の関門は、分光器コントローラ内蔵の計測技研製USBDAQからデジタル信号を入出力できるようにすること。
USBDAQには流石にサンプルソースが添付されていたのでまだ分かりやすかったのだけれど、のもとはDAQというものを使ったことなかったし、それにサンプルの内容は1種類の処理をするプログラムでしかなかったので、結局分からなくなってメーカーに電話することに…。
計測技研は普通に分かりやすく教えてくれたので感謝。
(中略)…こうしてUSBDAQから読み書きができるようになり、そしてなんとか分光器も動かせるようになったのだった。
XOPは作ったことあったしサンプルは豊富に添付されているので、数時間で作成完了。
無事、IgorProからMC-10Nが動かせるようになったのだった。
めでたしめでたし。
折角なので、今後MC-10N&DU-2もしくはUSBDAQを使う人のために、サンプルを載せておく*2。
たったこれだけの処理をするだけなのに、サンプルソースが添付されていなかったばかりに資料集めから始めてTTLで幅3μ秒以上のパルスをDAQから送るには…とかなんとか考えながらやることになってしまったのが如何ともしがたい。
/* * MC10N & DU-2 monochromator with USBDAQ test program * 7th February 2006 by Tomonori NOMOTO */ #include<stdio.h> #include<windows.h> #include<tchar.h> #include"usbdaq.h" #define USBDAQ_ENUM_FAILURE 1 #define USBDAQ_OPEN_FAILURE 2 #define USBDAQ_WRITEPAGE_FAILURE 3 #define MC10N_LOWER_LIMIT 4 #define MC10N_UPPER_LIMIT 5 // Prototypes int initialize(); int finalize(); int init_300nm(); int send_pulses(int number, int interval); int marker_state_300nm(); int marker_state_100nm(); int is_0nm_limit(); int is_1300nm_limit(); /* Global Variables */ HANDLE hdl; int main (int argc, TCHAR **argv) { initialize(); // 各関数を使用するときはコメントを外す //init_300nm(); // 300nm 位置にイニシャライズするとき //send_pulses(100, 30); // 正転方向に100パルス送信(10nm動かす)。間隔:30(わりとゆっくり) finalize(); return 0; } int initialize() { TCHAR dev_id[64]; TCHAR *dev_name; dev_name = NULL; hdl = NULL; usbdaq_init (); if (usbdaq_enum (0, dev_id, sizeof (dev_id) / sizeof (TCHAR))) return USBDAQ_ENUM_FAILURE; // IDを取得できない場合エラー dev_name = strdup (dev_id); if(!usbdaq_open(&hdl, dev_name) && hdl) return 0; // USBDAQをオープンできればreturn 0 return USBDAQ_OPEN_FAILURE; // オープンできない場合エラー } int finalize() { if(hdl) usbdaq_close (hdl); usbdaq_final (); return 0; } int init_300nm() { int markerL=0; int error_code; while(!marker_state_300nm()) // 300nmイニシャルマーカーがHである間 { if(error_code = send_pulses(-50, 2)) return error_code; // 高速で50パルス(5nm)逆転方向に動かす } while(!markerL) // 100nm毎マーカーがH→Lになるまで { if(error_code = send_pulses(+1, 30)) return error_code; // 低速で1パルス(0.1nm)正転方向に動かす if(marker_state_100nm()==1) markerL=1; // 100nm毎マーカーの状態読出 } return 0; } int send_pulses(int pulses, int interval) { int sign; // pulsesの正負判定用 if(pulses > 0) sign = 1; // 正転パルス else if(pulses < 0) sign = -1; // 逆転パルス else return 0; // なにもしない if(interval < 1) interval = 1; // intervalの下限 if(interval > 1000) interval = 1000; // intervalの上限 if(pulses > 6000) pulses = 6000; // pulsesの上限 if(sign < 0 && !is_0nm_limit()) return MC10N_LOWER_LIMIT; // 0nmリミットから逆転する場合エラー if(sign > 0 && !is_1300nm_limit()) return MC10N_UPPER_LIMIT; // 1300nmリミットから正転する場合エラー { struct usbdaq_page pPage; memset(&pPage, 0, sizeof (pPage)); // pPageを0で埋めてアロケート // ページ0:デジタル出力に予め0を送ってHにする if(usbdaq_writepage(hdl, 0, &pPage)) return USBDAQ_WRITEPAGE_FAILURE; // 失敗すればエラー // パルス送信 { int i; for(i=0;i<sign*pulses;i++) // 10パルスで約1nm移動 { // L出力 if(sign == 1) { // 正転パルスL出力(0000000000000001) pPage.value[0]=0x0001; } else if(sign == -1) { // 逆転パルスL出力(0000000000000010) pPage.value[0]=0x0002; } if(usbdaq_writepage(hdl, 0, &pPage)) return USBDAQ_WRITEPAGE_FAILURE; // H出力(intervalで指定した回数だけHを出力して間隔を開ける) { int j; for(j=0;j<=interval;j++) { // H出力 pPage.value[0]=0x0000; if(usbdaq_writepage(hdl, 0, &pPage)) return USBDAQ_WRITEPAGE_FAILURE; } } // 波長位置チェック if(sign < 0 && !is_0nm_limit()) return MC10N_LOWER_LIMIT; // 0nmリミットから逆転する場合エラー if(sign > 0 && !is_1300nm_limit()) return MC10N_UPPER_LIMIT; // 1300nmリミットから正転する場合エラー } } } return 0; // 正常終了で0を返す } int marker_state_300nm() // H=0, L=1(270〜290nm以下でL, 以上ならH) { struct usbdaq_page pPage; memset(&pPage, 0, sizeof (pPage)); // ページ12:デジタル入力の読み出し if(usbdaq_readpage(hdl, 12, &pPage)) return -1; // 読み出し失敗 if((pPage.value[0] & 8)==0) // 8(00001000)はIN4:300nmイニシャルマーカー出力 return 0; // 300nm marker 'H' = over 300nm else return 1; // 300nm marker 'L' = under 300nm } int marker_state_100nm() // H=0, L=1(マーカー出力の状態) { struct usbdaq_page pPage; memset(&pPage, 0, sizeof (pPage)); if(usbdaq_readpage(hdl, 12, &pPage)) return -1; // 読み出し失敗 if((pPage.value[0] & 4)==0) // 4(00000100)はIN3:100nm毎マーカー出力 return 0; // 100nm marker 'H' else return 1; // 100nm marker 'L' } int is_0nm_limit() // H=0, L=1(Hならリミット) { struct usbdaq_page pPage; memset(&pPage, 0, sizeof (pPage)); if(usbdaq_readpage(hdl, 12, &pPage)) return -1; // 読み出し失敗 if((pPage.value[0] & 2)==0) // 2(00000010)はIN2:下限リミット出力 return 0; // 0nm limit 'H' else return 1; // 0nm limit 'L' } int is_1300nm_limit() // H=0, L=1(Hならリミット) { struct usbdaq_page pPage; memset(&pPage, 0, sizeof (pPage)); if(usbdaq_readpage(hdl, 12, &pPage)) return -1; // 読み出し失敗 if((pPage.value[0] & 1)==0) // 1(00000001)はIN1:上限リミット出力 return 0; // 1300nm limit 'H' else return 1; // 1300nm limit 'L' }
大西研にリツー応用光学という会社のMC-10Nという分光器(モノクロメータ)がある。
最近、この分光器をIgorProから制御するためのXOPを作った。
この分光器、コンパクトな分光器(f=10cm)で悪くはないものだとは思うのだけれど、PCから制御できるようになるまでの道のりは長かった。
なんせ納品時にはハードウェア類(分光器&PCと通信する用のUSB接続DAQユニットとステッピングモータを制御する回路入りの箱)と、内蔵のUSBDAQのドライバ類一式、動作確認用サンプルプログラムしか入っていなかったのだ。
動作確認用サンプルプログラムが入っているし何が問題なの?…と思われるかもしれない。
ところが、このプログラムはバイナリだけのサンプル。ソースコードは添付されていない。
しかも、USBDAQとその先のステッピングモータを制御するための信号の資料も何一つ添付されていなかった。
まかりなりにも計測機器のPC制御用ハードウェアなんだから、普通なら実際の装置を動かす分光器アクセス用ライブラリやサンプルソースの1つや2つ、添付されて然るべきだよねー。
正直、「これでどうやってプログラム作れというのジャ!! 箱開いてこっちで回路解析して、動くようにプログラム作れとでも言うのか?」と思った。
そこでメーカーに電話して聞いてみた。そしたら、
「USBDAQのドライバとサンプルプログラムが入っているから動かせると思いますが…。」
で、サンプルプログラムのソースは契約上出せないと…。
ご冗談でしょう。…と思いながら、
「そうですか、ソース出せないですか。でもDAQユニットがステッピングモータを動かすためには電気信号を送らないといけないですよね。そのための信号の資料が全然添付されていないんですけど、なんとかならんのですか??」
とかなんとか、いまいち通じない相手に話すこと数十分。やっとこさ信号資料を送ってもらうことに成功した。
こうして、制御に至る第1関門はなんとかクリアした。
第5版 実験化学講座の9巻:分光-上が発売されているのを書籍部で発見。
なんか見たことあるような名前の先生方がたくさん並んでおられるので、著者割引という単語も一瞬脳裏をかすめたのだけれども、迷惑だろうし送料かかるだろうしと思い直し普通に書籍部で即購入。
生協で10%OFF+金券ショップで買った図書カード(3%OFF)で計13%OFFである。
それでも8000円以上するのだけれど…。
見てのとおり5mmボールレンチとコンビネーションレンチ。当然の如く光学定盤固定用。
ボールレンチはBONDHUSのもので、長くてT字なので細かいところに届きやすく締めやすい。
コンビネーションレンチは強く締め付けたいとき用。
どちらも案外売っていないもので、のもとは西川電子部品*1以外でこのBONDHUSのT字レンチを店頭販売している店をまだ知らない。
5mmのコンビネーションレンチも見たことなかったのだけれども*2、こないだ心斎橋のハンズで見かけたので即購入。550円くらいだったと思う。見てのとおり一応ちゃんとKTCだったりする。
そんなわけで、このBONDHUSのボールレンチは以前から秋葉原に行くと眺めていたものなので、こっちに来たら普通に置いてあったのがささやな幸せだったのでした。
とはいえ、最近ではT字じゃなくて普通の柄で長軸の方が良いかも*1…とか思っているのだったりもします。T字レンチで強く締めると手の腹が痛くなるし、力掛けるときはコンビネーションレンチ咬ませればいいわけだからね。
こんど探してみるかなぁ…。
3月中旬に注文した浜ホトのIR SCOPEが昨日届いた。納期2ヶ月。…ということは受注生産なのか??
これまでそのままの形で置いてあるものしか見たことなかったのだけれど、買うとペリカンケースに入ってるのね。このケース、一瞬”おおっ”って思ったけど、レンズを外さないと収納できないのが××。実験室用途だと一度レンズを取り付けたが最後、ケースに収納されることは二度となく、結局ケースは無駄ということになりそうな気がする。*1
ともあれ、カタログによると感度がある波長は300nmから1.5μmくらいまでだから、これを使うと(近)赤外光だろうが可視光だろうが紫外光だろうが見えるらしい。
これまで全然気づかなかったけど、IRスコープで赤外じゃなくて紫外域を見るという使い方もアリなのか*2。
まぁイメージコンバータの感度と付属(オプション)のコシナ製CマウントTVレンズの透過特性次第だけど*3。
*1: まぁそこが浜ホトらしいところなのかもしれないが…。
*2: U330とかU340とか使ってね。
*3: こういうの(http://www.pentax.co.jp/ppc/product/pro_a/uv.html)だったらOKなんだろうね。もちろん、紫外専用のCCDなんかと比べると感度悪そう。
それにしても、カタログの用途のところに書いてある、「古絵画など美術品の鑑定」って、一体どういうところ見るんでしょうねぇ…。