BVE5とAruduinoのシリアル通信について質問です。BVE5で停止信号等によりATSが動作した場合に、Aruduinoになんらかの数値をシリアルで送りたいのですが、どのように動作を検知、送信すればよいでしょうか。お教え願います。現時点で使用するAruduinoはLeonardo、車両は115系を想定しています。

1件の回答

回答を書く

1071271

2026-01-21 19:50

+ フォロー

BVE5からArduinoにATS動作を送るには、既存の車両データだけではできず、ATSプラグイン(またはそれにぶら下がるシリアル出力プラグイン)を導入して、その中でATS動作を検知してシリアル送信する形にする必要があります。 

理由と流れを簡単に書きます。

1つ目
BVE5本体には「ATSが動作したら外部機器に通知する」といった機能は無いので、必ずATSプラグイン側で判定を行います。ATSプラグインは毎フレームごとに車両状態(速度、ブレーキ状態など)を受け取る仕組みになっており、その中で「非常ブレーキが入った」「ATS非常動作フラグが立った」といった条件を自前で判定できます。 

2つ目
判定した結果をArduinoへ送る方法として、実用的なのは次のどちらかです。

・シリアル出力用のATSプラグインを使う
BveSerialOutputのような、パネルやATSの情報をシリアルに流すプラグインが公開されています。これをDetailManagerなどを経由して車両(115系)に追加し、Panelファイルに定義されているATSランプなどの値をシリアル出力の対象に設定します。ATS非常が動作した際に点灯するランプのインデックスをシリアルで送るようにすれば、Arduino側は「その値を受信したらATS作動」と判断できます。 

・自作ATSプラグインでSerialPortを直接叩く
C++やC#でATSプラグインを自作し、Elapse関数内でATS動作を検知した瞬間に、.NETのSerialPortなどでPCのCOMポートを開き、任意の数値(例えば1バイトのコード)を書き込みます。Leonardo側は通常通りSerial.beginでUSBシリアルを開き、受信した値に応じてLEDを点けるなどの処理をすれば連携できます。 

3つ目
115系かどうかはあまり関係なく、「その車両がどのATSプラグインを使っているか」「そこにシリアル出力用プラグインを追加できるか」がポイントです。既存の車両・ATSプラグインをそのまま使いたい場合は、BveSerialOutputのような出力専用プラグインを噛ませる方法が一番敷居が低く、自作プラグインを書く場合はプログラミングの知識が必須になります。


追記


「Subject = ats 1」は「このパネル要素はATSプラグインが出している『ats1』という値で動かします」という意味で、いわゆるパネル番号ではありません。

少し分解して説明します。

・Subjectキーについて
パネルファイルのSubjectは「このパーツはゲーム内部のどの値を参照するか」を指定する項目です。速度計ならkmph、ドアランプならdoorのように、内部の変数名を書きます。 

・ats 1 の意味
ats0~ats255というのが「ATSプラグインから渡される値」の入れ物として予約されています。Subjectに「ats 1」と書かれている場合、そのパーツはATSプラグインが出している1番の値(ats1)を見て点灯/消灯を決めています。 

・BveSerialOutputでどう扱うか
BveSerialOutput側では、「どのSubjectの値をシリアルに出すか」を設定します。このとき、速度ならkmph、ドア状態ならdoor、ATSランプならats1というように、パネルファイルに書いてあるSubject名をそのまま選びます。Qiitaの記事のとおり、「subjectの後ろのats xxxが速度計やATSなどの情報」になり、それをBveSerialOutputで指定して出力します。 

・ATS動作ランプを送りたい場合
今見ているランプのセクションに「Subject = ats 1」と書いてあるなら、「ATS動作を表すランプはats1で制御されている」ことになります。BveSerialOutputでats1を出力対象に追加し、Arduino側では「ats1の値が0以外になったらATS動作」と判断するようにすれば、狙い通り「点灯したこと」を検知して送信できます。

まとめると、「パネル番号」は気にせず、「ATSランプのSubjectに書いてあるats何番か」を見て、そのats○○をBveSerialOutputで出力対象にすれば大丈夫です。

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有