OpenFlexureMicroscopeメモ の履歴(No.24)


OpenFlexure Microscopeメモ(作成2025/01/19)(最終更新2025/01/30)

OFM_completed_20250129.png
最新の状況(ハードは完成)

現在制作途中です…

OpenFlexure Microscopeについて

 OpenFlexureMicroscopeはflexure(曲げ)を利用した試料移動メカニズムを採用した、デジタルカメラで画像を撮るタイプの顕微鏡です。以下OFMと略します。ステッピングモーターでXYZ方向の試料移動が自動化されています(手動バージョンも作れます)。3Dプリンターでは金属のような精密な加工はできないし、材料は変形しやすいので、精密ステージのようなメカニズムはうまく機能しません。そのためにflexureを利用して変位させるのがこの顕微鏡独自のアイデアです。下に示したのがflexureパーツです。これはプリンターのテスト用に一番最初に印刷させられるパーツでもあります。顕微鏡本体にはもう少し大きいflexureが使われています。実際に曲がるのは上下の四角い部分の左右にある薄い部分です。この場合の変形は、下側が固定されているとすると上側が左右に動く感じです。

flexure.png

 この顕微鏡の本体部分は3Dプリンターで印刷することができますし、それ以外も市販のパーツを集めて、顕微鏡を作ることができます。これらの作成方法等の詳細は公開されており、誰でも作ることができるようになってます。基本形は倒立型有限光学系の透過顕微鏡ですが、反射、蛍光、偏光、無限光学系、uprightタイプなど色々なバリエーションが作られています。flexureを使った移動機構の説明はRev. Scientific Inst.の論文が分かりやすいと思います。それとbioRxivの論文も。どちらもオープンアクセスです。
 制御(モーターやカメラ)にはラズパイ(Raspberry Pi)を使ってます。顕微鏡制御のみラズパイにやらせて観察はPCでするか、ラズパイで観察まですることもできるようです。後者の場合は画像処理があるので、ラズパイ4Bが必要だと思います。標準構成ではラズパイの公式カメラを使って試料を観察します。
 なお、OpenFlexure Microscope(以下OFM)では試料ステージはXY軸方向の移動のみで、Z軸はステージではなく顕微鏡対物レンズ部分をZ軸方向に動かします。これとは別に試料ステージのXYZ軸を動かせるものもあって、OpenFlexure Delta Stageになります。顕微鏡ではなくステージに特化したものとしてはOpenFlexure Block Stageがあります。それらも作ってみたいと思ってます。

OFMを作成する経緯

 私は顕微分光装置の一部として顕微鏡部分を作ることがよくあるので、この顕微鏡に興味を持ちました。機構から見てあまり重いものは載せることはできなさそうですが、試料部の走査などで参考になるところがありそうです。そこで作成してみることにしました。3Dプリンターを昨年購入して、Sunscanなど印刷して経験しているのも後押ししてくれてます。
 作成しているのは最新版Ver.7 beta3です。とりあえずは基本の倒立型で透過照明の顕微鏡を作成してますが、無限光学系や反射、偏光ができるものへの改造も考えています。XYZ軸はステッピングモーターで駆動します。ステッピングモーターでネジを回転させて、そのネジがレバーを押して、そのレバーがflexureを押して変位が生じるようになってます。
 作成に必要な主要パーツを含むキットが複数のベンダーから現在入手可能となってます。ちょっと調べた感じでは、TauLabかIO Rodeoがよさそうでした。IO Rodeoでは3Dプリントしたパーツを含むキットが200ドル、含まないものが135ドルで売られています。これらにはラズパイカメラ、照明部分とSangaboardが含まれています。ラズパイ4Bと対物レンズとチューブレンズが含まれていません。なおlow cost版はラズパイカメラのレンズを対物レンズに流用するので、別途対物レンズを買う必要はありません。
 私はキットではなく自分で作ることを選びました。これはキットに含まれるパーツの一部を既にいくつか持っていることがあります。さらに照明部分とモーターのラズパイ対応ドライバーボード(Sangaboard)は既製品をキットで売っているベンダーで買った方が楽なのですが、それらも自作で対応することにしました。ただ照明部分とモータードライバーを自作する場合は、標準の組み立て方法ではなく、それらの部分については"Customisations and alternatives"の"No access to the illumination PCB"と"No access to the Sangaboard"のところを参照して同等品を作る必要があります。後者の場合でもラズパイが乗る引き出し部分は共通です。Sangaboardがラズパイの上に乗るのですが、使わない場合はその代わりのボードを印刷する必要があります。そこにモーターのドライバー基板3つとArduino Nanoが乗ります。Sangaboardを使うよりは面倒な作業(配線やDC5V供給方法など)が増えるので、Sangaboardを使える方は使ったほうがいいのかもしれません。

OpenFlexureMicroscope-3DP-mainbody.png
印刷したOFM本体部分

OFMの3Dプリントパーツの印刷

 まずはパーツの印刷から。手順では最初に上に示したflexureパーツをテスト印刷することが要求されます。これで自分の持っている3Dプリンターで印刷可能かどうかの判断ができます。比較的小さいパーツでそれほど時間もかからないので、プリンターの適切な条件を見つけるためにも使えます。これがうまく印刷出来ない場合はキットを買うか、印刷を外部に依頼する必要があります。私の場合はAnkerMakeのM5CでPLA+フィラメント、0.4 mmのノズルで印刷してみましたが、特に問題はなかったので自分でパーツを印刷することにしました。最初に0.2 mmノズルを試しました。表面などは綺麗になるのですが、印刷に時間がかかりすぎるので止めました。スライサーはAnkerMake Studioのものを使ってます。
 なおいくつかプリンター設定をAnkerMake Studio上で変える必要がありました。まずサポートは使いません。スライサーでサポートを使うように警告が出ることがありますが、無視します。また本体部分(main_body.stl)のみはbrim(つば)自体がstlに含まれているので、brimを無効にします。layer heightは0.2 mmに、Slice gap closing radiusは0.001 mmに設定。ちょうど白と黒のフィラメントを持っていたので、本体側は主に白、スタンド側とギアは黒で印刷しました。そういえばIO Rodeoのキットは色を指定できるようでした。なお対物レンズを取り付けるパーツのみは必ず黒フィラメントで作る必要があります。なお、無限光学系にするとかの場合は(光学系が下側に伸びる)、スタンドを高さが高いバージョンで作る必要があります。私は後のことを考えて高いスタンドも印刷してます。
 一応必要なパーツは印刷できました。オーバーハング部分(中空に浮いている部分)がサポートなしでうまく印刷されるか気になりますが、フィラメントの垂れ下がりが本体とスタンドの開口部分で一部ありましたが、装置の機構に影響を及ぼすほどではないようなので、これでもOKとしました。本体部分(main_body.stl)が一番印刷時間がかかり、9時間弱でした。
 1箇所だけ内ネジを印刷しているパーツがあります。対物レンズをRMSネジで取り付けるパーツのところで、対物レンズを取り付けてみたところ問題なくねじ込めて固定されました。ただ慎重にねじ込まないとやわらないネジ部分を壊します。
 ラズパイと取り付ける引き出しパーツにはラズパイのUSB-C端子が来る部分に穴が開いてません。これではラズパイに電源供給できません。スリットは入っているので、それ広げて穴を開けました。理由はよく分かりませんが、Sangaboardを使っている時はそちらから電源を供給するのかもしれません。Sangaboardの来るあたりには穴があるので。Sangaboardを使わない時はArduino NanoのUSB端子がこの位置にきます。
 印刷された本体を触ってみると、flexureをどう使ってX,Y軸移動、Z軸移動させているかがよく分かります。
 顕微鏡には色んなバリエーションがありますが、作成の情報等は少なくなるようです…また対物レンズはどれもRMSネジのものしか対応してないようです。フォーラムの投稿を読んでいると岩石用に改造した方が複数いました。1人の方は回転ステージまで作ってました。
 ラズパイカメラV2のセンサー仕様:Sony IMX291PQで1/4型、3280x2464 pixel, 1 pixelサイズ1.12x1.12ミクロンで裏面照射型。pixelが小さいのでセンサーサイズも小さい…

OFMの他パーツの入手

 顕微鏡作成の手順の最初のところにパーツリストがあります。照明部分とSangaboardを使わない場合にはそこに含まれていないパーツも必要になります。また倒立型でないタイプや無限光学系などでは違うパーツを使ったり、部品が増えたりするので要注意。多種のネジも必要で準備するのは結構面倒です。ホームセンターで見つからないネジも多かったので。キットだとネジ類も一式用意されているので便利なのですが…

OFMの本体ハード組み立て

 組み立てについては 詳細な インストラクション があるので、その通りにやります。youtubeには制作動画がありますが、大体はちょっと古いバージョンのものです。ただ、LED部分とモータードライバー部分は"Customisations and alternatives"の"No access to the illumination PCB"と"No access to the Sangaboard"を参照しながら作ります。
 まずは本体からbrim(ひれ)を取り除き、サポートが10箇所あるので、それを切断します。その場所はインストラクションのところの図に位置が赤い線で示されています。計10箇所あります。ニッパでカットします。良く分からないのは、本体とスタンドの前面のところにある四角い部分はカットするのかしないのか?完成して使っている写真を見るとここをカットしているものが多いのですが、インストラクションの図では最後までここを残したままになってます。カットした方が内部へのアクセスがしやすくなるが、必ずしもカットする必要はないのかもしれません。
 次にM3ナットを本体とスタンドへ埋め込み。ナットの凹みのところへ固定する作業。OFMでは熱で埋め込むインサートナットは使わないで普通のナットを使います。それを埋め込む作業。ナット埋め込んだので、試料保持用のクリップを取り付けた。
 次の組み立ては順番ではモーター部分で、六角ボルトM3x25がちょうど届いたので、真鍮ナットを埋め込み、大ギアを通してボルトをそこにねじ込みました(3セット)。次にネジ部に潤滑油を差します。そしてOリングを取り付けます。Oリングは可動ネジ部分に引っ張り力を与えるために使用します。顕微鏡作成で最大の難関らしいです。実際youtubeにあるVer.7 alpha版の作成動画では、内部のOリングが引っかかる突起を折ってしまう場面が2回ありました(本体はもう使えないので再印刷必要…)。しかし実際にやってみると問題なくOリングを取り付けられました。注意することはネジが動かないようにする治具で押さえておきながら、Oリングを挿入すること。そして小ネジのついたモーターと配線カバーをM4ネジで取り付けます。
 パーツ待ちで順番前後しますが、照明部分を作ります。5 mm砲丸型LEDと130オームの抵抗をハンダづけ。それにケーブルをハンダづけして、他端をコネクターに繋ぎ、2ポートのコネクターハウジングに納める。ケーブルをコネクターに繋ぐには新しく買った精密圧着ペンチを使いました。5 V電源を繋いで点灯することを確認。それをLEDホルダーに入れて、コンデンサーリッドに取り付けました。なおこの部分はキットでは完成品が付属します。また、キットではチップマウント型のLEDが基板に載っています。そちらが最新版で、5 mm LEDを使うのは古いタイプらしい。LED部分を自作する場合は電源(5V)はラズパイの端子から取ることになります。PMMAのコンデンサーレンズをイルミネーションヘッド部分に取り付けます。取り付けには印刷したレンズ取り付け治具を使ってヘッド部分に押し込みます。ちゃんと入って、傾いてないことを確認します。それをイルミネーション部分に取り付ければ完成。

OpenFlexureMicrsoscope-making-20250121.png
大ギアを取り付けた本体と作成した照明用LED部分(左)

 モータードライバーとArduino Nanoの配線をします。私は導線両端にコネクターを取り付けて、それをコネクタソケットに入れて、端子間を接続しました。結構大変。またコネクタソケットを使うと結構上側にスペースが必要で、スタンドに入れられるのか微妙な感じになります。引き出し部分の高さがもう少し高いといいのですが。Sangaboardを使った場合には不要な悩みです。またY軸が引き出し側からは最も遠いため、Y軸モーターのケーブルが最も短くなります。なのでドライバーボードで最も引き出しの先端側にあるものにY軸モーターからのプラグを繋げるようにNanoとの配線をします。私は配線してからこれに気づいたので、配線し直しました…
 またドライバーの電源ですが、これはDC5 V用ソケットへ配線しましたが、これもコネクターソケットを使うと高すぎてダメなので、ソケットは使わずコネクターを折り曲げて差して、絶縁のためにコネクターにテープを巻いて対応しました。ラズパイボードから取れるかもしれませんが、さすがにモーター3個だと難しそうなのでDC 5V電源から供給することにしました。これ用の穴は引き出し部分にはないので、顕微鏡の前面から出すことになります。
 モータードライバーへステッピングモーターからのケーブル等を繋いで、引き出し部分を突き出ているワイヤーを抑えながらスタンドに何とか収納させて、本体ハードは一応完成しました。よく見ると引き出し部分のワイヤが顕微鏡カメラ部分まで来ているのでちょっとZ軸移動に影響しないか気になります。多分もう引き出し部分はそのままは出てこないと思います。出すためには本体を上側に移動させてからやる必要がありそうです。これらの問題のいくつかは背の高い方のスタンドを使えば改善するので、問題があるようなら交換するつもりです。

OFM_wiring_20250128.png
モータードライバー(LEDを外している)とArduino Nanoの配線(ラズパイはこの下にある)
 

OFMを動かす

 64 GBのマイクロSDにラズパイOSを書き込みました。これにはラズパイOSを書き込むImagerを使うPCにインストールして、ダウンロードしておいたimgファイルをImagerでマイクロSDに書き込むだけ。そのマイクロSDをラズパイボードに挿します。
 Arduino Nanoにモータードライバー用のファームウェアを入れる必要があります。これも説明通りなのですが、Gitlabの説明はarduino-cliを使った説明で、GUIのArduino IDEを使ったものではありません。基本的にはArduino IDEで同じライブラリーなど導入すればいいと思います。最初arduino-cliでやってましたがポートを指定するところでうまくいきません。そこでArduino IDEではsangaboard.inoをコンパイルは何とかできましたが、なぜかNanoへアップロードするところがうまくいきません。他にArduino Nano EveryとOsoyooのNano互換を持っているので、それらで試したところOsoyooのNano互換のみアップロードできました。なのでオリジナルNanoと交換することに。OsoyooのNano互換はUSB-Cなところがいいのですが、6ピンコネクターが出っ張っているため、そのままではボートに取り付けられません。それを外してオリジナルNanoと交換する予定です。

OpenFlexure Block Stage

 OFMのパーツ待っている間、3Dプリンターは空いているので、OpenFlexure Block Stage(以下OFBS)も印刷してみました。こちらもflexureメカニズムを使ったものですが、こちらは顕微鏡部分はなくステージ部分のみです。OpenFlexure Microscopeとは違ってステージはZ軸方向にも動きます(Microscopeではステージではなく対物レンズ+カメラ部分がZ軸方向に動く)。
 OFBSもOFM同様に印刷して、組み立てました。光学装置で使うかもしれないので黒一色にしてます。こちらは顕微鏡部や照明部がないのでシンプルです。Oリングも問題なく取り付けて、完成しました。小ギアはモーターを使う時に必要で、手動で動かす場合は不要です。
 OFBSは手動で動かすなら数千円で作れます。
 一度顕微ラマン分光装置のステージとして使えるか見てみようと思ってますが、接続のためにポリアセタール板のベースを作りました。
 モーターを付けて制御することを考えてますが、簡単な制御にはM5Stackに3チャンネルのモータードライブユニットを付けてジョイスティックで操作できるようにしようとしてます。また、OFBSのstlに含まれている小ギアを印刷したのですが、ちょっとセンターの穴が使ったステッピングモーター(28BYJ-48)には大きすぎるようです。また締め付け用のネジ穴もありません。仕方ないのでOFMの小ギアを流用しました。多分ギア的には同じはず。

OpenFlexureBlockStage-20250125.png