中本 伸一

画像付きメールを利用した遠隔監視システムの製作事例

後編
PHS経由でネットに接続できるEthernetアダプタのファームウェアをハック
連載の締めくくりとして，Ethernetアダプタ「OSX-1」を利用した遠隔監視システムの製作事例を紹介する．
画像メールを自動返信する仕組みを用意して，遠隔監視を実現した．
（編集部）

本稿の前編（本誌 2007 年 8 月号，pp.128-135）では，ウィ

そこで後編では，中編で説明したメール自動返信システ

ルコムの PHS モジュール「W-SIM」を利用してインタームに小規模なマイコンでも画像を扱える JPEG カメラ・モ

ネットに接続できる Ethernet アダプタ「OSX-1（愛称：つジュールを接続して，携帯電話で気軽に画像を確認できるないでイーサ）」（写真 1）をハックし，開発環境を導入してシステムを構築します．

簡単なプログラムを動作させてみました．中編（本誌 2007

● 実はカメラ・モジュールを利用するのは難しい

年 9 月号，pp.130-137）では，導入した開発環境を利用しカメラ・モジュールを利用して画像を扱うシステムを構て SMTP（Simple Mail Transfer Protocol）サーバや POP築する際に問題となってくるのが，どうやってカメラ画像（Post Office Protocol）サーバにアクセスし，メールを自動をディジタル化して取り込むかという点です．現在市販さ返信するシステムを構築しました．このようにメールを利れているカメラ・モジュールのほとんどが，NTSC（National用すれば，ファイア・ウォールの内側にある機器を携帯電Television Standards Committee）ビデオ信号を出力する話などで容易に制御できます．

ものばかりです．NTSC はアナログ信号なので，そのまま前編と中編を通じて，本機が単なる W-SIM を利用したモニタに接続するには手軽で良いのですが，カメラ画像をダイヤルアップ・サーバではなく，ネットワークを使うディジタル・データとして扱う際には，ビデオ・キャプちょっとしたシステムの構築に利用できる機器であることチャ回路が必要になります．

を理解していただけたかと思います．本機に組み込まれてまた，一部のカメラ・モジュールの中には，「ディジタサイレントシー

いるインタープリタ言語の SilentC を利用すれば，セルフル出力」と銘打っているものもあります．しかし，実際に開発環境でソケットを利用したネットワーク・プログラム

は 27MHz クロックに同期して YUV データが洪水のようを容易に記述できます．

● カメラ画像を添付して返信するシステムを構築する
自分のペットは元気にしているだろうか？ 現在の部屋の温度はどうなっているのだろうか？ 積雪の状態を監視して融雪システムを制御できないだろうか？ など，携帯電話を利用して画像を確認したいという需要は多く，各社からさまざまなシステムが提供されています．しかし，一般家庭に設置できる価格帯の製品はまだまだ少ないようです．
その理由としては，中編で解説したように企業内や一般家庭内のインターネット環境において外部からファイア・（a）W-SIM（b）OSX-1

ウォールを超えて内部にアクセスするのは難しいことと，

写真 1 W-SIM と OSX-1 の写真

カメラ画像を扱うためにはかなり本格的なシステムを利用

ウィルコムの PHS 無線モジュール「W-SIM」を，ウルトラエックスの Ethernet アダプタ「OSX-1」に挿入して使用する．OSX-1 は，W-SIM のジャケット（W-SIM を挿入できる機器）の一つである．

しなければ実現できないことが挙げられます．

Nov. 2007―― OSX-1，つないでイーサ，W-SIM，Ethernet，ファイア・ウォール，JPEG カメラ・モジュール，
C328-7640，POP，SMTP，IMAP，DHCP，SilentC，OSIO-1，OS-1

127

にどんどん送られてくるので，かなり高い性能を持ったシネットワーク経由で送ったりすることが容易になります．

ステムで真剣に画像を受け取らなければ処理しきれませ接続コネクタも極めてシンプルで，3.3V 電源とシリアルん．高速な CPU を使ってもソフトウェアだけで処理する

入出力の 4 本だけです〔写真 2（b）〕．カメラを制御するたのはかなり難しく，いったん画像データをメモリに格納すめにはシリアルでコマンドを送出します．表 1 に示すコマるハードウェアと組み合わせる必要があります．

ンドを用いて，以下のように対話的にカメラを制御します．

組み込み機器で普通に利用されている安価なマイコンを単体で使用し，カメラ画像を扱うのは容易ではありませ¡SYNC コマンドでカメラを起動してボーレートを確定させる

ん．扱う画像データの容量と転送速度を下げることによ¡Initial コマンドで画面の解像度や色数を設定する

り，この問題を解決することにします．

¡Snapshot コマンドで写真を撮る● JPEG カメラは組み込み機器にうってつけ¡Get Picture コマンドで圧縮された JPEG 画像データ

今回使用する COMedia 社のカメラ・モジュール「C3287640」は，OmniVision Technologies 社の画像処理専用 LSI「OV528」を利用した，カメラ画像を扱えるモジュールです（写真 2）．の送信開始を指示する¡Data コマンドでカメラから得られる画像データのサイズを把握する¡設定したサイズ（デフォルトは 512 バイト）のパケットがモジュールの内部構造は次の通りです．画像メモリとJPEG 圧縮プロセッサを内蔵した OV528 チップに 30 万画送られてくるので，受け取ったら ACK コマンドを返す● 今回の実験に使用するハードウェアについて素の出力センサが直結されており，カメラ・センサから出前編と中編では OSX-1 のファームウェアを書き換える

力されたデータをいったん OV528 内の画像メモリに格納ことで，さまざまな事例を解説してきました．ファームします．格納したデータはそのままシリアル・ポート経由

ウェアをいくら書き換えてもリカバリ処理を行えば完全にで取り出すこともできますが，VGA サイズ（640 ピクセ元に戻るので，思い切ったハックが行えました．一方今回

ル× 480 ピクセル）の画像だと 16 ビット・カラーでもデーは，JPEG カメラをハードウェア的に接続する必要がありタ・サイズが 600K バイト以上になってしまいます．

ます．もちろん OSX-1 をケースから取り出して内部基板生データのままではまだ大きすぎるので，内蔵の JPEGに 4 本の信号線を接続すれば OSX-1 でもカメラ画像を扱え圧縮プロセッサを利用して 30K バイト程度にデータを圧縮るようになります．ただし，これだと当然メーカの保証適します．この程度のサイズになれば，メールに添付したり用外です．そこで今回は，OSX-1 の内部に採用されている

表 1 C328 の制御コマンド表コマンドInitial
Get Picture
Snapshot（a）表（b）裏

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

128

説 明
カメラの解像度や色数などを設定する
画像の転送を開始する
現在の画像をバッファに保存するカメラから転送される画像データのパケット・サイ
Set Packet Size
ズを指定するSet Baudrate
シリアルのボーレートを設定する
Reset
C328 をリセットしてステートをアイドルにする
C328 をスリープ・モードにする．
Power OffSYNC コマンドで復帰する
カメラから送られる画像データの種類とサイズを取Data
得する
ボーレートを自動検出して設定する．
SYNC
スリープから復帰させる
ACK
肯定的なレスポンス．データ転送時の同期に用いる
エラー・レスポンス．
NAK
各種のエラー・コードが返される
照明の周波数を設定する
Light Frequency（50Hz または 60Hz，フリッカ防止用）

Nov. 2007