このページでは、W6の視覚センサーについて説明します。
1.はじめに
以上の困難を避けて通れること、および接続と入手が容易(だった)こと の2点を重視して搭載しました。 この素子に関しては、サンプル出荷が始まったときから注目はしていたのですが、 入手の目処がたたず しばらく忘れていました。そんな時(2001年前半)、ネットで携帯ゲーム機として有名な 「ゲームボーイ」の 拡張機器として販売されていた「ゲームボーイポケットカメラ」を分解すれば とれることを知り、コレを利用しました。
こちら↓のVictor Kempさんのサイトを参考にさせていただきました。
http://geocities.com/vjkemp/gbcam.htm (ホームページ)
(ちなみに、日本語で解説しているサイトは見つけられませんでした。)
2.素子の概要
出力画像は白黒で、解像度は128×128ピクセルです。撮影モードによっては
縦方向の解像度が121や123ピクセル等と少なくなります。
3.結線の方法
4.制御ソフト
VC++v6の開発環境を使ってコンパイルが通ることを確認した後、H8用の
クロスコンパイラでH8用のコードにコンパイルする手法をとっています。
クロスコンパイラは、秋月のキットと一緒に売っているCコンパイラを使っています。
H8の内蔵ROMにはモニタをインストールし、制御ソフトは内蔵RAMに転送して
実行しています。
本ソフトの見所としては、M64282FPの初期化部分が参考になるかと思います。
1ピクセルを256諧調の明るさ変化で表すとすれば、約16kバイトの記憶
エリアが必要となりますので、内蔵RAMの容量では保持できません。そこで、、
保持できるところまで情報を捨てる(圧縮する)、素子から読んだデータを
読み出しながらPCに送る、キットにRAMを増設する等の手段が必要に
なろうかと思います。
このサンプルプログラムでは、「PCに送る」を採用しています。
Microsoft Visual Basic Var.6(Learning Edition)を使用しています。
vb_gbcam0.lzh
左下が128×128ドット、右下が8×8ドットで取り込んだイメージです。 128の解像度ではH8/3048Fの内蔵RAMにイメージを保持しきれませんが、 8ならば保持できますので、内蔵ROMにモニタをセットした状態で多少遊べそうです。 撮影時間は、夜の部屋の天井灯の明かりで撮影した場合に1.2フレーム/秒 程度になっています。現状では、人の感覚で「動いている」と感じられるような対象は 上手く写りません。
素子に与えるクロックの周波数は、データシートでは500kHzで10〜30fpsの撮影が
出来ると書いてありますが、データ読み出しの途中で変えさえしなければ、もっと低い周波数
でも撮影できます。(例えば2kHzくらい)ただ、周波数が低いと、晴天の野外の明るさでは
十分露出を少なくできないため、露出オーバーとなり上手く写りませんでした。
16MhzのH8/3048Fの制限として、A/D変換の時間が134ステートmaxのため、
特別な工夫無しに使えるクロックの上限は100KHz程度と思われます。
また、1フレームの間にクロックの周波数が変わると、上の左の画像のように、画面のエリアに 不自然な明るさの変化が出ます。