イメージセンサ
mm-6/ハードウェア
イメージセンサ
カメラの「目」であるイメージセンサには、Aptina社(旧Micron)の MT9T001 というCMOSイメージセンサを用いました。
このセンサを選んだのは以下の理由によります。
- DigiKey で入手できる
- データシートが入手できる
- ディジタル出力であり、FPGAに直結できる
- 高フレームレート読み出しができる
仕様
MT9T001 の主な仕様です。
Parameter | Typical Value |
Optical format | 1/2-inch (4:3) |
Active pixels | 2,048H x 1,536V 3Mpixel |
Pixel size | 3.2μm x 3.2μm |
Color filter array | RGB Bayer pattern |
Shutter type | electronic rolling shutter |
Maximum data rate/master clock | 48 MPS/48 MHz |
Frame rate | QXGA(2,048 x 1,536)Programmable up to 12 fps |
VGA (640 x 480) Programmable up to 93 fps | |
ADC resolution | 10-bit, on-chip |
使い方
2048x1536全画素を読み出すと、最大12fps(フレーム毎秒)でマウスの位置検出には遅すぎます。CMOSセンサの特長として、画像の一部を切り出して読むことができ、高速なフレームレートで読む設定が出来ます。
今回用いたレンズの有効像円が小さかったこともあり、1024x400のエリアを切り出して読み出しています。フレームレートは約70fpsになりました。
1024x400でもリアルタイムに画像処理するには大きすぎる画素数なので、FPGAの中で4x4画素平均化する処理を行い、256x100画素にして白黒画像としてSDRAMに書き込んでいます。4x4画素平均することで感度も向上します。

これらの駆動モード設定は、センサーに2線シリアル通信で設定します。
レンズ調整
センサーにレンズを取り付けてから、フォーカスの調整をする必要があります。センサーの画像を見ながらレンズの位置を調整するために、SDRAMに書き込んだ画像を読み出してNTSCのビデオ信号として出力する回路を設け、テレビに接続して調整しました。
ビデオ信号はFPGAから3ビットで出力し、抵抗加算でDA変換した簡易的なものですが、充分役に立ちました。
光源フリッカ対策
競技会会場の照明はおそらくメタルハライドだと思われますが、フリッカーがあります。電源周波数50Hzの倍の100Hzで輝度が変動していると思われます。
mm-6 のカメラは70フレーム毎秒で撮影しており、光源のフリッカーとのビート周期が画像信号に現れました。そこで急遽カメラのローリングシャッター設定を変えて、1/100 秒の電子シャッターを入れ、ビートを抑えることにしました。

上の動画は会場で mm-6 のカメラが撮影した画像の垂直方向の波形です。左がビートのある波形、右が1/100シャッターで対策した波形です。(関西では1/120シャッターが必要)