HOME >> 鉄道模型自動運転システム > 卓上レイアウトで楽しもう 自動運転 その1
準備した制御機器をレイアウトに組み込んでテストしてみましょう。 最初は、単純な一方向周回路パターンで走らせてみます。
.
■ レイアウトの構成
単純な一方向周回路パターンをこたつ天板の上に構成したレイアウトを右に示す。 線路距離をとるために、ドッグボーンの変形パターンとなっています。
閉塞区間は、制御対象が1区間と、常時通電されている非制御区間が1区間だけです。 このために給電ポイントは図のように2ヶ所設けました。 通過センサは駅の部分に1ヶ所です。
■ 電気配線の実施
この時の電気回路図を下に示します。 パワーユニットは N-1 (品番:5504)を使用し、線路への給電と制御機器用の電源としてTCS 12V を使用します。 このTCS 12V は aitendo の組み立てキット(品番: K-640T5V 、¥395)の5V 定電圧出力をつかって5Vの落として供給します。
制御用のマイコンは、PIC12F683 を使用し、通過センサはTCSセンサーレール(品番:5559)を使用し、信号機はTCSの4灯式(品番:?)を使いました。 給電回路のON/OFFは、2チャネル仕様のリレーモジュールで、HL-52S V1.0 (メーカー?)です。
電気回路は二つのブレッドボード上に構成しています。 一つはPICマイコン回りの回路を構成し、もう一つは給電回路を構成しました。
卓上レイアウトにセットした状態を下に示します。
機器類や配線はセロテープで止めて固定しています。 最初に、制御系への通電を止めて、給電系だけの通電テストを行い、列車が問題無く走行できるかをチェックしました。 回路の通電チェックと二つのフィーダー部の極性が正しいかどうかを調べました。
■ プログラムの作成
次に、プログラムを作成しました。 最初に制御ロジックを考えながら、フr−チャート作成しました。
1 ;********************************************************** 2 ; Takujo-1-D 3 ; PIC12F683 4 ; 2019/11/9 5 ;********************************************************** 6 7 #include P12F683.INC ; PIC12F683用のヘッダファイルの読み込み 8 9 ;;;;; コンフィグレジスタの設定 10 __config _BOD_ON & _WDT_OFF & _MCLRE_OFF & _INTOSCIO 11 12 ORG 0 ;プログラム開始位置の指定 13 30 ;;;;; プログラムの主要部分 31 LOOP 32 bcf GPIO,1 ;信号赤を点灯 33 bsf GPIO,0 ;信号橙を消灯 34 bsf GPIO,2 ;信号緑を消灯 35 bsf GPIO,5 ;リレーをOFFして通電する 36 37 btfsc GPIO,3 ;S1をチェック、ONを待つ 38 goto $-1 ;列車はまだだ 39 call delay3ms ;タイムラグ設定 40 btfsc GPIO,3 ;S1を再チェック、ONを待つ 41 goto $-4 ;列車はまだだ 42 movlw D'70' 43 movwf CT_DELAY600MS 44 call delay600msL ;列車が来た、時間待ち 45 bcf GPIO,5 ;リレーをONさせて通電を切る 46 47 call delay2s ;3秒停車 48 bsf GPIO,1 ;信号赤を消す 49 bsf GPIO,0 ;信号橙を消灯 50 bcf GPIO,2 ;信号緑を点灯 51 bsf GPIO,5 ;リレーをOFFさせて通電する 52 53 call delay600ms ;列車の通過を待つ 54 btfss GPIO,3 ;S1をチェック、OFFを待つ 55 goto $-1 56 call delay3ms ;タイムラグ設定 57 btfss GPIO,3 ;S1を再チェック、ONを待つ 58 goto $-4 ;列車はまだだ 59 60 bsf GPIO,2 ;信号緑を消す 61 bsf GPIO,1 ;信号赤を消す 62 bcf GPIO,0 ;信号橙を点灯 63 call delay600ms ;0.6秒間点灯 64 call delay600ms ;0.6秒間点灯 65 66 goto LOOP 67 120 ;;;;; プログラムの主要な部分の終わり 121 end ; プログラム終了
このフローチャートをもとに、アッセンブラを記述しまいた。 使用したソフトは、ノートパソコンにインストールした MPLAB X IDE V5.30 です。 今回は新しいソフトを使用しましたので使い勝手が異なっておありウロウロしてしまいました。
古いソフトとの違いは、右のリストに示す 12行目の ORG 0 の記述です。 古いソフトでは必要なかったので、従来の様に記述していたら、Error[152] が多発してビルド出来ませんでした。 ネット情報に従って、 12行目を追記すると、エラー指示はピタリ無くなりました。
作成したプログラムを右にしめす。 途中の部分は省略しています。 また、最初はうまく作動しませんでしたの、命令やパラメータを修正して最終のD仕様を示しています。
PICマイコンへの書込みは、PICkit 3 と PICkit対応ICSP書込みアダプターキット(秋月)を使用しました。 電圧設定は、4.75 volt です。
プログラムを書き込んだPICマイコンを使って走行テストを実施しました。
途中でプログラムを修正しながらなんとか走行できるようになった状態を下の動画で紹介します。 この時のプログラムは、60行〜64行目までの橙点灯部分をカットしている状態です。
緊急停車する理由は、センサが車輪の通過を検知したからです。 私が使っていた光センサによるダブル検知方式では、車体の通過を検知するので、列車編成が完全に通過することを知る事ができますが、TONIXの車輪検知センサでは、車輪毎にセンシングします。 このため、遅延時間を設定しているのですが、車速が遅くなると新しい列車が来たと認識して停車させるのです。 予想はしていましたが、やはり省略した60行〜64行目までの橙点灯部分を復活させることにしました。 その仕様での走行テストを次の動画で紹介します。
緊急停車は改善されましたが、最後には追突してしまっています。 閉塞区間の長さに合わせて、遅れ時間の修正などで調整できるのですが、走らせる車両によっていちいち調整する必要があるので面倒です。 自分の光センサ方式のメリットを改めて認識した次第ですが、閉塞区間を増やして、反対側のホームにも停車するようにシステムをグレードアップアップしてみましょう。
また、マイコンをArduino に変えてみるのも実験してみたいですね。
2019/11/10 作成