はじめに皆さんは、カシオ計算機のシールカメラ:「プチコレ」(Petit Colle:ZR-1)ってご存知でしょうか? これは何かと言いますと、簡易型のデジカメとテープライターを合体させたようなもので、てっとり早く言えば携帯型のプリクラです。定価が \12,800 と安いだけに、イメージセンサはモノクロ8万画素(笑)、プリント出力も感熱式のシールへのモノクロ印刷とスペック的にはお粗末ですが、機能ではフレームの追加や2画面合成、メッセージ書き込み等、なかなかあなどれません。 最初('98年秋)はご覧のパールホワイト、シャンパンゴールドのほか、ブルーメタリックの計3色で発売され、後('99年秋)にスケルトンブルー、スケルトンピンクが追加されました。
話をZR-1に戻します。極め付けは通信端子で、2台のプチコレ同士をつないで画像データの相互転送ができます。この端子がカシオのデジカメと同じだったので、何とか工夫してパソコンにデータを取り込めるのではないかと思い、この通信部の仕様を調べてみました。 プチコレ本体のほうに付いては結構色々なホームページ(例えば こちら のnullさんのホームページとか。)で紹介されていますのでJ's Garageではちょっと切り口を買えて紹介しようと思います。(ひねくれ者ですから。) 通信機能まず使うケーブルがこちら。もともとカシオの初期のQVシリーズ用のオプション(いやひょっとしたら「ネームランド」用のオプションかもしれません。)として用意されていた、SB-62というものです。 2台の同社製QV-10A液晶デジタルカメラ同士で画像を転送したり、専用フロッピードライブユニットに画像を保存したり、専用シールプリンタで印刷をしたり、する際に必要なオプションで、2.5mm径のステレオミニミニプラグのクロスケーブル(片方の送信端子ともう片方の受信端子が接続されて交差しているからこう呼びます。リバースケーブルともいいます。)です。私の場合はQV-10とプリンタ:QG-100を接続するのに使っていたものがたまたま手元にあって、難なくプチコレに使えました。
プチコレ自体は、撮影用のワークメモリ1コマと保存用メモリ1コマの計2コマ分しかメモリがありませんので、通信機能を何に使うのか、私のようなオジサンにはいまいちピンときませんが(ぢょしこーせーがカワイイ男の子やカッコイイ先輩の撮影に成功した時に、友達のプチコレにデータを転送するとか?−うーん苦しい。)、とりあえずAからB、BからAとカメラ同士で相互に通信できました。まぁ、当サイトでおなじみのIrTran-Pを有線でやっているようなものです。 で、通信仕様以下に、私ことJunZめが2年掛かりで突き止めたプチコレの仕様を報告します。(ほとんどほっぽってあっただけですが。) 1.ハードウェア仕様 通信I/Fの仕様は下記の通りです。ボーレートが固定な点を除いては、QVデジタルシリーズと同じなので、QV用のインタフェースケーブルが使えそうです。 形式:調歩同期式シリアルI/F 2.通信プロトコルとデータフォーマット 通信は、待機状態の受信側端末に対して送信側から画像データをいくつかのパケットに分けて送る形になっています。 興味深いことに、データはすべてテキスト形式で送信され、テキスト2bytesで1byteの16進数データが表現されています。 したがって、ターミナルソフトを立ち上げたPCにつないで、1パケット分のデータをダンプして見ることができます。(下記参照)
データパケットは下記の構成になっている様です。 COM + LEN + ADR + DATA + SUM COM コマンド。テキスト形式で2bytes。"S2"、"S8"の2つが確認されている。"S2"はデータ転送コマンド、"S8"はデータ転送モードから抜けるコマンドであるもよう。 LEN パケット長。テキスト形式で2bytes。LENからSUMの直前までのバイト数*1/2をテキスト表現の16進数で示す。"FF"であることが多い。 ADR アドレス。テキスト形式で8bytes。"00 00 1C 00"(スペースは入らない)から始まり、前のパケットのDATAのバイト数*1/2分だけインクリメントするもよう。(例:最初のパケット=00 00 1C 00、二つ目=FA 00 1C 00) DATA 画像データ。2bytesのテキストで(例:"F8")表現した16進数で構成される。トータルで 250bytes分相当のデータ(実データは500bytes)の場合が多い。 SUM チェックサム。テキスト形式で2bytes。上記のLENからDATAまでの各2bytesのテキストで表現された16進数、計255bytes相当のチェックサムを表わす。 実際には、一画面につき、上記形式のパケットが 受信側は、パケットを受信すると以下の1byteのアクノリッジを返信します。 正常受信時: 0x06h データ異常、チェックサムエラー時:0x22h (テキストの"?") タイムアウト時:0x21h (テキストの"!") もっとも、"?"や"!"が返って来てもリトライは行なわず、その場でエラーになります。 以前@ニフティのフォーラムでいろいろ伺ったところ、上記のようなフォーマットは「モトローラSフォーマットと呼ばれる、かなり汎用的なものだそうで、例えば色んな機器組み込み型のマイクロコンピュータなどの開発に携わっている方にはおなじみのROMライターなどにパソコンから書き込み用データを転送する際などに利用されることが多いそうです。 全然話が変わりますが、以前販売されていた、日本IBMのチップカードという、PCカード型のコンピュータのアプリケーションプログラムも、このフォーマットでPCカードスロット経由で書き込まれていたとか。 3.画像データフォーマット上記の手順で、トータル20,480bytesのデータが転送される訳です。 シールプリンタで印刷される画像のサイズが、横160X 縦120と推定され、また液晶モニタ上に表示される画像サイズが、横40 X 縦32(うち下端の2ドットは非表示)なので、これらを加算するとちょうど20、480画素になるのでピッタリと思ったのですが、生データを見るとどうも頭の4bytesがヘッダになっている様だし、そう単純でも無い様子。 いずれにしてもデータの並びとしては、シール印刷時が短辺を主走査、長辺を副走査方向とするのに対し、長辺を主走査方向としており、画面の左上−右上−左下−右下の順で並んでいます。 とりあえず、20,480 Bytesを、ひとつあたり160 Bytesのブロック128個から成り立っているものとして区切って考えてみました。
とりあえず、最後の1280 Bytes分が判然としませんが、少なくとも前半は160X120ドットの画データであることは間違いなさそうですね。 4.実際の取り込みにあたって以上説明してきました様に、データがテキスト形式で出力されるため、要するに送信されるデータをターミナルプログラムで取り込んでやれば、PCをデータファイラーとすることができることになります。 ただ、上に紹介した私の解析作業のときには、2台のプチコレ同士で通信させて、パソコンからそれを横取りする形でデータ取り込みをしていました。一般的にはパソコンとプチコレとが1対1で通信できるようにしないと、データファイラにはなりません。 そのためには、アクノリッジが返ってこないことによるエラーの発生を防いでやらねばなりません。つまり、簡易的には"S2"コマンドを受信したらそれに続く所定バイト数だけデータを受信したところで0x06hの1byteのアクノリッジを返すようなマクロ動作のようなことをPC上のターミナルソフトに行なわせて受信側の動作をエミュレートすれば、送信エラーが発生せず通信動作が完了します。(本当だったら、チェックサムの計算とかちゃんとしなきゃいけませんけどね。) その時のターナルソフトのログファイルがすなわちプチコレの画像 しかるに、私自身はもともとハードウェアのエンジニアで、パソコン側のアプリケーションを開発するなど、到底できません。(できたら楽しいだろうな、いつかはやってみたいな、という願望はずっと持っているのですが。) とりあえずは、上で申したようなマクロ動作ができるターミナルソフトがあれば良いと思ったのですが、なかなかウィンドウズのアプリケーションで手頃なものがありません。 やむなく、昔使っていたDOSのフラッシュカードを引っ張り出してきて、IBMのPalmTopPC110で懐かしい「Wterm」を走らせてみましたところ、なんとかかんとかうまく読みこむことに成功しました。感動した!! <下:そのときのマクロの例です。(恥ずかしい!)>
新たなる問題喜んだのもつかの間、どうも安定して読みこめません。いろいろ調べていくと、どうもQVリンクケーブルで信号波形が鈍ってしまってきちんと伝わっていない様子です。もともとQVリンクケーブルはパソコンのシリアルインタフェースからちょっと電気をもらってトランジスタで ロジックレベル−プラスマイナス12V 間のレベル変換しているだけの簡易的なモノなので、いまいち信頼性が低いというウワサは兼ねてよりありました。 そこで、間にこんなものをかませて見ました。
まぁ、なんてことはない、パソコン工作人間御用達の「MAX232」互換のレベルコンバータICでアクティブにレベル変換させただけのことなのですが、効果は絶大。もともとは別の目的(ロジックレベルのシリアルI/F信号で、外付けMIDI音源モジュールを鳴らす)ために以前作ってあったものだったのですが、意外なところで役に立ちました。 最後に今回は止むを得ず懐かしいDOSソフトまで引っ張り出してきたのですが、まぁ、このために毎回わざわざDOSを引っ張り出すのも何なので、当サイトのお客様で、手ごろなマクロ機能付きのWindows版ターミナルソフトの軽いやつをご存知の方がいらっしゃいましたらぜひそれをご紹介ください。 もっと勝手なことを申し上げれば、このプチコレ形式のデータの通信兼ビューワソフトだとか、あるいは汎用画像ファイルへのコンバータを作ってくださるような奇特な方はいらっしゃらないでしょうか...。 そういう方がいらっしゃいましたら、私のプチコレを1台進呈いたします。(いや、マジで。) もっとも、プチコレを実用的に使うに当たっては、今となっては肝心の感熱シール紙が入手困難、という問題があるのですが...。カシオもホームページにも何にも情報が載っていないし、売る気があるんだかないんだか、良くわかりません。 カラー版のプチコレが出たら絶対当たると思うんですがねぇ。 |