TrevaをZaurusに接続しよう文書作成日:2002.03.21 最終更新日:2002.03.31 デジタルカメラユニット TrevaTreva は、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撮影用ソフトウェア制御ソフトの詳細については、参考文献をご参照ください(その方が正確です)。データの送受信には 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万画素ではメモにもならず、なんとなくの雰囲気でしかありませんが、 結構遊べますね。ちなみに色の方はよく出ていると思います(下のサンプル画像参照)。 ただ…実際に試したところ、 RTSの下げ上げとCTSの読み取りを直接ポートレベルで行えないためか、 本来の転送速度を実現できていないのが悩みの種です。 具体的には、Trevaは最高で1秒に7枚程の転送が可能なはずですが、 現在の状態では1枚転送するのに約4秒弱かかっています。 撮影自体は一瞬なのですが、 転送が遅いため残念ながらリアルタイムビューは実現できていません。 以後の課題というところでしょうか。 最後にこうした面白いことが実現できたのも、 Treva解析情報があればこそのことです。 籠屋氏、いしかわ氏をはじめ、解析された方々に深く感謝します。なお、お約束ですが、改造はメーカーも筆者も誰も保証してはくれません。 できた/できないも含めて、 くれぐれも自己責任でお願いします m(_ _)m。 参考文献
|