fc2ブログ
鉄道模型 自動運転への道
鉄道模型ビギナー・電子回路アマチュア・ソフトウェアそこそこの管理人が、鉄道模型の自動運転・自動運行を最終目標にあれこれ試しています。
単線で列車交換 完全版


以前にもPCからの制御で単線で列車交換しながら運行させたが、センサーが足りず、一部の減速の制御を端折っていた。
その後、本家デジトラックスのBDL168を手に入れたので、センサーをフルに装備した状態で運行させた動画がこれ。
制御ソフト(PC)の画面と実際の動きの対応がわかるようにした。

小さなテスト用レイアウトなので駅の長さが本当に最低限しか確保できない。
それなのに、列車を従来の単行から2両編成×2本にしてみた。

駅は (4番ポイント+R481-15°)×2 と (2番Yポイント+R481-15°)×2 だから2両編成が停車するには本当にギリギリ。
正確な位置で停車できることが絶対条件なので、停止位置のセンサーはBDL168ではなく今まで通りの光学式のセンサーを使用している。
このセンサーはPCに接続されており、ソフトでBDL168と互換性のあるパケットを送出する「ニセBDL168」だ。
ぎりぎりの長さの交換駅でも正確に停車できているのはBDL168ではなく光学センサーを使っているお陰。


・・・
PCの画面とカメラ映像をちゃんと同期させた動画を撮るのはなかなか難しい。
PC画面を動画で記録するソフト「Bandicam」の動画とデジカメで撮影した動画は、開始時間を正確に合わせても全然タイミングが合わない。
そのため、「デジカメのライブビュー画像をPCに表示させ、制御ソフトの画面と並べて、それをBandicamで動画にする」という方法を取った。
レイアウト全体を写している映像の動きがスムーズでないのはデジカメのライブビュー画像だから。

テーマ:模型・プラモデル - ジャンル:趣味・実用

自動運転で単線で列車交換させてみる
前回 PCからの自動運転 何とか第一歩 のソフトを一歩進め、単線で進行方向の違う列車を同時に運航できるようにした。



自作のBDL168モドキはセンサー8個までしか対応していないので、列車に減速・停止を指示するためのセンサーを一部省略して、「
減速」→「停止」の2段階だけで停車している。
(本来は「減速」→「停止用意」→「停止」の3段階でスムーズに減速・停止できる仕組みになっている)

単線なので駅で列車交換を行う。
具体的には、タブレット閉塞もどきの閉塞の仕組みをソフトで実装した。

・閉塞の取得
駅に停車した後、前方の閉塞区間(=駅間)に別の列車がいなければ、その区間を閉塞して(=閉塞区間の通行権を取得して)発車する。
逆に言えば閉塞できない(=閉塞区間の通行権を取得できない)限り発車しない。

・閉塞の開放
閉塞を確保して出発し、次の駅に着いたら、確保していた閉塞を開放(=通行権を返却)する。

どの閉塞区間にどの列車がいるかはソフトが把握している。

書き漏らしていたこのシステムの仕様について補足。
  • 駅に停車したら乗降時間として最低10秒は停車する。
  • 簡略化のためポイントはスプリングポイント。
    鉄道にそれほど詳しくない人のために説明すると、列車交換駅の両側がスプリングポイントだと、駅のどちら側から列車が進入するかで停車する番線が決まる。
    そのため、単線で列車交換を行うだけならポイントを制御する必要がない。
なお、今のところはエンドレスでやっているが、センサーに定義できる動作に「反転」を追加すれば終点での折り返しにも対応可能。

足りない点としては、次の駅に着いた時点で閉塞を解放するため、停車中でも後続の列車は発車できてしまう。
そして、場内信号に相当するものがないので、先行の列車が駅を出発していなければ追突してしまう。
実際の鉄道の場内信号に相当する仕組みを組み込むのも一つの方法ではあるが、列車ダイヤが存在しない当システムでは「列車がつっかえてにっちもさっちも行かない」状態になる可能性がある。
解決策としては、閉塞での発車抑止に加えて、前方の駅に列車が停車中でない場合のみ列車を発車させるというのが現実的だろう。
これは今後ソフトに組み込む予定。
>>続きを読む

テーマ:模型・プラモデル・フィギュア製作日記 - ジャンル:趣味・実用

PCからの自動運転 何とか第一歩
やっとこさ、何とか自動運転と呼べるものを作ってみた。
というわけでその動画。


以下、おさらいでもあるけど、私が目指している自動運転の仕組み。

概要
・車両の制御はDCCによる。
・運行の制御はWindows PC上のソフトで行っている。
・USB-LocoNetアダプタ(自作)を用いてPCをLocoNetに接続している。
※LocoNetは、Digitrax製DCC機器間のデータ送受信に使うインターフェース。
・PCソフトの開発環境はC#、.NET Framework。

車両検出センサー

DigitraxのBDL162・BDL168と同等の信号をLocoNetに送出する自作の車両センサーを使用。
ただし、本家BDL162/BDL168は「在線」を検知するが、このセンサーは赤外LEDの光が車両に遮られることによって「車両が通過したこと」を検知する。(フォトインタラプタ式)
接触不良等が原因でBDL16「在線」の検知は必ずしも正確ではないため、この種の自動運転ではこの方式でも充分だと思っている。

センサーの使用法

ソフト上で、各センサーのアクションを定義する。
アクションは基本的には加速・減速させるための定義で、次のようなものを用意した。
 ・減速(駅接近)
 ・停止準備
 ・停止
各センサーを車両が通過すると、そのセンサーに定義された速度まで加速・減速する。
その速度にするまでの加速度・減速度(km/h/s)も定義できる。

運行の制御
上記のセンサーによる制御の他、停止状態で一定時間(今回は5秒)経過したら発車させる。
ソフト内部では閉塞の情報も持っており、ソフトは列車がどの閉塞にいるか検知している。
閉塞を確保しなければ発車できないようにする予定で、単線での上下方向同時運行が可能となる。
※閉塞…線路上の区間で、同時には1列車しか入れない。鉄道はこれによって列車同士の衝突を防ぐ仕組みになっている。

速度制御
スケール速度とそれに対応するDCC速度値のテーブルを車両ごとに持っている。
センサーのアクションなどは、スケール速度(km/h)で定義している。
これらをDCCの速度値そのままで持たないのは、実際の速度は車両によって異なるためで、車両ごとの速度特性の違いを上記テーブルで吸収している。

今後
ソフトの構造としては複数の列車の並列制御が可能なので、ソフトに閉塞確保の仕組みを実装すれば、目指している「単線での上下方向同時運行」が実現する。
…のだが、自作「BDL162/BDL168モドキ」はセンサー8個までしか対応していない。
エンドレスに交換駅二つという最低システムを構築するにはセンサーが12個必要。
そろそろ本物のBDL168を入手する時が来たのかもしれない。
システム概略

目指すシステム

  • 単線・非エンドレスでの自動運転
    実世界ではエンドレスな路線なんて数えるほどしかない。 また、単線での自動運転ができれば複線での制御は難しくないはずなので、まずは単線での自動運転を目指す。
    タブレットによる閉塞をソフトで実現するのがシンプルで良さそう。

  • 基本的にPC上のソフトで制御する。
    ソフト次第で、例えばより細かく実感的な制御にすることも可能。
    例えば、発進・停止はPCから制御しているわけだから、それを模型上の信号機に表示するのは簡単。

  • 誰が使っても楽しめるシステムにしたい
    ただ自動運転で車両が走るだけではつまらないという人もいるだろう。
    自動制御しつつその範囲内で手動での運転もできるのが理想。
    要するに 衝突したり運行に支障が出ない範囲では人の手で操作できるという、実際の鉄道と同じ話。 ただし信号無視したらATSが作動しますよ!

  • 主要なコントロールにはDCCを利用する
    以前はDCCとアナログ両方に線路側の変更なしで対応できるようにしたい と思っていたが、当然ながらDCCを使うと大幅に課題が少なくなる。 加えてアナログより柔軟な制御ができるはず。
    現状でのDCCの普及度は微妙なところだが、 一つの合理的なシステムであることは間違いない。

  • モジュールレイアウトや既存のレイアウトにも応用できるよう、レイアウト側への制約 ・改修は極力少ない方向で
    自動運転用に作られたレイアウトでなくても最小限の改修で連結して運転できることが目標。 制約が少ない、もしくはそれをシステム側で吸収できるのがいいシステムというもの。

  • 回路には詳しくないが色々な回路をパクってシステムをでっち上げる^^;
    電気回路でやることはそこそこ単純なので、理想の回路は誰かが考えてくれるに違いない(ほんとか?)

  • 基本姿勢は「細けぇこたぁいいんだよ!」
    うだうだ考えて何も進まないよりは火を噴かない範囲でやってみりゃいいんじゃない?

モジュール側の規格

モジュールの種類を下記のように決めておけば、大抵のモジュールレイアウトは相互に接続して連続運転が可能。

  • 直線モジュール
    もちろんカーブしていても扱いは同じ。
    連続した直線モジュールは1つのモジュールと見なすことができる。

  • 列車交換モジュール
    列車の行き違いのための信号所もしくは駅で、両側に電動ポイントを含む。
    少なくとも停止位置検出のためのセンサーを設置する必要がある。
    ポイントは、アナログでは選択式、DCCでは非選択式である必要がある。 選択式のポイントを使用して複線区間の両方にフィーダーを設ければどちらにも対応可能。

  • 終着モジュール
    ここに到達したら列車は折り返す。
    ハード的には列車交換ユニットと同じか(ポイントは使わない:スタフ閉塞だと終着駅に2列車が存在することはないため。 ただしソフト次第で対応は可能)、直線モジュールに停止位置センサーを加えたもの。 終着場所かどうかはソフトで設定。
    現実的には、列車交換(駅)モジュールがソフトの設定で終着モジュールにも使えるのが便利でしょう。

モジュール間は可変長レール(KATOで言うスライドレール)で接続するので、こちらに搭載すれば済む機能は極力こちらに入れる。 具体的には、モジュール間の絶縁、フィーダー、列車交換ユニット両側の進入・脱出センサー等。 制御機器側を拡張すれば信号を設置したりもできる(進行・停止は制御側でやるのだから信号表示も簡単)。

減速開始位置の検出や列車がその区間から脱出したことを検知するためのセンサーも必要だが、これはモジュール間を接続する可変長線路に組み込むのが合理的な気がする。

…って、文章で書いてもわかりませんよね^^; そのうち概略図みたいなものを書こう。

制御側の規格

PCからデジタルI/Oで鉄道模型の各要素を制御する、もしくはセンサーの出力をデジタルI/OでPCから読み取るようなものになるだろう。

各機能を機器ユニットに分けると、思い付く範囲では以下のものが。

  • パワーユニット…パワーパックのPC制御版。

  • パワー選択ユニット…制御の都合上、複数のレイアウトモジュールに供給される走行電流を1系統にまとめたり、1部分を切り離す必要がありそうなので。

  • ポイント切り替えユニット…呼んで時の通り。

  • センサーユニット…上記の各種センサー(恐らく全部近接センサー)の出力をPCから読み取るためのユニット。

このような各機能別にするか、モジュールのタイプに合わせて必要な上記機能を必要な数だけ組み込んだユニットにするか。 恐らく後者だろうなぁ。 そうすると、

  • 直線モジュール用制御ユニット

  • 列車交換モジュール用制御ユニット

  • 終着モジュール用制御ユニット(恐らく列車交換~と同じハード)

といった感じかなぁ。

しかし、ちょっとは具体化して説明しないと誰もわかってくれないか(笑)

copyright © 2024 鉄道模型 自動運転への道 all rights reserved.
Powered by FC2ブログ.