スイッチバック(1)-3:DesktopStationスクリプト
とりあえず動かしてみる
ひとつの車両が、ひたすらスイッチバックを繰り返すスクリプトを作成し、動かしてみた。ゴチャゴチャしてますが、線路上のDD51のみ動きます。
DSの設定
DesktopStationソフトウェアのオプション設定は以下にしてます。
- S-88 N のTrain Detector(Nuckyさん製)を利用するので、[S88設定]のS88を使用するチェックをONにする
- DCCポイントも制御するので、[DCC設定]のDCCアクセサリを使用するチェックをONにする
- シリアルポートの設定は、USB接続した Aruduino UNO のシリアルポート番号が何番であるかをデバイスマネージャで確認しておく(下図参照)
[複数スクリーン表示設定]は、フルHD(1920x1080)の解像度があるなら下図のような「4スクリーン」にすることで表示情報量がだいぶ増え、スクリプト作成時に便利。
Loco(車両)とスロットの設定
事前に、ロコとしてDD51(アドレスは51)を登録する。
次に、登録したロコをスロットに追加する。スロットに追加する目的は、イベントスクリプトでの車両指定時に汎用性をもたせることです。
スクリプト内の車両に対するアクションをスロットで指定することで、他の車両(=異なるアドレスの車両)をスロットに入れ替えることで、同じスクリプトで異なる車両を動かすことができます。
下図は、一番左上の「スロットA」にDD51を追加した状態。
ただ将来的には、車両ごとにファンクションナンバーが異なる場合が出てくると思うので、車両によって警笛のファンクションナンバーが違うといった場合には、何らかのフラグなど使って制御が必要になりそう。
EventScript
動画のスイッチバックの動きを実現させているスクリプトは、以下A~Fの6つのイベントから成り立ってます。
- A:3進入
- B:2進入
- C:電源ON ※本来な
- D:5進入
- E:6進入
- F:7進入
上記の数字ですが、以前の記事で書いた以下の「検知区間①~⑦」を指しています。
つまり、A「3進入」のイベントスクリプトは、上図内左下の検知区間③に進入した場合の処理を書いています。各イベントの内容は以下の通り。
- A:3進入
- B:2進入
- C:電源ON
- D:5進入
- E:6進入
- F:7進入
スクリプトの簡単な説明
- 「N進入」(A、B、D、E、F)の処理ほとんど同じことをやっていて、進入したら停止 ⇒ 10秒後にポイント転換&方向転換&発進。
- [Flag.0]を上り/下りフラグ(値が1の時:下り)として利用し、ポイントの転換をどちらにするか制御する。[KUDARI]というラベルで条件分岐している箇所がそれ。
- 上記のフラグは、折り返しとなる区間2と7のイベントで値を設定するようにしている。具体的には、区間7では下りフラグ[Flag.0 = 1]を立て、区間2では上りフラグ[Flag.0 = 0]を立てている。
- 「C:電源ON」は、このスクリプトの最初のトリガーとするためのイベント。検知区間②~③の間にロコを配置している状態であることを前提に、DSshieldの電源をONにすると区間③へ進入させるため、区間③方向へ発進させる。これにより、「A:3進入」イベントが発生し、その後のイベントへつながっていく。冒頭動画の最初の動きを見てもらうのが分かり易いと思う。
次は、今回利用していない区間1に2両目のロコを配置し、2つのロコが順番にスイッチバックするようにしたい。
参考にさせていただいたブログ
Web Nucky - S88N Train Detector (16 Block)
DesktopStation ソフトウェアサイト内からリンクされている、先人の方々の素晴らしい下記情報たち
箱庭計画11~在線検知とイベントスクリプト~ : エンゼル・エクスプレス
おわり