HOME >> 鉄道模型自動運転システム > 登山鐡道 新自動運転システム ロジックの改良と電車たち
■ はじめに
走行テストでの問題点に対して、ロジックの改良を実施した。 また、運行させる電車についても検討した。
// Tozan-Auto-14 2018/4/3 void direction1(int densha) { if (analogRead(densha) < 400 ) { //電車の設定の有無チェック return; //無の場合はこの運行をパスする } digitalWrite(P1_PIN, LOW); //経路を設定する delay(500); digitalWrite(P2_PIN, LOW); delay(500); digitalWrite(P3_PIN, LOW); delay(500); analogWrite(Fl_PIN, 0); //フィーダー出力0 for (i=0;i<17;i++ ) { //走行加速開始 duty = analogRead(densha); //VRの値を読込む duty = (duty - 500) *(0.1 + 0.025*i ); analogWrite(Fr_PIN, duty); //フィーダー出力 delay(200); } t2 = digitalRead(T2_PIN); //到着点通過チェック while (t2 == LOW ) { //到着点通過待ち duty = analogRead(densha); //VRの値を読込む duty = (duty - 500) * 0.5; //通常速度 analogWrite(Fr_PIN, duty); //フィーダー出力 t2 = digitalRead(T2_PIN); //到着点通過チェック delay(50); } e2 = digitalRead(E2_PIN); //到着チェック while (e2 == LOW ) { //到着待ち duty = analogRead(densha); //VRの値を読込む duty = (duty - 500) * 0.2; //低速走行 analogWrite(Fr_PIN, duty); //フィーダー出力 e2 = digitalRead(E2_PIN); //到着点通過チェック delay(50); } delay(500); analogWrite(Fr_PIN, 0); delay(1000); return; }
■ 発車時のロジックを加速方式に変更する
今まで考えていた発車時における速度調整は、ゆっくりスタートして出口の通過信号を受けると通常速度で走行するように設定していた。 これは駅の構内では低速で走行させようと考えていたからである。
しかし、この低速走行スムースに行かない車両が有ったり、突っかかって動かないものもあった。 そこで、PWMでの制御について、段々と加速させる制御に変更してみることにした。 突っかかって動かない車両については、通常走行速度までアップする内に、どこかで動き出すだろうし、低速走行が苦手の車両にもマッチするだろうと考えた。 即ち、下に示す今まで記述していた内容を、
t1 = digitalRead(T1_PIN); //出発点通過チェック
while (t1 == LOW ) { //出発点通過待ち
duty = analogRead(densha); //VRの値を読込む
duty = (duty - 500) /4; //デューティ比の計算、低速走行
analogWrite(Fl_PIN, 0); //フィーダー出力0
analogWrite(Fr_PIN, duty); //フィーダー出力
t1 = digitalRead(T1_PIN); //出発点通過チェック
delay(50);
}
次の様に変更した。
analogWrite(Fl_PIN, 0); //フィーダー出力0
for (i=0;i<17;i++ ) { //走行加速開始
duty = analogRead(densha); //VRの値を読込む
duty = (duty - 500) *(0.1 + 0.025*i ); //デューティ比の計算
analogWrite(Fr_PIN, duty); //フィーダー出力
delay(200);
}
ここで、analogWrite でのデューティ比は、0〜255 の値を指定すると、0〜100 %のデューティ比を指定することになるので、VRの最大値がデューティ比 100 % を指定する 255 になるように設定する。
VRの最大値はアナログ入力を A/D 変換した値で、1023 である。 そしてVRスイッチの ON 時の値が2.5volt 即ち 510 であるので、この下駄の部分を差し引いて、1023 - 500 の値が0〜255 の値になるように係数を決めれば良いjことになる。 523/255 = 0.49 = 0.5 が最大係数となる。 実際には、その車両にあったスケール速度になるようにボリュームを調整すれば良い。
そして、スタート時は、係数が 0.1 から始めて、0.025 ずつ増加させて行き、次の通常速度時の係数である 0.50 に達するまでには、16回繰り返せばよい事になる。 通常速度時の係数が 0.3 の場合には8回の繰り返しで到達する。
この時の遅延時間設定か、あるいは増加刻み量を変えれば加速具合が調整できるのである。 まずはこのような設定で走らせて様子を見ることにしよう。 この時のスケッチの内容の一部を右に示す。
■ 走行させる電車について
先回の走行テストでは、1本の電車を使って運行具合を確認した。 その後、複数の編成を走らせようとしたがその選択に迷ってしまった。 出来るなら同じ系列の電車を揃えて走らせたいのだ。 所有している箱根登山鉄道の車両は、TOMIX 2620 箱根登山鉄道 1000形ベルニナ号(旧塗装)と、98007 箱根登山鉄道 2000 形サン・モリッツ号(レーティッシュ塗装)の2編のみである。 同じ車両を増やす方法もあるが、最近はほとんど日が当たらない鉄コレ電車を引っ張り出すことにした。
その車両達を下に示す。
この鉄コレシリーズは、車両の長さが少し長目であるが、この登山鉄道のレイアウト上ではなんとか走行可能であった。 でも幾つかのトラブルが発生していた。
車両名 | メーカーと品番 | 動力車 | トレーラ車 | 備考 |
---|---|---|---|---|
箱根登山鉄道 1000形ベルニナ号(旧塗装) |
TOMIX 2620 | 69.5 グラム |
22.3 グラム |
|
箱根登山鉄道 2000 形サン・モリッツ号(レーティッシュ塗装) |
TOMIX 98007 | 40.2 |
22.1 |
|
鉄道コレクション 名古屋鉄道 3700形 | TOMYTEC | 50.1 |
33.0 |
動力 TM-05、17m級 |
50.0 |
32.5 |
|||
鉄道コレクション 新潟交通 2200系 | 50.7 |
33.7 |
動力 TM-06、18m級。赤色に塗装する |
まず、トレーラ車両は車体が軽いのでレールエンドに衝突すると飛び上がって脱線してしまうのである。 停止前の速度を調整したが、低速にしすぎると他の場合での走行がもたついてしまう。 その車両にぴったりの設定を行っても、他の種類の電車ではアンマッチとなってしまうのである。 運行プログラム上でこのマッチングを行うのは難しいと感じたので、車両側で対応することにした。 下左の写真のように、重りを追加したのだ。 22グラムの車体に 11グラムも重りを追加して 33グラムまでアップさせると、脱線を回避させる設定が出来るようになった。
また、走行途中での脱線やカプラーの自然開放の問題も発生した。 修正に次ぐ修正によって、線路面の状態が不整状態となってしまっているのである。 線路上面の凸凹は勿論、カーブ具合やうねりなど不均一な路面となってしまっていた。 目で確認しながら設置したはずであり、Bトレを走行させていたときは問題無かったのであるが、台車スパンの長い車両では路面のうねりの影響が特に大きいようである。
このため、カトーカプラーをTNカプラーに交換して対応し、脱線対策は上記の重りの追加で対応した。 そして、この鉄コレ編成の3本の電車で運行さsてみた。
最後に見られる脱線は、スイッチバックから出てきた時のカーブと勾配と線路のうねりによって、車輪が浮いてしまうものと推定する。 現象はこの車両だけであるため、台車の自由度が限界と想定するが、車両側での対策は出来なかった。 そこで、脱線した現場の直線部分の線路をリレーラーレールに交換する安易な対策でごまかすことにした。
運行は、色々な種類の電車と運行パターンを組み合わせて遊んでみたいと思っている。 箱根登山鉄道の場合は2編成で運行するとか、動力車の1両編成で他の鉄コレを走らせるとか工夫してみよう。
2018/4/5 作成 M.T.