banner

ニュース

Sep 15, 2023

検査顕微鏡のハッキング

時々、非常に小さなものの写真を撮る必要があるのですが、コンデジのいわゆるマクロモードではうまくいきません。 また、小さなはんだ付け作業には検査スコープを手元に用意しておいても損はありませんが、私はほとんどの作業では片目にシンプルな宝石用ルーペを使用することを好みます。 そこで、親しい友人のアリババに 40 ドル強を送金しました。数週間後には、SD カードに静止画やビデオを記録する、半分は使える検査スコープの誇り高き所有者になりました。

残念ながら、インターフェースのデザインがおしゃれでマウントがぐらつくため、半分しか使えません。 そこで私は午後を費やして顕微鏡を分解し、WiFi とスクリプト言語を備えたマイクロコントローラーの制御下に置きました。 ずっといい! これで、顕微鏡のタイムラプス撮影ができるようになりましたが、さらに重要なのは、揺れるリグに触らずにブレのない写真を撮影できることです。 とても楽しいハックだったので、シェアしたいと思います。 読む!

スコープは届いてみると本当に楽しいです。 画像は問題なく、ほとんどすべてが宣伝どおりに機能します。 虫や花を眺めるのは少なくとも数時間は楽しかったです。 しかし、快適なユーザーエクスペリエンスを実現するための細かい部分はすべて失敗しています。

たとえば、SD カードの隙間が非常に狭いため、薄いもので押し込むか、非常に長い爪がないと挿入または取り外しができません。 一部のボタンは大きなフォーカスノブの後ろに届きにくいです。 たとえば LED リングライトをオンまたはオフにするメニュー システムはひどいものです。 これらは些細な疑問ですが、価格を考えると、まったく無視しても構いません。

しかし、私の目的にとって致命的なのは、スタンドが非常にぐらぐらしているため、写真を撮るために「OK」ボタンを押すと、そこにあった画像がぼやけてしまうことです。 ビデオ モードには「動き検出」方式があり、カメラが非常に揺れるので、常にオブジェクトが動いたと判断するため、常にオンになっています。 原因は、ゼリーのボウルのように小刻みに動く分厚いシリコン吸盤で終わる安っぽいフレームです。 これは三脚の設計方法ではありません。

振動の問題には 2 つの解決策が考えられます。 1 つ目は、より良いフレームを構築することです。検査スコープは便利な装備なので、おそらく最終的にはそうすることになるでしょう。 もう 1 つの解決策は、小刻みに動く小さな獣に触れずに、単純に露出 (およびその他) ボタンをトリガーすることです。 顕微鏡のインターネットへようこそ!

ケースを開けると、最初にキー パネル上に 5 つのテスト ポイントが並んでいることを見つけたので、何が起こっているかを確認するためにヘッダー ワイヤをそれらに半田付けしました。 (それは簡単でした!) これらには GND、VCC、KEY、PWR、および VBAT というラベルが付けられており、想像力の余地はほとんどありません。 5 つのうち 4 つは正しくラベル付けされています。

私は根っからのアナログハッカーで、未知の信号を探るときはいつもオシロスコープから始めるのですが、今回はロジックプローブから始めることにしました。なぜなら、確かに単一の KEY ラインがフロントパネルの 5 つのボタンをエンコードしていたからです。ある種のデジタルコードで。 各ボタンを押したときの動作がロジック スニファーで同じに見えたときの私の驚きを想像してみてください。 また燃えた。 信頼できるオシロスコープに戻りましょう。

5 つのボタンは分圧器の下半分として機能する 5 つの異なる抵抗に接続されており、ADC がこの電圧を読み取ってどのキーが押されたかを判断することがわかりました。 これは、黄色のスコープ トレース上の 5 つの電圧レベルを説明しています。

これは古典的な汚いトリックであり、パネルに接続されるワイヤの数を絶対に最小限に抑える必要がある日を私は待っていました。 実際の製品でこのようなハック的なものが見られるとは誰が予想したでしょうか。

電源ボタンは独立しており、PWR ライン (スコープ トレース上の 5 V 垂直スケール上の緑色) を VBAT ラインに引き込みます。 3.3 V 電源を使用した簡単なテストにより、マイクロコントローラーの GPIO を使用してデバイスをオン/オフできることがわかりました。 また、最大 5 つの GPIO ピンを異なる抵抗に接続し、対応するボタンを「押す」ことができると確信していました。 そこで、パネルを取り外して個々の抵抗を測定しました。

これを自宅で再現したい場合、抵抗はそれぞれ 0 Ω、15 kΩ、30 kΩ、46.6 kΩ、70 kΩ で、測定された電圧を少し計算してみると、分圧器の上部にあるプルアップ抵抗です。おそらく公称100kΩです。 あるいは、DAC をお持ちの場合は、0 V、400 mV、750 mV、975 mV、または 1325 mV の電圧を KEY ピンに送信することもできます。 私は箱の中にあった最も近い抵抗を半田付けし、それらがすべて動作することを確認し、ハードウェアが完了したと判断しました。

しかし、VCC ラインはどうなっているのでしょうか? VCC に接続されているにもかかわらず、ボタンが電圧を引き下げ、デフォルトで KEY ラインが High に引き上げられたため、何か意味がありませんでした。 テストしてみると、もちろん VCC は GND に対してデッドショートしており、プルアップ抵抗は KEY ライン上にありました。 キーパッド パネルの PCB にも実装されていない抵抗がありました。これは、以前のリビジョンではボタンがプルアップされていたことを示唆していますが、メーカーはマイクロコントローラーの内部プルアップを使用して 1 つの抵抗を最適化して取り除きました。 テストポイントのシルクスクリーンをそれに合わせて変更しなかったのは、怠惰か意図的な妨害行為のどちらかです。 (テスト機器を「VCC」と GND に接続できたらどんなに楽しいか想像してみてください。)

残りの作業は、お気に入りのツールを使用して、このような簡単な作業を行うだけでした。 Arduino または単一の ESP8266 を使用することもできますが、最近は安価な STM32F103 ボードで Mecrisp-Stellaris Forth を試していたので、そこにしました。 当初はカスタムのリモート キー パネルを作成することを考えていたため、GPIO ピンが多数あるため、ADC と抵抗のトリックに頼る必要がありませんでした。

私はすでにプログラミングとデバッグに UART シリアルを使用していましたが、別個のキー パネルはそれ自体がプロジェクトであると判断し、思い切って顕微鏡を WiFi ネットワークに接続しました。 ESP8266 に esp-link WiFi-シリアル ブリッジ ファームウェアをフラッシュしました。 ほら、リモコン。 顕微鏡の VBAT ラインから (スイッチを介して) マイクロコントローラーの電源をオフにすると、デスク上で顕微鏡を移動する必要があるときに、すべてが完全に自己完結型になります。

正確にするには試行錯誤のテストが必要な詳細がたくさんありました。 たとえば、カメラ モードとメニュー システムでは、ボタンを押すときに異なる遅延が必要です。 これらを最適化することはしませんでしたが、常に機能するように遅延を十分に長くしました。 電源オン/オフ ボタンは 1.5 秒以上押した場合にのみ機能します。 風変わりだ。 Forth 環境のようなインタラクティブなデバッグ システムを使用すると、これは非常にすぐに機能するようになりますが、C や Arduino のようなコンパイルとフラッシュのループではそれほど悪くはならないと思います。

ファームウェアで行った、言及する価値のある 2 つの優れた点があります。 ボタンの押下を検出するために使用される KEY ラインは、顕微鏡の電源がオンのときにのみプルアップされるため、マイクロコントローラーによって読み取られて、顕微鏡が現在オンかオフかを判断できます。 顕微鏡の電源が最初にオンになったとき、顕微鏡はビデオ モードになっており、ソフトウェアが現在のモードを内部で追跡できるようになります。

これを組み合わせると、最初に顕微鏡の電源が入っていることを確認し、カメラ モードに切り替わっていない場合はカメラ モードに切り替え、最後に写真を撮影する 1 つの「撮影」コマンドが可能になります。 同様に、「削除」コマンドはプレビュー モードに切り替えて最後の写真を削除し、「よろしいですか?」というメッセージをすべて確認します。 ダイアログが自動的に表示されます。 興味があればコードはここにあります。

すぐに使えるメニューシステムはひどいです。 リングライトのオンとオフを切り替えるには、15 回ほどキーを押す必要があります。 これをマイクロコントローラーでスクリプト化すると、はるかに快適になります。 さらに、反復露光を設定してタイムラプスを作成したり、2 分間のビデオを 10 分に 1 回撮影したり、基本的に何でも自動化できるようになりました。 距離センサーを追加して、レンズの下に PCB がある場合に自動的に撮影できるようにするか、あるいは何かばかげたものを追加するかもしれません。 私は、これらのスクリプト機能を外部ボタンに結び付けるというアイデアがとても気に入っています。ワンプッシュのライトトグルボタンやブラケット露出ボタンは便利ですし、ボタン 1 つで削除することもできます。

世界は今や私のカキです。今後のハッカデイの記事では、さらに多くの超クローズアップ映像が見られることを期待しています。 そして、これらの顕微鏡のいずれかを手に取ったら、ためらわずに開き、いくつかの抵抗をはんだ付けして、自分で制御してください。 おそらく、適切なスタンドを構築するほど便利であることがわかりますが、それは別の話です。

共有