2013年08月15日

S88動作試験 (Desktop Station)

S88 decoderが届いたので、既に実装されている機能の試験を実施しました。すると、重大な問題が発覚しました。

RailuinoのS88機能(TrackReporterS88)のデコーダへのアクセス処理(Refresh()関数)にかかる時間が、数百ms以上占有しているため、通常の機関車やアクセサリ制御の処理の余裕分がなくなってしまっておりました。このため、1つのArduinoに集約する事が困難となりました。

S88のような通信処理の信号部分の実装をデジタル回路で組むと、シンプルでたいした処理量でもないのですが、ソフトで実装すると、ウェイトとGPIOのパルス設定だけの実装で、さらにこのウェイト中は何もできないものなので、非常に困った事になってしまいます。S88は通信速度が遅いようなのでウェイト時間が長過ぎて、このような問題を引き起こしてしまいます。

仕方が無いので、S88の検出用に別のArduinoに分離することとし、パソコン上(Desktop Station)にUSBで別に接続する事で対処する事となりました。本当はUSBは一本化したかったですが、CAN-BUS等で既に占有しているため、Arduino同士をつなぐ通信の余裕がありませんでした。
つきましては、S88を使う場合には、パソコン側のUSBを合計2つ占有する事となります。設定に関しても、S88検出用のシリアルポートを設定するところを追加したので、S88デコーダにつながるArduinoのシリアルポートを別に設定しなければなりません。

まとめ:

・S88機能を使う場合はArduinoを追加で導入しないといけない(もう一台Arduinoがないといけない)
・書き込みには改造版Railuinoが必要(S88ケーブル用の信号ピン設定で、デジタルピン3,4,5番に振り直し。Railuino作者が沈黙なので。)
・Desktop Stationでシリアルポート設定がもう一個追加(Arduinoが増えたので)
・両ArduinoのGNDは短絡(接続)して共通にする(線路で短絡型の検出方法を使うために必須)

試験風景:
S88_test.jpg

機器のブロック図:
s88_railuino_block.png

動画(自動運転機能ではなく、S88の検知をトリガにスクリプトを実行させているものです):




設定したスクリプト(速度を落として進行方向を逆にして、加速する処理):
SPEED,0,128
WAIT,10
SPEED,0,64
WAIT,10
SPEED,0,0
DIRECTION,0,2 (※反対側は1のFWD)
SPEED,0,64
WAIT,10
SPEED,0,128


バグだしが完了してから、最新ソフトのリリース、S88用ハードウェアの構築方法をアップロードします。
posted by yaasan at 14:03 | Comment(0) | 鉄道模型
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。