TrevaをZaurusに接続しよう


文書作成日:2002.03.21
最終更新日:2002.03.31


デジタルカメラユニット Treva

 Treva は、DDI PocketのPHS feel H" に接続して使用する専用デジタルカメラユニットです。

 スペックは約10万画素と低いものの、値段も安く(実売3,800円程度)、 出た当初から結構気になっていたデバイスでした。 しかし、feel H"も持っていない以上、 買っても動かせないし解析も面倒だろう…ということで、 ずっと忘れていたんですね。

 ※ぱたぱたキーボードはその物自体を気に入ったので何も考えずに買っちゃいましたが(^^;

 そんなある日、トランジスタ技術 2002年4月号に、 籠屋氏による Treva-パソコン接続 の記事が掲載されました。 読んでみると電気的なレベルも合ってるし、PICやZaurusならほぼ直結でいけそうなんですよね。

 MI-E25DCを見て、カメラ…カメラ…と頭の中がぐるぐるしていた筆者にとってまさに神のお告げ。 気づいたときには手元に Treva があったというわけです(笑)。

Zaurusとの繋ぎ方

 Trevaの解析や詳細については、元情報である参考文献をご参照ください。

 要点だけまとめると、Trevaは 3V 程度の電源で動作し、 CLK_IN の立ちあがりに同期して、 DATA_OUT から 1bit ずつデータが出力されるという簡単なものです。

 信号の方向は、DATA_OUT が Treva から Zaurus 、 CLK_IN は Zaurus から Trevaへです (つまり、CLK_IN を制御するのは Zaurusということ)。

 Trevaを動作させるための電源は Zaurus から供給しますが、 5Vから約3Vに落とすために、ダイオードを3個直列に接続してください。 直結でも動くことは動きますが、画像が少しおかしくなります。

 ※使用ダイオード:順方向で0.6〜0.7V位になる小信号用のシリコンダイオードです。

Treva-Zaurus接続回路図

写真で見る工作手順

Treva全体図 feel H" 用のカメラユニット『Treva』を分解してみた図です。 写真上側、2.5ミリプラグの横に2つツメがあるので、 細いマイナスドライバーで内側に押して少し開いてください。 次に、写真下側のツメを支点として、ちょうつがいのように徐々に開けていきます。
Trevaの基盤アップ Trevaの基盤アップです。4極の2.5ミリプラグへの接続ラインが見えます。 黒=GND, 赤=電源供給(3V), ピンク=CLK_IN, 黄色=DATA_OUT です。 これで簡単に画像が扱えるんだから便利なデバイスですね>Treva。
OP16コネクタをつけた様子 Trevaからの4本の線をOP16コネクタにつけます。 電圧を下げるため赤のラインだけ切って、 ダイオードを3個直列につないで電圧を2V落とすようにしてください。
OP16配線部のアップ この写真の向きでは左が1番ピンになるので、 5番にピンク、6番に黄色、8番に黒、11番に赤の線をつけてください。 先に線を半田めっきしておき、 OP16の端子部にちょこんとくっつける感じでこてをあてると楽です。

改造Treva完成写真 まるで最初からそこにあったかのような Treva の勇姿。 ケースの方は、OP16コネクタの切り込みがぴったり収まるように、 現物合わせで削りました。
Zaurus正面より見た図 MI-E21に改造Trevaをつないだ様子です。 OP16ポートが本体下部にあるので、こんな感じになります。 縦持ちで撮影しようとすると結構不便ですが…やっぱり回転式にすべきだったかなぁ。
Zaurus背面より見た図 背面(レンズ面)から見た図です。 一応、液晶を見ながら撮影する…というイメージで、 Zaurus背面にレンズ面がくるようにしてみましたが、 リアルタイムに見れないのであまり意味はなかったかも(^^;。


Treva撮影用ソフトウェア

 制御ソフトの詳細については、参考文献をご参照ください(その方が正確です)。

 データの送受信には 1bit の制御ラインと、 1bitのデータラインが必要になります。 オプションポート16で bit単位に使えるものは 5番のRTS(RS)と 6番のCTS(CS) がありますので、これを利用します。

 手順としては、RTS を Low にして High にした直後、 CTSから1bitずつ読みこみます。 データは MSB から順に転送されてくるため、8bitずつまとめてメモリに格納し、 YUV形式からRGBのデータに変換を行った上で画面に表示します。

 送られてくるデータは、0xAA 55 FF から始まる 32 byte のヘッダと、 96 x 72 画素分の(1画素につき 16bit のYUVデータ)13,824 byte の画像データです。

 参考文献によると、 8bitずつ V, Y, U, Y ... と交互に V と U が入れ替わりますので、 色解像度は 48x72画素分、輝度解像度は 96x72画素分ということになり、 これを考慮してYUV-RGB変換してやります。

 試しにシンプルなMOREソフト『 TrevaTool 』を作成してみました。

 → TrevaTool (WST7.ZAC) 8,207 byte

 まだデータ転送時に失敗するケースがあるようですが、 とりあえず撮影はできます。決定キーで撮影、戻るキーで終了、 撮影されたデータはクリップボードに入るという単純なものですので、 保存したい画像はフォトメモリーなどで貼りつけてあげてください。

 ※Trevaに電源を入れて最初の1枚目は撮影できないようです(黒い画像になるようです)。

[2002.03.31 追記]

 ご要望にお応えして、 学習用に TrevaTool のソースプロジェクト一式を公開します。 アプリケーション識別子が筆者専用のものであることなど、 完全なフリーソフトウェアではありませんので、 取り扱いについてはアーカイブ中の README.TXT をご覧ください。

 → TrevaToolソースプロジェクト一式 (TREVATOOL.LZH) 50,649 byte

成果

 こうして無事、Treva を Zaurus に接続して撮影できるようになりました。

 96x72画素と小さな画像であり良い画像とは言いがたいものですが、 明るい所で撮影すればそこそこのものは撮れます。 10万画素ではメモにもならず、なんとなくの雰囲気でしかありませんが、 結構遊べますね。ちなみに色の方はよく出ていると思います(下のサンプル画像参照)。

サンプル画像1 サンプル画像2

 ただ…実際に試したところ、 RTSの下げ上げとCTSの読み取りを直接ポートレベルで行えないためか、 本来の転送速度を実現できていないのが悩みの種です。

 具体的には、Trevaは最高で1秒に7枚程の転送が可能なはずですが、 現在の状態では1枚転送するのに約4秒弱かかっています。 撮影自体は一瞬なのですが、 転送が遅いため残念ながらリアルタイムビューは実現できていません。 以後の課題というところでしょうか。

最後に

 こうした面白いことが実現できたのも、 Treva解析情報があればこそのことです。 籠屋氏、いしかわ氏をはじめ、解析された方々に深く感謝します。

 なお、お約束ですが、改造はメーカーも筆者も誰も保証してはくれません。 できた/できないも含めて、 くれぐれも自己責任でお願いします m(_ _)m。

参考文献

  1. トランジスタ技術 2002年4月号:『PHS用小型カメラ“Treva”をパソコンに接続する方法』
  2. AAFぱ研
  3. いしかわきょーすけ氏のページ