BVE 鉄道シミュレーターで自宅運転台を動かそう~の続きです。
今回は、前進後進を決めるレバーサとキースイッチを連動させてみます。
レバーサとは
レバーサは前進後進及び中立を決めるもので、当然ながらこのレバーサが前進でないとマスコンを操作しても前進はしません。
BVE 鉄道シミュレーターで自宅運転台を動かそう~電車でGoコントローラーを使う~では11,12ピンにレザーサのピンを設定しています。
https://qiita.com/usashirou/items/ac358a8828f54f97bc2b
const int REBF = 11;
const int REBR = 12;
レバーサは、3ポジションのスイッチを活用し、前後でGNDが短絡するように配線しました。
UniversalContactInterface は
中立:RN
前進:RF
後退:RB
を入力することでコントロールできます。
今回は、既存のプログラムのIF文による
REBFsw == OFF/ON && REBRsw == OFF/ON
NOWREB = x
をそのまま使用しました。
キースイッチ
次に、キースイッチを作ります。
キースイッチは、運転士がマスコンを操作する際に入れるキーで、東急電鉄の車両などでは、キーを入れないとテールランプが点灯するようになっているようです。
BVEではメトロ総合プラグインなどではキーをONにしないと運転を開始することができません。
今回は、この動作をするスイッチを作ってみます。
スイッチ
今回はON-OFFだけのスイッチにしましたが、3ポジションのON-OFF-ONのスイッチをつかうことをお勧めします。
これはメトロ総合プラグインにおいて複数回ONにしないといけない場合がある為です。
マスコンキー仕様の一例
13 東急 ← 切 → 営団 → 東武 → 西武
今回は、既存のプログラムを活用してONで 8、OFFで 7 を入力するようにしましょう。
組み立てた様子
プログラム
既存のスイッチのプログラムはON接点が繋がる、離れるでコマンドを送信します。
これを接点が繋がる⇒ Button6を送信
離れる⇒Button5を送信に変更します。
if (SW5sw == ON) {
NOWSW5 = 1;
}
if (SW5sw == OFF) {
NOWSW5 = 0;
}
if (NOWSW5 != BEFORSW5) {
if (NOWSW5 == 1) {
Serial.print("S6\r");
}
if (NOWSW5 == 0) {
Serial.print("S5\r");
}
}
BEFORSW5 = NOWSW5;
Buttonをキーに変換する
次に、BVEの入力インタフェースで
Button6は 8
Button5は 7 に入力変換します。
8 はATS13
7 はATS12を割り当てます
以上でキースイッチを廻すとBVE上のキーがONになるようになりました。
車両の改造
今回は車両の改造は必要ありません。
入力インタフェースのみとなります。