Categories: 工作・開発

ESP32のSPIポートを流用、毎秒102億フレームで光の動きを撮影

光が空間を進む様子を、映像として撮影する。doubleyowと名乗る製作者が、ESP32-S3を中核に据えた自作カメラでこれをやってのけ、毎秒102億4000万フレーム相当の映像を公開した。ガレージの扉に斜めから当たったレーザー光が、壁面を走っていく様子が記録されている。

この数値は、1回の撮影で毎秒100億枚を撮り切っているわけではない。カメラが捉えるのは一度に1画素だけで、レーザーを1万回単位で繰り返し発射しながら、画素を1つずつ走査して1枚の映像を組み立てる。時間方向も同じで、発射のたびに測定を始める時刻をわずかにずらし、少しずつ違う瞬間を切り出して並べる。同じ現象を何度も再現できるからこそ成り立つ手法だ。

中核にあるのはESP32-S3のSPI1ポートの流用だ。SiPM(シリコン光電子増倍管)という高感度の光センサーが捉えた信号を増幅し、コンパレーターで基準電圧と比べてデジタル信号に変える。その信号を10ビットの遅延ICに通すと、0〜10.24ナノ秒の範囲を10ピコ秒刻みでずらせる。ずらした信号をファンアウトバッファーで4本のCMOS線に分け、それぞれを同軸ケーブルの長さでクロック周期の4分の1ずつ遅らせる。ESP32-S3のSPI1ポートは、この4本を80MHzで同時に読み取る。結果として、毎秒3億2000万サンプルの取り込みが成立する。

明るさの階調は、コンパレーターの基準電圧をDACで変えながらレーザーの発射を繰り返すことで作る。ある電圧で「光った/光らない」の2値を取り、電圧を変えて同じことを繰り返せば、何段階の明るさだったかが分かる仕組みだ。公開された映像は320×240ピクセル、階調32段階で撮影されている。SPI1ポートのCSピンはナノ秒レーザーの発射トリガーも兼ねており、測定と発光の同期を取る。

代償は撮影時間だ。自作したナノ秒レーザーの安定した繰り返し発射は毎秒1万回が上限で、720p・階調255段階・毎秒12億8000万フレームで撮ろうとすると、走査に約26時間かかる。480p・階調32段階・毎秒96億フレームなら約8.2時間かかる。画質を落とした短い試験なら数分で済むとしている。

製作者は限界についても書いている。高速アナログ回路とデジタル系の帯域から、実用上の上限は毎秒100億フレーム程度で、システムのジッターや同軸遅延線の誤差でさらに落ちると見込んでいた。ところが実際の試験では、毎秒204億8000万フレームでセンチメートル単位の光の動きを観測できた。「このカメラは想定より多くのことができる」と述べている。

なお、この投稿は一度r/esp32の管理者に「違法かつ非倫理的なプロジェクト」として削除された経緯がある。製作者は、2カ月前に投稿した詳細な技術解説を読むよう求めたうえで再投稿した。次の試験にはスモークマシンの到着を待っているという。空気中ではレーザー光そのものが見えず、撮影が難しいためだ。

関連情報

FabScene編集部

FabScene編集部