PHS経由でネットに接続できるEthernetアダプタのファームウェアをハック・後編 ―― 画像付きメールを利用した遠隔監視システムの製作事例

中本伸一

tag: 組み込み

技術解説 2007年11月27日

 また,一部のカメラ・モジュールの中には,「ディジタル出力」と銘打っているものもあります.しかし,実際には27MHzクロックに同期してYUVデータが洪水のようにどんどん送られてくるので,かなり高い性能を持ったシステムで真剣に画像を受け取らなければ処理しきれません.高速なCPUを使ってもソフトウェアだけで処理するのはかなり難しく,いったん画像データをメモリに格納するハードウェアと組み合わせる必要があります.

 組み込み機器で普通に利用されている安価なマイコンを単体で使用し,カメラ画像を扱うのは容易ではありません.扱う画像データの容量と転送速度を下げることにより,この問題を解決することにします.

● JPEGカメラは組み込み機器にうってつけ

 今回使用するCOMedia社のカメラ・モジュール「C328-7640」は,OmniVision Technologies社の画像処理専用LSI「OV528」を利用した,カメラ画像を扱えるモジュールです(写真2)

pic02_01.jpg
写真2 JPEGカメラ・モジュールの外観
(a)の表側に,30万画素のイメージ・センサが実装されている.リングを調節すると,∞~5cmの範囲でピントが合う.大きさは横20mm,縦28mm.(b)に示す裏側には,OmniVision Technologies社製の画像処理専用LSI「OV528」が実装されている.接続コネクタの信号は,左からVcc(3.3V),TxRx,GND.

 モジュールの内部構造は次の通りです.画像メモリとJPEG圧縮プロセッサを内蔵したOV528チップに30万画素の出力センサが直結されており,カメラ・センサから出力されたデータをいったんOV528内の画像メモリに格納します.格納したデータはそのままシリアル・ポート経由で取り出すこともできますが,VGAサイズ(640ピクセル×480ピクセル)の画像だと16ビット・カラーでもデータ・サイズが600Kバイト以上になってしまいます.

 生データのままではまだ大きすぎるので,内蔵のJPEG圧縮プロセッサを利用して30Kバイト程度にデータを圧縮します.この程度のサイズになれば,メールに添付したりネットワーク経由で送ったりすることが容易になります.

 接続コネクタも極めてシンプルで,3.3V電源とシリアル入出力の4本だけです〔写真2(b)〕.カメラを制御するためにはシリアルでコマンドを送出します.表1に示すコマンドを用いて,以下のように対話的にカメラを制御します.

  • SYNCコマンドでカメラを起動してボーレートを確定させる
  • Initialコマンドで画面の解像度や色数を設定する
  • Snapshotコマンドで写真を撮る
  • Get Pictureコマンドで圧縮されたJPEG画像データの送信開始を指示する
  • Dataコマンドでカメラから得られる画像データのサイズを把握する
  • 設定したサイズ(デフォルトは512バイト)のパケットが送られてくるので,受け取ったらACKコマンドを返す
コマンド 説 明
Initial カメラの解像度や色数などを設定する
Get Picture 画像の転送を開始する
Snapshot 現在の画像をバッファに保存する
Set Packet Size カメラから転送される画像データのパケット・サイズを指定する
Set Baudrate シリアルのボーレートを設定する
Reset C328をリセットしてステートをアイドルにする
Power Off C328をスリープ・モードにする. SYNCコマンドで復帰する
Data カメラから送られる画像データの種類とサイズを取得する
SYNC ボーレートを自動検出して設定する. スリープから復帰させる
ACK 肯定的なレスポンス.データ転送時の同期に用いる
NAK エラー・レスポンス. 各種のエラー・コードが返される
Light Frequency 照明の周波数を設定する (50Hzまたは60Hz,フリッカ防止用)
表1 C328の制御コマンド表
組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日