2006年12月10日日曜日

センサー系と制御系独立システム

ASF Gyro コンセプトに合わせてPICをテストしてみました。




センサー系PICに加速度センサーADXL202EとRC受信機(JMP RX5-2.3)を接続し、制御系PICとRS-232C接続してみました。
今回は、インターフェーススピードを9600から19200bpsにアップさせて実験してみました。(38400bpsではうまく動作していません)
RCシグナルを受信してない時は、加速度センサー情報のみの通信となります。
加速度センサー情報のみの通信時間:2.7msec (5bytes)
加速度センサー+RCシグナル情報の通信時間:6.7msec  (12bytes)
動作確認してませんが、複数のセンサー系PICをRS-232Cバス接続可能になるような通信プロトコルにしました。
通信プロトコル
センサー系PICはセンサーの計測を行い、データ収集終了するとデマンドコード待ち(情報交換フェーズ)状態となります。
情報交換フェーズは制御系PICがトリガーとなって情報交換しています。
制御系PICがデマンドコード1バイトを送信し、それに対応した情報を持っているセンサー系PICが情報を返す方式です。
情報交換フェーズ終了は、終了用のデマンドコードを制御系PICが送信して終了します。
その後、各センサー系PICはデータ収集に戻るわけです。
センサー情報に関するメモ
//#### PING #####
// #define GET_BEACON_INFO_RS232C 10
// MIN:1 MAX:155 -----> for RS232C +80 ----> MIN:81 MAX:235
// 128(usec/count) distance= count*128/350/1000000/2(m) ---> MAX:3.5m
// data length:1byte
//
//#### ADXL202E #####
// #define GET_ADXL202_RS232C 11
// MIN:81 NEUTRAL:108 MAX:135
// 4(usec/count) A(g)=(count/216-0.5)/0.125 MIN:-1g MAX:+1g
// Pich or Roll = asin(A/1g)
// data length:2bytes x,y
//
//#### RC #####
// #define GET_RC_RS232C 12
// MIN:121 NEUTRAL:187 MAX:253 8(usec/count)
// JR RC signal ChengeLow to ChengeLow --> MIN:968usec NEUTRAL:1496usec MAX:2024usec
// Servo signal ChengeHight to ChengeLow
// data length:8bytes ---> 8channel
//
//#### BEACON ####
// #define GET_BEACON_RS232C 20 + 10
// #define DISABLE_NOBEACONSIGTIME 50
// Direction MIN:0 MAX:7 DISABLE:50
// --> for RS232C +80 --> MIN:80 MAX:87 DISABLE:130
// ReceiveNumber MIN:0 MAX:7
// --> for RS232C +80 --> MIN:80 MAX:87 DISABLE:130
// data length:2bytes Direction,ReceiveNumber

0 件のコメント:

コメントを投稿