1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

BVE 鉄道シミュレーターで自宅運転台を動かそう~速度計を動かす

Last updated at Posted at 2022-02-08

BVE 鉄道シミュレーターで自宅運転台を動かそう~電車でGoコントローラーを使う~の続きです。
https://qiita.com/usashirou/items/ac358a8828f54f97bc2b
今回は、 電流計をスピードメーターとして動かしてみる で作った速度計をBVEで動かしてみます。
https://qiita.com/usashirou/items/4a57c976fb4771e29ca8

ATSプラグイン

速度をBVEから出力し、速度計(電流計)に表示してみましょう。
今回使用するのは BveSerialOutput です

ED67900-5さんは 実物車両運転シミュレータ製作講座 などを発行されている運転台シミュレーターを作られている方になります。

シリアル出力エディタを設定する

シリアル出力エディタ.exeを起動します。
警告が出ますが、詳細情報をクリックします。
image.png
実行します。
image.png
出力するポート番号、通信速度、列車速度を設定して保存をクリックします。
列車速度の桁数を変更しないと常に1桁の数字のみが送られます。
今回は125Kmまでなので3桁にしましょう。
image.png
保存する場所は、C:\Users\user\Desktop\Scenarios\Uchibo20\E217r\Ats\x86 にします。
**保存場所はATSプラグインのある場所となる為、ATSプラグインの読み込む場所に合わせて変更してください
image.png
image.png

車両を改造する

先のプラグインを使うには車両を改造する必要があります。
車両のデータは detailmodules.txt に記載されています。
ここに先のプラグインを登録します。
C:\Users\user\Desktop\Scenarios\Uchibo20\E217r\Ats\x86detailmodules.txt を編集します。
なお、プラグインは上から読み込むようで、順番によっては反映されないことに注意してください。
SerialOutput.dllを一番上に追記します。
image.png
また、先ほどダウンロードした SerialOutput.dll をコピーしておきます。
image.png

外部デバイスを準備する

外部デバイスとしてArduino等で製作したメータ類を使用します。
電流計をスピードメーターとして動かしてみる でESP32の出力ピンに可変抵抗を付けてメータを動かせるようにしています。
https://qiita.com/usashirou/items/4a57c976fb4771e29ca8
今回は、最大4個のメータを動かしたいのでdacwriteからledcに変更しました。

プログラム

const int dac1 = 25;
const int dac2 = 26;
const int dac3 = 32;
const int dac4 = 33;
char bvein;

void setup() {
  pinMode(dac1, OUTPUT);
  pinMode(dac2, OUTPUT);
  pinMode(dac3, OUTPUT);
  pinMode(dac4, OUTPUT);

  ledcSetup(1, 12800, 8);
  ledcSetup(2, 12800, 8);
  ledcSetup(3, 12800, 8);
  ledcSetup(4, 12800, 8);
  ledcAttachPin(dac1, 1);
  ledcAttachPin(dac2, 2);
  ledcAttachPin(dac3, 3);
  ledcAttachPin(dac4, 4);
  Serial.begin(115200);
  //  Serial.setTimeout(100);      
}

void loop() {
  int input;
  if (Serial.available() > 3) {//3バイト以上入力された場合
    bvein = Serial.parseInt();   
    if (bvein != -1 ) {
      if (bvein >= 0 && bvein <= 125) { //スピードが125Km以下なら速度計に計算値を出力する
        ledcWrite(2, bvein * 1.45); //メータと実際の表示の誤差を埋めるためにbveinに加減算する
      }
    }
  }
}

最大125Kmまでの速度を3.3Vの電圧を255で割った値を出力するプログラムになっています。

デバックモード

SerialOutputデバックモード にチェックすると出力内容が表示されます。
image.png

以上で、とりあえずスピードメーターが動くようになったと思います。

BVEで動かす

BVEで動かした映像になります

引用・著作権表示

© 2020 mackoy
© 三八電車店
© ねぎ味噌BVE公開所
© ED67900-5
© ツナギ図laboratory

1
2
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?