製品情報>Spartan-6評価ボード>応用作品>USB-CMOSカメラ

USB-CMOSカメラ

概要

このページでは、Spartan-6ボードの応用例として、OmniVision社製のCMOSイメージセンサ「OV7670」を使ったUSB-CMOSカメラを作る方法を紹介します。

 

 

CMOSイメージセンサとはカメラ素子の一種です。CCDカメラとくらべて消費電力が少なく、取り扱いが容易で、デジタル制御なのでFPGAやマイコンとの相性が良いという特徴があります。

 

VGA画面は640×480ピクセルなので307200バイトあり、FPGA内のブロックメモリには1画面分のデータを蓄えることができません。特電Spartan-6ボードには64MバイトのDDR2 SDRAMが搭載されているので、このメモリに画像を一時的に蓄えて、USBからゆっくりと読みだし、スムーズなデータキャプチャを実現しています。

 

準備するもの

必要な材料は下記のとおりです。

 ・特電Spartan-6評価ボード TKDN-SP6-16 (または-ESや-45でも可)

 ・OV7670を搭載したカメラボード(aitendo製 カメラモジュール(OV7670)[CAMERA30W-OV7670]

 ・万能基板(72mm×47mm 両面)

 ・ピンヘッダ・ピンソケット、配線材など

 ・ネジ、スペーサなど

 

作り方

OV7670モジュールに接続する信号には、D7〜D0、XCLK、PCLK、SDA、SCL、HREF、VSYNCがあります。

これらの信号を下の表に示すように、Spartan-6評価ボードのピンヘッダにつなぎます。

 

OV7670の
ピン名

SP6ボードの
端子

機能

備考

D7 B(27)

データバス

 
D6 B(25)

データバス

 
D5 B(23)

データバス

 
D4 B(21)

データバス

 
D3 B(19)

データバス

 
D2 B(17)

データバス

 
D1 B(15)

データバス

 
D0 B(13)

データバス

 
SDA B(11) カメラの内蔵レジスタ設定用  
SCL B(9)

カメラの内蔵レジスタ設定用

 
XCLK B(7) FPGA→カメラへのクロック供給 12〜48MHz
PCLK B(5) カメラ→FPGAへのクロック供給 使用していない
VSYNC B(3) 垂直同期信号 フレームの開始を表す
HREF B(1) 水平データ有効  
3V3 VCC 電源  
GND

GND

グラウンド  

 

つなぎ方は、下の図を参考にしてください。

図2 実体配線図 (クリックで拡大)

 

これらの配線は、万能基板上でラッピングワイヤを用いて行います。

基板裏面 (クリックで拡大)

基板表面(クリックで拡大)

横から見た図(クリックで拡大)

 

コンフィギュレーションデータの書き込み

付属のSP6JTAGユーティリティか、iMPACTを使ってコンフィギュレーションデータをSPI ROMに書き込みます。

SP6JTAGユーティリティで書き込む場合は、USBをつないで、コマンドラインから次のようにコマンドを入力します。

sp6jtag -spi -auto ov7670main.bit

 

約30秒で書き込みが完了するはずです。USBケーブルを抜き差しして、電源を再投入すると、新しいデザインで動き出します。

 

ソフトウェア

本アプリケーション専用のソフトウェアを用意しています。

 

 

このソフトウェアでは、画像のとりこみと、ゲイン・ホワイトバランス・露出の調整が可能です。

また、OV7670の任意のカメラレジスタに値を書き込む機能がありますので、思う存分カメラレジスタを操作していただけます。

 

以下の条件を満たすPCが必要です。

● Windows2000、Windows XP、Windows Vista(32bit)またはWindows 7(32bit) 
   ※64bit版には対応しておりません。

● USB2.0 HighSpeedモードに対応したUSBポートを持つこと

 

設計データ一式ダウンロード

FPGAの設計データ、および、アプリケーションソフトウェアは下記のボタンを押してダウンロードしてください。

 

 

本設計データは、TKDN-SP6-ESボード用に論理合成されていますが、UCFファイルをtkdn_sp6_1645.ucfに取り換えたり、部品名を変えて再度コンパイルすることで、TKDN-SP6-16や45のボードでも動作させることができます。

 

OV7670の特徴

OV7670を操作していて気になった点をいくつか紹介します。

・カメラレジスタを連続して操作する際には、レジスタの操作と操作の間に適度な待ち時間が必要。本ソフトでは10msのWAITを入れている。

・画質を良くするには露出時間(EXPOSURE)の調整が重要。AECをいったんOFFにして、EXPOSUREを0から300くらいまで変えていき、画質が良くなる点があるので、そこに合わせる。その後、AGCを手動で合わせると綺麗になる。デフォルトのままでは絵はとても汚いので注意。

・夜間の室内くらいの明るさがちょうどよい。それ以上に明るいと露出が強くて飽和してしまう。それ以上に暗いとノイズが目立つようになってしまう。

 

スクリーンショット

   

 


Copyright(C) 2009 TokushuDenshiKairo Inc. All rights reserved.

 


© 2017 TokushuDenshiKairo Inc. All rights reserved