HOME >> 鉄道模型自動運転システム > 新登山鉄道 運転制御の記述
表示パネルの点灯制御について無事クリアーできたので、いよいよ運転制御を検討することにしました。 この制御は以前にも挑戦していますのでこれを参考にし、今回は新しく自動運転と手動運転をスイッチ一つで切替できるように細工しました。
.
■ 待機線の整備
運転制御の検討を始める前に、手付かずの追加レイアウト(予定) との連絡線の処理を実施しておきます。 当面は単独ユニットで運用できるように、連絡線の部分を待機線として整備しました。 即ち、ポイントの先にユニットの端にそって線路を敷き、レール端に特製の車止めを設けました。
ポイントはKATO製ですので、接続する線路もKATO製を使いました。 上右の写真です。 そして、下左に車止めを示します。 信号処理は先回と同じ改造を実施し、信号線をレール下を通してユニットに設けた穴を通して制御部まで配線しました。 下右の写真。
.
■ 建物の照明
工作内容は省略しますが、登山口駅と、教会および山小屋に照明を設置しましたので、そのための配線とスイッチを設けています。 電源は12ボルト系としています。 田舎の中の建物なので、明るさを押さえて照明にしてありますが、写真ではハッキリしませんね。
ホームには、屋根がないので街灯をふたつ設置しています。 また、頂上駅は、駅舎がないため、街灯だけにしました。
■ 運転制御の記述
今回の制御の基本として、「新登山鉄道 運転システムの検討」(2021/11/10)にて説明した仕様をもとに、ロジックを検討した。 また、以前の制御ロジックも参考にしながら、次のように設定した。
電車の停車位置は、登山口駅の1番ホームと2番ホーム、頂上駅、待機線の4ヶ所で、これらは全て行止まりなので折り返し運転となる。 その経路は、4種類の経路となり、その運行パターンは、「登山鐡道 新自動運転システム 構想」(2018/2/22)のパターンを踏襲することにした。 ただし、スイッチバックが無い事、ホーム番号がズレてしまったことなどがあるが、基本的に同じパターンとします。 有名な15ゲームのように、開いている隙間にコマ( 電車 )を動かすのと同じですね。
電車が同じ位置に戻ってくるのは、4×3=12 のモードを実施後になります。
******************************************************************
Arduino などに使用していたノートパソコンのキーボードがおかしくなったので、デスクトップパソコンを使用してスケッチの記述を行います。 レイアウト台との距離が少しあるので、長いUSBケーブルを使うことになるのですが、今のところ問題無さそうです。
void loop(){ aut = digitalRead(AUT); //自動運転スイッチをチェック if (aut==LOW){ //手動運転モード pts1 = digitalRead(PTS1); //スイッチ類のチェック pts2 = digitalRead(PTS2); dswr = digitalRead(DSWR); dswl = digitalRead(DSWL); vol1 = analogRead(VOL1); ledhyoji(); //パネル表示 if (pts1==HIGH){ //ポイント操作 digitalWrite(POUT1,HIGH); delay(100); } else { digitalWrite(POUT1,LOW); delay(100); } if (pts2==HIGH){ digitalWrite(POUT2,HIGH); delay(100); } else { digitalWrite(POUT2,LOW); delay(100); } if (dswr==HIGH){ //進行方向設定 digitalWrite(DIRR,HIGH); } else { digitalWrite(DIRR,LOW); } if (dswl==HIGH){ digitalWrite(DIRL,HIGH); } else { digitalWrite(DIRL,LOW); } duty=(vol1-500)/2; analogWrite(MPWM,duty); } else if (aut==HIGH){ //自動運転モード analogWrite(MPWM, 0); //暴走防止 mode3(0); //densHa0の運行 mode2(0); mode1(0); mode4(0); } delay(10); }
記述は、先回のスケッチに手を加え、修正と追加を実施した。
記述したスケッチ ⇒ Sin-Tozan-Unit-05A.html
メインのループ部分を右にしめします。 パネル表示の関数 ledhyoji() や mode1() などの部分は、上記のスケッチを参照下さい。
最初に、自動運転スイッチをチェックして、手動運転モードか自動運転モードかに分岐させます。 手動運転モードでは、最初にポイント等のスイッチ類をチェックして、その状態をパネル表示させます。 そしてスイッチの指示状態に応じて、ポイントやモータドライバの実行を指示して行きます。
一つのスイッチに対して、if 〜、else 〜をセットにして指示していきますが、ポイント操作の場合は、 delay(100); を間に挿入しています。 これは、コンデンサの充電や放電のための時間を設けるためで、最初はいつもの様に delay(500); としていました。 ところが全体をチャックしてひと回りするのに時間がかかり、応答時間がまどろっこしいことや、早いスイッチ操作には追い付けず、反応してくれないケースが多発しました。
そこで、遅延時間を削って行き、100msec に落ち着いた次第です。
また、速度調整のためのボリュームによる duty 計算では、スイッチ付ボリュームであるので、先回度同様に、下駄を履かせた設定になっています。
**************************************************
このスケッチによる試運転を実施しました。
TOMIX製の箱根登山鉄道 2000形 サン・モリッツ号を走らせました。 当初はポイントの作動不良(上記の件)、PIN 番号の指定間違い、車止めのマイクロスイッチ回路の不具合等、いろいろなトラブルに会いました。 その時の動画を下に紹介します。
無事に運行出来るようになったので、以前から考えていたように、ループ線に似合う車両を導入することにしました。 KATOのレーティッシュ鉄道<アレグラ>3両セットです。 ユニトラックコンパクトR150を通過できる小半径対応車両とのことですので、TOMIX のR140 の走行できること、また、中間車両を外して2両でも走行出来るようなので通販にて注文しました。
この車両が来るまでは、レイアウトの地面作りを再開することにしました。
2021/11/22 作成