HOME >> 鉄道模型自動運転システム >  卓上レイアウトで楽しもう その26−1 周回パターン

卓上レイアウトで楽しもう 自動運転 その26−1 周回パターン

 今年も暮れが迫って来た。 クリスマスシーズンが近づいてきたので部屋の飾りを兼ねて卓上レイアウトを再開した。 今回は、基本運転としての周回パターンについて自動運転を検討した。

 

■ センサと給電ポイントの設定

 まず、マイコンのT/O 関係を設定する。 センサ名称と設置場所、給電ポイントの名称と場所、そして、ポイント名称を下右の様に決める。 これらは、想定している運行パターンに必要と考えて設定したものである。

  .

 そして、制御マイコンである Arduino Nano Every のポートピン配線図を作成して、T/O 名とポート番号を設定した。 制御に必要な走行速度調整用のボリュームは必須であるが、先回まで使用していた減速度調整ボリュームは、ポートが不足したため今回は諦めた。 この他に運行開始スイッチのポートは設定採用している。

 すべてのポートを使用したが、工夫の余地はありそうだ。

 

■ 電気配線の検討と実施

 次に、電気回路を検討した。 マイコン周りはユニットを活用してArduino 周辺の電気回路はなるべく少なくなるようにしている。 これは、ブレッドボードを使って配線を構成するようにしているからである。

 必要な電源は、DC12volt 一本に絞るように工夫している。 12VのACアダプタから取り入れた電力は、Arduino 本体の電源の他、給電電源、ポイント駆動電源として使用し、さらに5V定電圧ユニットを使って DC5volt 電源を作り、周辺機器の作動用電源としている。 従って、Arduino からのDC5volt 出力は使用していない。

 また、先回と同様に、走行中の一時停止用スイッチを設けて、脱線などのトラブル時は電車の走行を停止させるための回路も設けている。 走行を停止するだけで、運行状態は待機状態を保っているので、トラブル回復後はそのまま運行を継続させることが出来ます。

 これらの回路を組みこんだ制御盤を下に示す。

 制御盤の内部は、ご覧のように配線で蜘蛛の巣状態です。 蓋の裏側は、以前は使用したが今回は未使用なスイッチ類はそのままの状態です。 上右の表側に示す中央部のスイッチ類は、今回は使用していません。

 新しく整備したポイント駆動ユニットは丁度空いていたスペースに設置しました。 Arduino 回りは配線だらけで、本体が隠れてしまいそうです。 このブレッドボードの下側の電源ラインは 12volt ラインで、上側の電源ラインが 5volt ラインです。 このラインを使用して、周辺のユニットに電源を供給しています。  

 T/O ポートへの配線は狭い場所にビッシリと配線しなければならないので、老眼をショボショボさせながら苦労して作業しました。

 

■ 運行パターンの検討

 運行制御のためのプログラムを検討しました。 まず、運行の基本となる周回パターンを組み立てることにする。 初期設定として、

として、運行状態に入る。 その運行のパターンは、

  1. 電車をホームに停車させておく。
  2. 運転開始ボタンがONになるまで待つ。
  3. 出発信号を緑にして、F1-1の給電を開始してスタートし、所定の速度まで加速する。 運行は左回りである。
  4. センサS3がONならば、F2-1も給電する。 運行は左回りである。
  5. センサS4がONならば、ポイントP1を反位にして周回路運行を可能とさせる。
  6. センサS5がONならば、次へ。
  7. センサS4がONならば、次へ。
  8. センサS5がONならば、ポイントP2とP3を反位にしてリバース運行をさせる。
  9. センサS6がONならば、運行は右回りとなるように、F2-1をゼロにしてF2-2に給電する。
  10. センサS4がONならば電車をホームに入線させるため、まず、F1-1をゼロにし、そしてポイントP2とP3を正位に戻し、F2-2に給電する。 さらに、ポイントP1を正位に戻し、信号を赤にする。
  11. センサS2がONならば、電車を減速させてホームにゆっくりと入線させる。
  12. センサS1がONならば、全ての給電をゼロにする。
  13. 3秒間停車させる。 そして、(2)に戻る。

 このパターンを周回パターンとして繰り返し実行させればよいのである。 ただし、電車の進行方向は、運行毎に逆になっていく事に注意しよう。 また、(6)や(7)のステップは、確実に周回するようにするためのステップです。 ここを省略すると、センサのダブルカウントとなって、これらのステップを飛ばしてしまうからです。

 

■ スケッチの検討

 上記の運行パターンに従ってスケッチを記述して行けば良いのであるが、このパターンは全くのシーケンス制御なので、センサの状態を見ながら順次記述して行けば良いのである。 これは、全て whele( ) 命令で実行でき、次のセンサ情報がONになるまで、その運行状態を保持しておれば良いのである。 この時に、速度調整ボリュームが常に効くように、監視させるように記述している。 その内容を、

     周回パターンのみのスケッチ ⇒ Every_11-2.ino

に示す。

 最初に用語と変数の定義を実施し、ポートの入出力の設定、PWM周波数の変更(15.7KHzにする)、給電を全てゼロにして、各ポイントの作動を一度実施する。そして、すべて正位状態にする。 そのご、上記の運行パターンに従って、シーケンスを順次記述していく。

 速度の調整は、操作盤のボリュームの電圧をA/D変換すると 1024 となるが、PWM 制御の100%は255なので、変換値を1/4倍としている。 また、加速の場合は、for 命令を使用して 50から255まで順次増やしていくルーチンを組んでいる。 スタートはゼロではなく50から始めているのは、理解できますよね。 そして、減速時はこの反対にしています。

 この for ルーチンの中の delay 命令で加速と減速具合を調整しています。 特に減速の方の調整は、動力車モデルの特性の違いによって変化するので、微調整が必要となるでしょう。 さらに、PWM周波数をアップさせるために、タイマーを変更していますので、通常のミリ秒の16倍の数値を設定する必要があります。

 単純なシーケンス制御ですので、同じような命令を重複して幾度も出て来ています。 サブルーチンなどを使用してスマートな記述方法があるかも知れませんが、下手の細工でウロウロするよりも益しと考えています。 進歩が無いですね!

 

● クロックを選ぶメニューが出ない!

 今回、Arduino IDE のバージョンがアップされていたので、最新版の Arduino 1.8.13 にアップロードしました。 インストール時に古いバージョンをためらいなく削除してインストールしたのでしたが、これが失敗でした。 先回と同様に、ポートマネジャー を開き、Arduino magaAVR Boards も 1.8.6 にアップロードしました。

 そして、上記のスケッチを記述してコンパイル実施後にボードに書き込もうとした時、クロックを選ぶメニューが出ていないことに気が付きました。 ここで、ATmaga4809 の本来のクロックスピードである 20MHz を選択することによって、PWM周波数を約20KHz にアップすることが出来るのですが、その設定が出来ないのです。

 参考にしたサイトの裏技がバージョンアップに対応できていないのではないかと考えて、あちこち探してみましたが見つかりませんでした。 自分の力で対応出来る技術力はありませので、20KHz化は諦めて、15.7KHzで我慢することにしました。

 

■ 周回パターンでの運行

 色々なトラブルが有りましたが、何とか目的の状態まで仕上がりました。 その時の状態を紹介します。 電車はBトレ4両でテスト走行を実施しました。

 下右には出発信号の状態を示します。

 テスト運転様子を動画で紹介しましょう。

 順調に走行していますが、ホームに停車する際のエンドレールの信号が機能していない様子でありました。 なんと、信号線を外しても影響なく運行を続けていましたので原因調査が必要です。 その前に、ヤードに停車している電車との交換モードを優先させて検討する予定です。

 

ページトップへ戻る .


 2020/11/12 作成