ESPressoscopeメモ の履歴(No.10)


ESPressoscopeメモ(作成2025/08/22)(最終更新2025/08/25)

ESPressoscopes-and-cup.png
自作したESPressoscope2台とデロンギのデミタスカップ

ESPressoscope エスプレッソスコープ (Matchboxscope) について

 ESPressoscopeはカメラ付きのESP32ボードを利用した自作できる小型顕微鏡です。ボードがwifiのアクセスポイントとして機能します。オープンソースになっています。元々Matchboxscopeという名称でしたが、最近はESPressoscopeと変更されています。ただウェブ上ではMatchboxscopeがよく見られます。私はやはりオープンソースのOpenFlexureMicroscopeを以前作ってますが、こちらと比べるとESPressoscopeはもっとコンパクトで(上の写真でエスプレッソカップくらい)、安価に作ることができます。一方、OpenFlexureMicroscopeでは試料のXYZ移動はモーターで駆動可能でしたし(自動フォーカスもあり)、Raspberry Piは5年前くらいのPCの性能を持っているので、本体だけでも処理能力が高い利点があります。一方、ESPressoscopeは試料移動やフォーカスは手動となります(一部自動フォーカスのメカニズムを取り入れたものも存在はしますが)。また拡張的なことはあまりできませんが、一方で分光器(ESPpectrometer)、水中顕微鏡(Anglerfish)、マイクロ流体観察(Fluidicscope)、ホログラフィック顕微鏡(HoloESP)に特化したバージョンも存在します。ESPressoscopeは予算的には3〜4千円くらいでしょうか。ケース部分などは3Dプリンターで作ります(STLファイルが公開されています)。OpenFlexureMicroscopeのローコスト版と同じで、ESP32ボード付属のカメラレンズ(F2.2,f4 mm)を外して対物レンズに流用するので、レンズは別途必要ありません。倍率は4倍になります(レンズホルダーの厚さで変更可能)。カメラはどちらも基本OV2640が搭載されており、画素数は1600x1200、画素サイズは2.2x2.2ミクロン、1/4インチサイズで結構小さく、ラズパイのHQカメラより劣っている感じがあります。
 ESPressoscopeはハード的にはESP32-MBとESP32-CAMボードを使ったものと、XIAO ESP32S3 Senseを使ったものが存在します。後者は新しく、コンパクトで少し性能が高いようです。値段的には後者が少し高くなります。私が今回作ったのはXIAO ESP32S3 Senseを使ったものです。秋月電子通商で念の為2個買いました。
 私は分光器を自作している関係でESPpectrometerも気になったので調べたのですが、かなり低分解能だったりであまり興味が湧きませんでした。
 なおESPressoscopeの完成したものはwifiアクセスポイントとして働くので、PCにつないでおく必要はありません。もちろん電源は必要で、ESP32ボードのUSB-C端子から供給する必要があります(USBバッテリも使用可能)。顕微鏡像を見るためにはPC、タブレット、スマホからまずESPressoscopeのwifiアクセスポイントに接続して、ブラウザで特定アドレスに接続するだけです。
 ESPressoscopeについてはPlos Oneに論文が出ています。

ハード作成

ESPressoscope-front.png
正面から見たESPressoscope

 ESP32-MB+ESP32-CAMボードを使って作る場合はESPressoscopeのサイトを参考にすればいいのですが、XIAO ESP32S3 Senseの場合はちょっと情報がまとまってない感じがありました。一番いいのはVittorio Saggiomoさんの作成動画とそれに対応した3Dプリンター用STLを使うことです(そこには作成説明のpdfも置いてあります)。それ以外にM3ネジ類、バネかマグネット、小型のLEDランプ、インサートナットを使う場合はM3のものが必要です。他のサイトにはESP32-MB+ESP32-CAMボード用のベースを使って、XIAO ESP32S3 Sense用のアダプタを取り付けるようなSTLも公開されてますが、組み立ての詳しい情報がありません。
 基本Vittorio Saggiomoさんのyoutube動画を見ながら作れば問題ないと思いますが、以下3つ注意点があります。
 1つ目の注意点はXIAO ESP32S3 Senseのカメラレンズはサイズが2つあるようで、購入したレンズに合わせたレンズホルダーを使います。printablesのところでは大小2種のレンズホルダーが用意してあります。私の購入したものは小さい方のサイズでした。それとカメラ位置を安定させるために(実際使わなくても)マイクロSDカードを入れておくといいです。使ってない低容量のものを入れました。適当なものがない場合はカードのダミーSTLがあるので印刷して使います。  
 2つ目の注意点は、ESPressoscopeは試料台を浮かせておいて、ネジ3本で締めて間隔を調整してフォーカスを合わせます。浮かせるためにバネまたはネオジム磁石を使うので、まずはどちらを使うかを選択する必要があります。Vittorio Saggiomoさんの動画は磁石を使うケースですが、私はバネを使いました(2台目で磁石を使う予定)。バネは6 mm径で長さ15 mmくらいが適当でした(アマゾンで購入、3個必要で5個入りを買った)。なお磁石を使う場合は試料上にも磁石を1個置いて、試料固定用として使うようです(なので5個必要)。また、この3つのネジをインサートナットを使うか(その場合ちょっと大きめの穴になる)、ネジを捩じ込んで(タップを使ってもいいが)ネジを切って使うかによって、2種類のベース用STLがあります。Base_inserts.stlがインサートナットを使う方で、Base_no_inserts.stlが使わない方です。
 3つ目の注意点はカメラレンズを外すところです。この顕微鏡の場合はカメラレンズを外して、CMOSセンサーから少し距離を置いて配置することで顕微鏡として使えるようにしてます(OpenFlexureMicroscopeのローコスト版も同じ原理)。そのためカメラレンズを外さないといけないのですが、適切なプライヤーを使わないとプラスチックレンズを傷つけてしまいます(一応シールが貼ってありますが)。私は傷つけてしまいました(2個買っておいて正解)。仕方ないのでVittorio Saggiomoさんが動画で使っているプライヤー(Knipex Cobra XSと思われる)を買ってしまいました(XIAO ESP32S3 Sense1個分より高い…)。一応それで外すことができました。(ラズパイのHQカメラを持っている方はそれに付属のレンズ外し治具が使えるかもしれません。)
 ESP32-MB+ESP32-CAMボード版は作ってないのですが、作成動画を見る限りはほぼ同じように作ってました。もちろんSTLファイルはESP32-MB+ESP32-CAMボード版専用のものを使う必要があります。

LIHAO-LED-lamp.png

 照明ですが、ESP32-MB+ESP32-CAMボードの場合はボード表面に明るい白色LEDがあるので、その光を有効利用する形で潜望鏡的なものを3Dプリンターで作って、上側に一度反射させてそれを試料に当てています。3Dプリンターで印刷されたもの自体は反射率がよくないので、銀のスプレーやアルミ箔を貼って反射させています。一方XIAO ESP32S3 Senseの場合はそのようは白色LEDはないので、別途照明が必要となり、安い小型LED(電池、スイッチ込み)が使われています。私はアマゾンでLIHAOのミニLEDライト昼光色を買いました。ただ1個だけでは売ってなくて、15個入りを買いました…固定には分光器のために使って余っていた赤いヘッドのM4ネジを使ってます。
 下の写真は完成した1号機(これはバネを使っている)。本体から細い線が出ているのはwifiアンテナへ繋がる線です。ESP32-MB+ESP32-CAMボードにはwifiアンテナは付属してないようです。底の部分はM3六角穴付きネジの頭が4個出ているだけなので、ガタガタしたり滑るので、ソフトクッションを3個貼ってます。

ESPressoscope-completed.png
横から見たESPressoscope1号機

 XIAO ESP32S3 Senseを2台買っていたので、2台目を作りました。こちらはバネの代わりにマグネットで浮かせてみました。マグネットは7 mm直径厚さ4 mmが適当です(5個必要)。下の写真は完成した2号機です。また、焦点調整はバネ版では六角レンチを使いますが、こちらはハンドル(黒い部分)を取り付けました。これをM3焦点ネジにM3イモネジで固定します。そうするとハンドルを回転するとM3焦点ネジが回転して焦点を調整することができます。ハンドルのSTLファイルはVittorio Saggiomoさんのpritablesのところではなく、本家の方にあります。

ESPressoscope-No2-completed.png
正面から見たESPressoscope2号機

ソフトインストールと観察

 動画のようにESP32S3 Senseを組み込む前でもいいですが、ハード完成した後でもインストールは可能です。ソフトのインストールは動画通りなのですが、Chromeブラウザ(Edgeでもいいようです)を使うので、Chromeをインストールしてない方はまずChromeをインストールします。そしてUSB-CケーブルでESP32S3 SenseとPCを接続します。そしてChromeでファームウエアサイトにアクセスします。選択画像でESP32S3 Senseを選んで、Connectボタンをクリックします。そうするとシリアルポートの選択画面になります。USB JTAG/serial device unit(cu.usbmodem101)となっているものを選びます。そうすると接続されて、ダイアログが出てくるので、INSTALL ESP32S3-XIAOSENSEをクリック、確認が出てくるのでINSTALLをクリックします。インストールにはCH340ドライバーが必要ですが、これがない場合は途中でインストールするように誘導されます。そこで中国語のサイトに飛びますが、CH341(CH340も含む)をダウンロード(下载)して、インストールします。これで再度インストールすると今回は正常にインストールされるはずです。
 インストールしているのはカメラウェブサーバーで、こちらと基本同じものだと思います。顕微鏡専用に作っているのではなさそうです。
 USB-Cを繋いだままでPCからwifiアクセスポイントを見ると、新たにopenUC2xSeeedがあるのでそれを選択します。そしてChromeで192.168.4.1にアクセスすると左側がカメラ操作画面になるはずです。そのままでは画像は見えません。下側のStart Streamをクリックすると画像が見えるはずです。試料を試料台に載せて、照明をONにしてください。最初画面のResolutionが低いので上げます。3本のネジを回してフォーカスを合わせます(なるべく傾かないように移動させる)。明るさやコントラストなども調整できます。そこそこ綺麗に見えました(下の画像)。ただ更新速度はあまり速くはありません。最初MacBookAirからChromeやFirefoxで見てましたが、iPadのSafariでも見えました。USB出力のバッテリと合わせれば外の展示でも使えそうです。来年JpGUの研究所ブースに置いているかも…
 ESP32S3 Senseはコンパクトなために結構高温になるので、そこが不安なところです(まだ短時間でしか使ってません)。下側を嵩上げして、付属していた放熱板をつけるか、ミニファンを取り付けたいと思ってます。

ESPressoscope-first-light-olivine.png
自作したESPressoscopeで撮ったカンラン石薄片(クロス)
 静止画像は一応ダウンロードできるのですが、あまり解像度がよくありませんし、見えてる画像の一部しか入ってません。設定のところで変えられるはずですが、変えてもあまり改善されません。PCで見ているならPC側でスクリーンキャプチャした方がまだましですね。

 ところでレンズを壊してしまったXIAO ESP32S3 Senseをどうしたものかと考えていたら思い出しました。以前OpenFlexureMicroscopeを2台作ったのですが、1台はローコスト版なのでHQカメラ付属のレンズは対物レンズに流用してますが、もう1台の高級版?は対物レンズは別途用意したので、その外したレンズは保管してました。それを見つけてESP32S3 Senseに付けてみたところピッタリと入りました!しかしそうするとHQカメラ付属のレンズ外し工具がXIAO ESP32S3 Senseにも使えた可能性が出てきます。見た感じレンズの外形は同じ。Knipexのプライヤーを買う前に試せばよかった…HQカメラ付属レンズの焦点距離が同じかどうかは不明ですが、ESPressoscopeがもう1台作れそうです。しかしレンズなしでも分光装置でのちょっとした顕微像のモニターとかに使えそうです。センサーサイズは小さいのですが、コンパクトでwifiでブラウザで使えるし。ソーラボの25 mmケージに入るようなケースを作れば便利に使えそうに思います(ちょっとはみ出るはずですが)。