カメラモジュールによる画像取得
カメラモジュールを作っていましたが、ようやく画像の取得に成功しました。基板は最新(Rev.B)のものではなく古いものでの成功です。
小さくて色も変だけど成功!! (クリックすると非圧縮のオリジナル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で逆転させていたことが問題で、現在は修正済みのものに差し替えてあります。取得した画像は以下のとおりです。
1/2に縮小、クリックするとオリジナルのbmpファイルが見れます
なお、この画像の取得にはcam_VGA.datのレジスタ設定を使用しました。
※※続いてSXGA(1280 x 1024)も取得成功しました。設定はcam_SXGA.datです。
1/4に縮小、クリックするとオリジナルのbmpファイルが見れます(3.8MB)
次はjpegでの取得を目指してみることにします。
コメント
>odawaraさん
時間をそれなりに使っただけに、そういってもらえるとうれしいです。
>teamknoxさん
鏡像です(笑)、後処理でピクセルの並びを反転するのを忘れていました。
TCM8240MDを使った回路の設計等に参考にさせてもらいます。
Posted by: dddmania : June 23, 2009 01:16 AM2重投稿になっているのか弾かれたのか解りませんが、
「TCM8240MD」をn個使いする回路を作ろうと思うので色々参考にさせてもらいます。
>dddmaniaさん
ステレオカメラでしょうか? 色々扱いにくいカメラですが、ご参考になれば幸いです。
コメントする
- 匿名でのコメントは受け付けておりません。
- お名前(ハンドル名可)とメールアドレスは必ず入力してください。
- メールアドレスを表示されたくないときはURLも必ず記入してください。
- コメント欄でHTMLタグは使用できません。
- コメント本文に日本語(全角文字)がある程度多く含まれている必要があります。
- コメント欄内のURLと思われる文字列は自動的にリンクに変換されます。
- 投稿ボタンを押してエラーがでなければ、投稿は成功しています。反映されるまでには少し時間がかかります。
おお、お見事!
Posted by: odawara : January 29, 2009 10:33 AM