カメラモジュールによる画像取得

カメラモジュールを作っていましたが、ようやく画像の取得に成功しました。基板は最新(Rev.B)のものではなく古いものでの成功です。

SylphideCAM_090128.png
小さくて色も変だけど成功!! (クリックすると非圧縮のオリジナルbmpファイルが見れます)

搭載されたマイコン(C8051F342)とCPLD(Max2 EPM570)用のファームウェアは公開しています。取得画像サイズといったカメラに関する制御は、microSD上のファイル(cam.datという名前で保存したバイナリファイル、サンプル)でコントロールできるようにしました。画像の取得を目指していた際、レジスタの設定方法がよくわからず、いちいちマイコンのROMに書き込むのが面倒くさくなったので、このような方式にしました。怪我の功名というか、この仕組みは非常に便利です。上の画像のレジスタ設定は、sparkfunフォーラムでの議論を利用しています。

また、画像の保存形式は独自定義なので、ビットマップ(bmp)に変換するRubyスクリプト log2bmp.rbを用意しました。ビットマップのファイル形式を調べていたのですが、OSによってバージョンの差異があったりと意外に置が深いのですね。ここでは最も単純なWindows 3.0で定義されたものに則っています(log2bmp.rbはbitmap.rbに依存しています)。

まだまだカメラのレジスタで不明な部分が多いため、上の画像よりも大きなサイズの画像の取得や色合いの良い露出設定ができていません。しかしながらCPLD上に実装されたSDRAMコントローラ等が機能していることは画像が取得できたことによって確認できたので、非常に大きな前進を果たせたと満足しています。

※その後、色の問題とVGAサイズの取得に成功しました。色の問題はRedとBlueのチャンネルをlog2bmp.rbで逆転させていたことが問題で、現在は修正済みのものに差し替えてあります。取得した画像は以下のとおりです。

SylphideCAM_090204VGA.jpg
1/2に縮小、クリックするとオリジナルのbmpファイルが見れます

なお、この画像の取得にはcam_VGA.datのレジスタ設定を使用しました。

※※続いてSXGA(1280 x 1024)も取得成功しました。設定はcam_SXGA.datです。

SylphideCAM_090204SXGA.jpg
1/4に縮小、クリックするとオリジナルのbmpファイルが見れます(3.8MB)

次はjpegでの取得を目指してみることにします。

January 28, 2009 23:46 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク

コメント

おお、お見事!

Posted by: odawara : January 29, 2009 10:33 AM

鏡像になっているんですね。

後ろのFlexcan の箱をみてわかりました。

Posted by: teamknox : January 29, 2009 04:30 PM

>odawaraさん
時間をそれなりに使っただけに、そういってもらえるとうれしいです。

>teamknoxさん
鏡像です(笑)、後処理でピクセルの並びを反転するのを忘れていました。

Posted by: fenrir : January 29, 2009 07:55 PM

TCM8240MDを使った回路の設計等に参考にさせてもらいます。

Posted by: dddmania : June 23, 2009 01:16 AM

2重投稿になっているのか弾かれたのか解りませんが、
「TCM8240MD」をn個使いする回路を作ろうと思うので色々参考にさせてもらいます。

Posted by: dddmania : June 23, 2009 01:24 AM

>dddmaniaさん
ステレオカメラでしょうか? 色々扱いにくいカメラですが、ご参考になれば幸いです。

Posted by: fenrir : June 25, 2009 08:50 PM

コメントする