ADIF のページ(暫定板) Last update 12/06 '00 このドキュメントは、以下のバージョンのインタフェースに関して記述してあります。 ソフトウエア(PIC) ADIF Ver.1.00/基板 Ver.1.02 ***このバージョンの基板に不具合が見つかっています*** →不具合のページ ●ADIF仕様: 入力:16チャンネル8ビットAD入力 0V〜5Vの電圧を0〜255までの数値として計測できます。 センサが16個まで同時につけられます。 出力:16チャンネル1ビットTTL出力 電気を入れる、切るという操作ができます。 つながる装置は同時に16個まで。 たくさん電気が流れるものは、個別の回路が必要になります。 (10mA程度まで。LED 程度なら直接接続可能) #もしかすると30mA程度いけるかも? PCとの接続:RS−232C(シリアル) ケーブルは、メス−メスタイプの9ピンD−SUBケーブルを使用します。 シリアル接続は一般的な接続方法なので、Houdini の他、Director、 C言語、MAX などの言語やスクリプトで制御できます。 シリアルコネクタの形状変換を使用すれば、マックでの使用も可能。 (ただし、モデムポートやプリンタポートといったシリアルポートを使 用するので、シリアルポートを持つマックでないと不可) ●入出力端子 i-cube と似た形式 正面向かって左から 「アナログ入力 0, 1, 2, ..., 14(E), 15(F) チャンネル」、続いて 「デジタル出力 0, 1, 2, ..., 14(E), 15(F) チャンネル」。 部品面を上として、上から、+5V、信号入力・出力、GNDの順。 【コネクタ正面からの図】 アナログ入力 |デジタル出力 0 1 2 3 4 5 6 7 8 9 A B C D E F|0 1 2 3 4 5 6 7 8 9 A B C D E F :チャンネル番号 --------------------------------------------------------------- o o o o o o o o o o o o o o o o|o o o o o o o o o o o o o o o o :+5V o o o o o o o o o o o o o o o o|o o o o o o o o o o o o o o o o :Signal(IN/OUT) o o o o o o o o o o o o o o o o|o o o o o o o o o o o o o o o o :GND ↑ 縦一列(3つの端子)一組がひとつのチャンネルに対応。 一番左がアナログ入力0チャンネル。一番右がデジタル出力16(F)チャンネル。 ●接続条件 38400bps, non parity, data bit 8bit, stop bit 1bit ●コマンド一覧 コマンド 結果 内容 "Dxxxx": "D*" 全チャンネルへのデジタル出力 出力設定ビット列の MSB が 15ch、LSB が 0ch に対応 出力設定ビットが 0 で 0V, 1 で 5V が出力される "Hx": "H*" x チャンネルへのデジタル出力(5V) "Lx": "L*" x チェンネルへのデジタル出力(0V) "I": "Ixx...xx*"("xx"が16組) 全チャンネルからの A/D 入力(8bitx16ch) 先頭が 0ch、末尾が 15ch に対応 "Ax": "Axx*" x チャンネルからの A/D 入力(8bit) "*": 送信したコマンドの実行 コマンド中の "x" は一文字の十六進数文字(0-9,ABCDEF)で、1ニブル(4ビット)に対応。 コマンドは、最後の "*" を含めて、同時に32文字まで送信可能。 送信されたコマンドは、"*" を受け取った時点で頭から順に一つずつ実行されます。 送信されたコマンドに無効な文字が含まれていた場合は、"!" が返され、 それ以降の文字は無視されます。 ※すべて ASCII 文字であり、数字は十六進数文字の ASCII CODE を送る。 コマンドに改行文字は不要(エラーになります) ●コマンド使用例 − 入力チャンネルすべてのアナログ値を取得する 送信:I* 結果:Ixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx* 先頭から xx を二組ずつに区切ったものが、16個。 先頭から順に0、1、2、、チャンネルに対応。 − 入力チャンネル13番のアナログ値を取得する 送信:AC* C は 13 を示す十六進数 結果:Axx* xx は結果を示す2桁の十六進数(00 - FF) − 出力チャンネルすべての出力を 0V にする 送信:D0000* 結果:D* − 出力チャンネル0番の出力を 5V、その他全てを 0V にする 送信:D0001* LSB が0チャンネルに対応 結果:D* − 出力チャンネル5番の値を 5V にする 送信:H5* 結果:H* − 出力チャンネル5番の値を 0V にする 送信:L5* 結果:L* ★接続実験のためのPCとの接続 接続するPCでハイパーターミナルを起動し、COM1を「38400ビット/秒、デー タビット8ビット、パリティなし、ストップビット1、フロー制御なし」に設定してくだ さい。シリアルケーブルをPCのCOM1に取り付け、もう一方をインタフェースに取り 付けてください。接続できたら、キーボードから大文字で「V*」と入力してください(こ の先もすべて改行は不要です)。バージョン情報が表示されれば接続成功です。 ★動作確認 作ったセンサ(可変抵抗器:VR)とアクチュエータ(発光ダイオード:LED)を使っ て動作確認します。32列のコネクタは、左半分の16列がアナログ入力用で、右半分の 16列がデジタルの出力になっています。一列は3段で、上から+5V、真ん中が入力/ 出力、一番下がGND(0V)です。 まず、LEDを使いデジタル出力を確かめます。一番右の16チャンネルにLEDを接続 して、キーボードから「HF*」と入力します。これでLEDが点灯するはずです。さら に、「LF*」(大文字L、F、アスタリスク)と入力します。これでLEDが消灯しま す。これを順に左へ、1チャンネルまで試し、正しく動作することを確認してください (真ん中の文字を、EDCBA987654321と替えていきます)。 次に、VRを使いアナログ入力を確かめます。ここで作ったVRは絶対にデジタル出力端 子につなげないように注意してください。最悪ICやVRが発熱して壊れます。一番左の 1チャンネルにVRを接続します。キーボードから「A0*」(大文字A、ゼロ、アスタ リスク)と入力します。VRを回転させて同様に入力してみてください。一番左にまわし きったときに「A00*」、一番右にまわしきったときに「AFF*」と画面に出力され るはずです(左右が反対の場合もあります)。この00やFFというのがVRからの電圧 を示しており、二桁の16進数になっています。VRの中間では、80に近い値になりま す。これを順に16チャンネルまですべて試し、正しく動作することを確認してください。 後は複数のVRやLEDをつなげてみて、正しく動作するかどうかも確認しておいてくだ さい。 ◆Q&A Q1 動作しない。シリアルケーブルを外すと LED が点灯するがケーブルをつなぐと消える。 A1 不具合が見つかっていますので確認してください。→不具合のページ Q2 センサーがつながっていない入力の値が安定しない A2 このインタフェースは入力感度がよいために、入力がつながっていない場合には、隣の 入力の影響を受けてしまいます。センサがつながっている入力の値は正しいので、気にす る必要はありません。どうしても接続しない入力の値を安定させたい場合には、1MΩ程度 の抵抗で各チャンネルの入力を GND に接続してください。 Q3 AC アダプタはどういうのが使えるか A3 AC アダプタは、9V〜12V くらいの直流出力のあるものを使ってください。電流容量は 50mA 程度で動きますが、入力のセンサや出力につなぐものによってはより多くの電流が必 要となる場合があります。安定した動作のためにも余裕をもって 500mA 〜 1A の物を使用 することをお勧めします。コネクタを取り付ける場合は 2.1mmφ標準プラグを使用し、外 側が−(マイナス)になるように接続します。 Q4 具体的な使い方は? A4 、、、