So-net無料ブログ作成
江ノ島登山鉄道 ブログトップ

信号機デコーダ大量購入&組み立て [江ノ島登山鉄道]

 前回、単線2列車をやっていて、信号機が3個で悲しい状態だったので、信号機を買いました。最終的なレイアウトで16個ぐらい必要かなあと思ったので、Nucky様の信号機デコーダを14個(7セット)大人買いしました。と言っても1セット(2個入り)1000円だし、7000円で14個だから、安いものだと思ったのですが、どうもすこし頭の足りないしょうでした・・・。秋月とマルツで部品をそろえたら、6000円ぐらいかかって、デコーダ基板と合わせて13000円ぐらいです。まあ、それでもDCC対応信号機が1個1000円以下という破格だしいいと思いますが。
 そして、基板が到着しました。
re_DSC00780.jpg
 3灯式5セットと4灯式2セットです。江ノ電の運転席動画を見ていたら、ほとんど2灯式でも良さそうでしたが、大は小を兼ねるということで、そこは全部3灯式でいくという、人によっては許せなさそうなこだわりの無さです。大切なのは雰囲気です。
 そして、製作開始です。まず本体部分を無心にはんだ付けしました。
re_DSC00781.jpg
 ここまでで、3時間ぐらい。この日はこれで力尽きました。一個電解コンデンサとセラミックコンデンサの位置を間違えていますが、回路図的には間違っていないので気にしません。
 そして、信号機部分も組み立てて、PICに中華製PICKit3で書き込みです。
re_DSC00782.jpg
 今回は、ソケット付きのを持っていたため相当楽でした。
 そして、完成です。
re_DSC00783.jpg
 なかなか、信号機だけ並んで気持ち悪いですが、近くの現実の駅を考えると、信号はすごい量があるような気がしますし。
 なお、この後、一個ずつCV値を書き込みましたが、結構大変でした。
 さて、週末はこの信号機も使って自動運転を大きくしていこうと思います。

 

半自動運転をしてみる。 [江ノ島登山鉄道]

 KiCADが進まないという話は置いておいて、江ノ島登山鉄道(妄想)の自動運転の続きです。
 両側ループ線は、結構、ポイントの信頼性によるところが大きそうなので、特に三角形の部分はもう少し考えないとと思います。
 でも、それも置いておいて、次は「裏江ノ島駅(仮称)」部分(列車交換)の自動運転を列車基準のスクリプトで作ってみました。
 まずレイアウトです。
無題.png
 写真にすると以下です。
re_DSC00778.jpg
 今回は、自動運転後に半自動運転もやろうと思ったので、Nucky様の信号を配置しています。信号がないといつ発車していいかわかりませんので。でも、信号機は三つしか持っていないので、外側からの進入は二つとも付けときましたが、内側からの出発は真ん中に寂しく一個だけです。あと、3灯式は1個しかないので、進入は4灯式で代用しています。本当は両側の折り返し部分(各2個で計4個)にも信号を付けたいので、そのうち、信号を買おうと思います。つまり、現在は信号機が5個足りないということになります。というか、最終的なジオラマを考えると、信号機が全然足りません・・・。
 動画です。


 信号機アングルの動画です。


 なお信号機はの動きはあまりリアリティーを重視していません。まるで、交通信号機のような変わり方をします。
 また、信号機を横からも視認するために秋月の3mmLED用のLED光拡散キャップを使用しています。とても見やすくなりますが、ちょっと残念な見た目になります。
 そして、自動運転のスクリプトですが、下記のように3部分が平行して動きます。
(1)東海道線
(2)横須賀線
(3)真ん中の駅のポイント切り替えと信号切り替え
 各スクリプトのトリガーはFlag0=0としており、つまり、電源投入時に始まります。

まず、(1)東海道線ですが、下記のスクリプトになっています。
列車の進行方向は左がFwdです。
状態がstate1~state12まであります。1から番号順にステートが変わっていくだけです。
FlagはFlag1、Flag2の2個あり、中央の駅の出入りのために使用します。
Flag1 = 0,処理完了(駅側から通知する)
Flag1 = 1,電車が左から駅に進入できるよう要請
Flag1 = 2,電車が駅から右へ出発できるよう要請
Flag2 = 1,電車が右から駅に進入できるよう要請
Flag2 = 2,電車が駅から左へ出発できるよう要請
スクリプトですが、東海道線は画面左側のS88の1番を踏むと開始です。
長いように見えますが、結構読みやすいと思います。
state1:センサ1を踏むまで待って、踏んだら、速度を0にして、方向をRevに変えます。
Flag1を1に変えて、駅に進入可能を要請します。
state2:駅に進入可能になったら(進入可能になったらFlag1が0に戻る)、出発します。
state3:駅に進入して、センサ3をを踏むまで待って、踏んだら、止まるために減速します。
state4:駅の先端のセンサのセンサ4をを踏むまで待って、踏んだら、止まります。駅に出発要請をだすため、Flag1を2にします。
state5:Flag1=0になるまで待って、なったら(出発要請が通ったら)、出発します。
state6:右側の終端減速センサに近づきます。センサ7を踏むまで待って、踏んだら減速します。
state7:右側の終端に近づきます。センサ8を踏むまで待って、踏んだら停止して、方向をFwdにして、Flag2を1に変えて、駅に進入可能を要請します。
state8:駅に進入可能になったら(進入可能になったらFlag2が0に戻る)、出発します。
state9:駅に進入して、センサ6をを踏むまで待って、踏んだら、止まるために減速します。
state10:駅の先端のセンサのセンサ5をを踏むまで待って、踏んだら、止まります。駅に出発要請をだすため、Flag2を2にします。
state11:Flag2=0になるまで待って、なったら(出発要請が通ったら)、出発します。
state12:右側の終端減速センサに近づきます。センサ7を踏むまで待って、踏んだら減速します。
state12の実行が終わったらstate1に戻ります。
---
DESKTOPSTATION,SCRIPT,2013
LABEL,init,,0
SETFLAG,0,0,0
LABEL,state1,,0
WAIT,1,,0
JUMPS88,state1,0,0
SPEED,0,0,1
DIRECTION,0,2,0
SETFLAG,1,1,0
LABEL,state2,,0
WAIT,1,,0
JUMP,state2,1,1
SPEED,0,512,20
LABEL,state3,,0
WAIT,1,,0
JUMPS88,state3,2,0
SPEED,0,200,10
LABEL,state4,,0
WAIT,1,,0
JUMPS88,state4,3,0
SPEED,0,0,1
SETFLAG,1,2,0
LABEL,state5,,0
WAIT,1,,0
JUMP,state5,1,2
SPEED,0,512,20
LABEL,state6,,0
WAIT,1,,0
JUMPS88,state6,6,0
SPEED,0,200,10
LABEL,state7,,0
WAIT,1,,0
JUMPS88,state7,7,0
SPEED,,,0
DIRECTION,0,1,0
SETFLAG,2,1,0
LABEL,state8,,0
WAIT,1,,0
JUMP,state8,2,1
SPEED,0,512,20
LABEL,state9,,0
WAIT,1,,0
JUMPS88,state9,5,0
SPEED,0,200,10
LABEL,state10,,0
WAIT,1,,0
JUMPS88,state10,4,0
SPEED,0,0,1
SETFLAG,2,2,0
LABEL,state11,,0
WAIT,1,,0
JUMP,state11,2,2
SPEED,0,512,20
LABEL,state12,,0
WAIT,1,,0
JUMPS88,state12,1,0
SPEED,0,200,10
GOTO,2,,0
EXIT,,,0
---

次に、(2)横須賀線ですが、「(1)東海道線」とほぼ同じで、違う部分は、state7開始というだけです。(はじめに、GOTO,29,,0)を入れてstate7から開始しています。
---
DESKTOPSTATION,SCRIPT,2013
LABEL,init,,0
GOTO,29,,0
LABEL,state1,,0
WAIT,1,,0
JUMPS88,state1,0,0
SPEED,0,0,1
DIRECTION,0,2,0
SETFLAG,1,1,0
LABEL,state2,,0
WAIT,1,,0
JUMP,state2,1,1
SPEED,0,512,20
LABEL,state3,,0
WAIT,1,,0
JUMPS88,state3,2,0
SPEED,0,200,10
LABEL,state4,,0
WAIT,1,,0
JUMPS88,state4,3,0
SPEED,0,0,1
SETFLAG,1,2,0
LABEL,state5,,0
WAIT,1,,0
JUMP,state5,1,2
SPEED,0,512,20
LABEL,state6,,0
WAIT,1,,0
JUMPS88,state6,6,0
SPEED,0,200,10
LABEL,state7,,0
WAIT,1,,0
JUMPS88,state7,7,0
SPEED,,,0
DIRECTION,0,1,0
SETFLAG,2,1,0
LABEL,state8,,0
WAIT,1,,0
JUMP,state8,2,1
SPEED,0,512,20
LABEL,state9,,0
WAIT,1,,0
JUMPS88,state9,5,0
SPEED,0,200,10
LABEL,state10,,0
WAIT,1,,0
JUMPS88,state10,4,0
SPEED,0,0,1
SETFLAG,2,2,0
LABEL,state11,,0
WAIT,1,,0
JUMP,state11,2,2
SPEED,0,512,20
LABEL,state12,,0
WAIT,1,,0
JUMPS88,state12,1,0
SPEED,0,200,10
GOTO,2,,0
EXIT,,,0
---

最後に、「(3)真ん中の駅のポイント切り替えと信号切り替え」ですが、以下のようになっております。説明すると、
Flag1=1かつFlag2=1なら、(両方の電車から進入要請があったら)ポイントを進入側に変えて、Flag1=0、Flag2=0として、ポイント切り替えが完了したことを通知します。
あとは適当に進入用の信号機を赤→黄色→青と切り替えていきます。出発用信号は青→赤としておきます。
Flag1=2かつFlag2=2なら、(両方の電車から出発要請があったら)進入用信号を赤に切り替えて、数秒待ってから、ポイントを出発に切り替えて、出発信号も赤→青と切り替えます。
というのをループでずっとやり続けています。

進入用の信号は、アドレスで10番~、18番~で、出発用の信号機は、26番~です。

---
DESKTOPSTATION,SCRIPT,2013
LABEL,init,,0
SETFLAG,0,0,0
LABEL,if1,,0
WAIT,1,,0
JUMP,point1_pre,1,1
JUMP,point2_pre,1,2
GOTO,2,,0
LABEL,point1_pre,,0
JUMP,point1,2,1
GOTO,2,,0
LABEL,point2_pre,,0
JUMP,point2,2,2
GOTO,2,,0
LABEL,point1,,0
ACCESSORY,3,1,0
ACCESSORY,26,0,0
ACCESSORY,27,0,0
ACCESSORY,10,1,0
ACCESSORY,18,1,0
SETFLAG,1,0,0
SETFLAG,2,0,0
WAIT,20,,0
ACCESSORY,11,1,0
ACCESSORY,19,1,0
GOTO,2,,0
LABEL,point2,,0
ACCESSORY,3,0,0
ACCESSORY,10,0,0
ACCESSORY,11,0,0
ACCESSORY,18,0,0
ACCESSORY,19,0,0
WAIT,10,,0
ACCESSORY,26,1,0
ACCESSORY,27,1,0
WAIT,5,,0
SETFLAG,1,0,0
SETFLAG,2,0,0
GOTO,2,,0
EXIT,,,0
---

で、すごい長かったような気もしますが、ここまでが、半自動運転部分のための準備になります。
 半自動とは、複数列車のうち、1列車だけ自分で運転するロールプレイするような遊び方になりますが、鉄道模型市の打ち上げの時に、確かY.Sさんから「自動運転の時に一列車だけ自分がなりきって運転するのって面白いと思う」というお話があり、アイディアは面白そうだけれども、当時の私のS88イベント基準のスクリプトの作り方だと、恐ろしく難易度が高いため、面白そうですね・・・。とお答えしていたのですが、やっとできました。

 で、どうするかですが、今回は、(1)から(3)のイベントスクリプトは役割ごとに分けてありますので、このうち、東海道線部分を自分が運転するように変えます。具体的には東海道線のスクリプトのうち、電車を動かす命令部分だけすべて削除します。これによって、自分が運転させつつ、センサを踏んだりして、ポイント切り替えなどはスクリプトが勝手に進めてくれることになります。スクリプトは以下になります。
---
DESKTOPSTATION,SCRIPT,2013
LABEL,init,,0
SETFLAG,0,0,0
LABEL,state1,,0
WAIT,1,,0
JUMPS88,state1,0,0
SETFLAG,1,1,0
LABEL,state2,,0
WAIT,1,,0
JUMP,state2,1,1
LABEL,state3,,0
WAIT,1,,0
JUMPS88,state3,2,0
LABEL,state4,,0
WAIT,1,,0
JUMPS88,state4,3,0
SETFLAG,1,2,0
LABEL,state5,,0
WAIT,1,,0
JUMP,state5,1,2
LABEL,state6,,0
WAIT,1,,0
JUMPS88,state6,6,0
LABEL,state7,,0
WAIT,1,,0
JUMPS88,state7,7,0
SETFLAG,2,1,0
LABEL,state8,,0
WAIT,1,,0
JUMP,state8,2,1
LABEL,state9,,0
WAIT,1,,0
JUMPS88,state9,5,0
LABEL,state10,,0
WAIT,1,,0
JUMPS88,state10,4,0
SETFLAG,2,2,0
LABEL,state11,,0
WAIT,1,,0
JUMP,state11,2,2
LABEL,state12,,0
WAIT,1,,0
JUMPS88,state12,1,0
GOTO,2,,0
EXIT,,,0
---
以下が半自動運転の時の動画です。初めに横須賀線が真ん中の駅で入れ替えを待ってる状態から始まります。自動運転の横須賀線やポイントと、私が適当に動かしている(と言っても決められた動作ですが)東海道線が、協調?しています。

 まあ、もちろん、これ以外にも自分も参加できる自動運転のやり方もあるとは思います。

江ノ島登山鉄道(妄想鉄道)その2 [江ノ島登山鉄道]

 レイアウトは考え終わったので、まずは1列車での自動運転を試してみました。
 何か所かDCC信号が逆転するので、Tomixの完全選択式ポイントでギャップを切っておりますが、ときどきポイントの切り替えが悪いと通電しなくなります・・・。電圧上げるか。
 で、作ったレイアウトは以下です。
re_DSC00776.jpg
 ポイントは完全選択式です。
 DesktopStation上のレイアウトは以下です。
レイアウト.png
 で、動画は以下です。

 途中、かなり引っかかりました。スクリプトをちゃんと、作ったはずなのに、ある部分にくると、車両に伝わらず暴走します。で、通信Logを見たら、車両番号は0になっています。なんかラベルをある物に変えると起きるような気もしました。でも、結局、車両アドレスを”選択無し”のまま、車両アドレスがAutoのスクリプトを走らせると、DSMainR5に車両アドレス0を送ってしまうようです。いまいち、再現性無くてよくわかりませんが、多分、今日のはこれだったと思います。(できたら、車両アドレスやスロット指定なしの状態で、車両を動かすスクリプトが来たらエラーにしてほしいです。とこっそり書いておきます。)
 今回は、前回のコメント通り、車両起点でのスクリプトを書いております。
------------------
DESKTOPSTATION,SCRIPT,2013
LABEL,init,,0
SETFLAG,0,1,0
LABEL,state1,,0
WAIT,1,,0
JUMPS88,state1,1,0
ACCESSORY,2,1,0
LABEL,state2,,0
WAIT,1,,0
JUMPS88,state2,0,0
ACCESSORY,2,0,0
LABEL,state3,,0
WAIT,1,,0
JUMPS88,state3,1,0
ACCESSORY,1,1,0
WAIT,10,,0
ACCESSORY,3,0,0
LABEL,state4,,0
WAIT,1,,0
JUMPS88,state4,3,0
SPEED,0,150,5
LABEL,state4_stop,,0
WAIT,1,,0
JUMPS88,state4_stop,4,0
SPEED,0,0,1
DIRECTION,0,2,0
WAIT,10,,0
ACCESSORY,3,1,0
WAIT,10,,0
ACCESSORY,4,1,0
SPEED,0,512,5
LABEL,state5,,0
WAIT,1,,0
JUMPS88,state5,2,0
SPEED,0,150,5
LABEL,state5_stop,,0
WAIT,1,,0
JUMPS88,state5_stop,5,0
SPEED,0,0,1
DIRECTION,0,1,0
WAIT,10,,0
ACCESSORY,1,0,0
WAIT,10,,0
ACCESSORY,4,0,0
SPEED,0,512,5
GOTO,2,,0
------------------
一応、スクリプトの説明をします。レイアウト画面の番号で説明します。
レイアウト.png
初期位置はS88センサ(青い番号2)の右にいます。Forward方向は左です。で、左方向に走りはじめます。
状態はState1~State5_Stopの7状態あります。
State1:
S88センサ(青2)の右にいる状態で、センサを踏んだらポイント(赤2)を直進側にします。
State2:
S88センサ(青1)の下にいる状態で、センサを踏んだらポイント(赤2)を分岐側にします。
State3:
S88センサ(青2)の左にいる状態で、センサを踏んだらポイント(赤1)を直進側に、ポイント(赤3)を分岐側に、します。
State4:
S88センサ(青4)の左にいる状態で、センサを踏んだら車両を減速します。
Stete4_Stop:
S88センサ(青5)の左にいる状態で、センサを踏んだら、停止、方向転換、ポイント(赤3)を直進側に、ポイント(赤4)を直進側に変えて、出発します。
State5:
S88センサ(青3)の下にいる状態で、センサを踏んだら車両を減速します。
State5_Stop:
S88センサ(青6)の下にいる状態で、センサを踏んだ田、停止、方向転換、ポイント(赤1)を分岐側に、ポイント(赤4)を分岐側に買えて、出発します。
State1に戻ります。

スクリプトの起動はFlagでFlag0==0条件としています。(電源オン後ループします)

あと、各Stateを抜けて次のStateに行くS88ループに0.1秒のWaitを入れております。
これを入れないと、DesktopStationがフリーズします。

センサ基準に比べて、かなり見やすいと思います。でも、はまりました・・・。
気が付いたら夜です・・・。



江ノ島登山鉄道(妄想鉄道) [江ノ島登山鉄道]

 さて、突然ですが、「江ノ島登山鉄道」ジオラマを開始します。
 なんだそれ、と思うと思いますが、妄想鉄道です。設定は後付けでやって行こうと思います。
 まあ、一言で言って、江の島の観光鉄道です。
 まずは江ノ島のマップ(Google)です。
江の島.png
 まあ、本物に合わせると、かなり巨大なレイアウトになりそうなので、適当にAnyRailというソフトを使用して、線路を引いてみました。このソフト、「どうぞ AnyRail の無料トライアル版をお試しください。トライアル版はレイアウトの設計サイズにごくわずかな制限があるだけで、その他は正式版とまったく同じすべての機能をご利用になれます。」と書いてあり、これはいいと思って使い始めましたが、線路が50個しか置けません。ということで裏江の島駅の列車入れ替え部分が途中までしか書けませんでした。有料版は$59とのことで、6500円ぐらいでしょうか?
3Dとかもできるようですが、6500円あったら結構線路揃えられそうだし、まあ、今は無料版でいいやと思いました。メニューは日本語に対応しており、Tomixの線路もちゃんとありますので、ものは良いと思います。
 で、レイアウトは以下です。
江の島レイアウト.png
 江ノ島駅スタートでヨットハーバーを左に見ながら湘南港桟橋駅で折り返し、太平洋を望みながら海沿いを稚児が淵駅まで行き、そこから藤沢側を見ながら登り始めて、裏江の島駅(仮)を通り、江島神社駅を通り、頂上まで登ったところでループ線に入り、奥津宮駅(江島神社の奥のほうにある神社)、コッキング園駅(サミュエルコッキング園)を通って下るということにします。なんか大きさが微妙で1500mm*1000mmです。奥行きを900mmにしてしまいたいところです。
 多分自動運転的には4編成の自動運転になるかなあと思います。
 あとは、要所要所に信号機を置いて(ただしリアリティーは無視)、駅はMP3で音が鳴るようにして、頂上の展望台は電飾でキラキラするようにして、・・・。
 まあ、こういうのは、最初の計画を練っているときが一番楽しいでしょうから、言いたいほうだい書いておきます。
 完成は年末を目指しましょうか。

江ノ島登山鉄道 ブログトップ