ちょっと変わった製品もみつけた。 右:ポケットカメラ(M64282FP入り) : 左 コナミ製PS2用のモーションセンサ(センサの型番不明) |
製品自体も登場して14年くらい経つため、だいぶ話題から周回遅れだが…
今回このセンサを使ってみて、普通ならロボットの視覚として高フレームレートを目指すところだけど、シャッター速度をかなり遅くできたので、逆の方向、長時間露光をテーマに撮影実験を行った。
はたして、105円(税込)の視覚センサとArduinoで星は写せるのか。
M64282FP |
コードは、このサイトのものを参考にしている。
http://www.bot-thoughts.com/2010/04/gameboy-camera-prototyping.html
シリアルで出てきた8ビットのグレースケール画像をBMP変換するという流れ。
人工網膜チップのPDF資料で、レジスタ設定などをひと通り確認できる。
レジスタ一覧 (Excel) |
作って3年くらい経つ基板 |
普通に撮影した画像 |
露光時間を延ばす
データシートには設定可能な露光時間が記載されていて、
C1レジスタを操作することで、最大1秒まで露光できるとある。
ただし、これはクロックに500kHzを入力した場合の秒数らしいので、供給するクロックを下げると延びてゆく。 まだ50秒程(18kHz程度?)までしかテストしていないけど、もっと伸ばせるらしい。
一つ問題として、先ほどのコードでは逆に直射日光下での撮影は厳しい。
レジスタの設定も、露光時間を減らすと、ある時点で同期が取れていないような絵が撮れる。
ロジアナで測定してみた。
A/D変換にかかる遅延により、読み出し時はクロックがかなり間延びしているが、これ自体はあまり問題ないらしい。 てっきりどこも同じクロックを入力する必要があると思っていた。
問題の露光時にArduinoが出力するクロック出力速度は、合間のif文の処理時間などにより、200kHz程度までだった。
Arduinoだけだと明るい場所は減光フィルタでも入れたほうが良さそうだ。
露光に関するパラメータとして、素子のゲインも調整できるが、上げすぎるとコントラストが失われるので、設定は半分程度までにする。
星の撮影だが、屋上にUSBデバイスサーバを設置してあるので、基板を外に設置しても、温かい室内でプログラムの修正と画像取得ができる(重要)
センサを南の方向、仰角80°程度に固定して、撮影エリアは移動せずに検証した。
明るい星を狙って、月の下にあるオリオン座と大三角の方角にレンズを向けた。 月があるので、あまり露光時間を上げられない。
30秒露出の画像。 写真はコントラスト修正後のものを、ニアレストネイバー法でピクセルを保ったまま4倍してある。
上部に月の光が入射しているが、明るい輝点が3つ確認できる。下の滲んだ点がシリウスで、上の2つはオリオン座のベテルギウスとリゲルだった。 意外と映る。
少し時間が立って、星が動いてきた。 シリウスがはっきり確認できる。 一応星座として結んでみた。 星は映るが、128x123ピクセルしか無いので、ピクセルの境界に星がある場合は減光が確認できた。 1等か、ピクセルの位置が調度良かった2等星が映っていることになる。
実際の画像はこのような大きさ。
更に時間が経過して、大三角が見える位置になった。 下に雲が写っている。45秒露出。
シリウスは全天で月につぐ明るさがあるため、安定して写っている。
反転させる。 シリウスとベテルギウスは見やすいが、プロキオンがうっすらとしていて見えづらい。
一応、冬の大三角とオリオン座がこのような画角で撮れていた。
条件としては、月明かりもあり、あまり理想的ではなかったが。 意外と簡単に撮れた。
細かい星については、解像度が足りないということもあり、あまりはっきりとした像を捉えられていない。 数枚とって合成する手法が使えるかもしれない。
標準的な人工衛星では、太陽の向きでおおよその姿勢を把握してから、高度な姿勢決定のためにスタートラッカというセンサを使う。 カメラで星を撮像し、メモリに蓄えた恒星マップで画像推定を行い、どの方角を向いているのかを調べることができる。 今回作業していて、その作業をなぞったような気がした。
工夫すれば、この人工網膜LSIでも同じことができるかもしれない。写すのに結構時間がかかるのと、画素数、画角などの問題があるけれど、明るい光源に対してはある程度形状把握ができるので、2次元PSDセンサの代わりに太陽/地球センサとして使えるかも。
このセンサは解像度は低いけど、幅広いシャッター速度で撮影可能なカメラモジュールとしては最もお手軽だと思う。 今回は試していないけれど、2値化やエッジ処理など、レジスタには面白そうな機能が沢山あるので、小ピンな32ビットマイコンも増える中、画像処理の方向で再び使うのも面白いかもしれない。
とりあえず星が撮れるArduino互換機でした。 もっとポケットカメラ集めとこう…