« NHK江(40)休載通知 | トップページ | 小説木幡記:心とロボット »

2011年10月16日 (日)

鉄道模型のPC制御:(08) JMRI→DP1cs(南福岡急行)→DP1(永末システム)→DF50(KATO)

承前(DP1 ):鉄道模型のPC制御:(02)赤い箱・DP1と南福岡急行の話
承前(先回):鉄道模型のPC制御:(07) 廉価なDCC組み込み車両(HO)とアドレス設定

今回の概要
 国産のDCC制御機器DP1(赤い箱:永末システム)を、南福岡急行鉄道blog「DP1cs:DP1 Command Station」のネットワーク機能を用いて、JMRIで操作する実験(の準備)。

 ☆このことによって、JMRIが持つJythonによる鉄道模型・自動制御の可能性が広くなる。
 ☆Windows、MAC、LinuxなどによるJMRIでの共時・遠隔列車制御が可能となる。
 ☆ネットワーク機能はWiFi(無線)利用が可能なので、DP1csの媒介で様々な模型運用が考えられる。

08-00 小型車両が似合う赤い箱(DP1:永末システム)

Mudsc_0058
↑JMRI制御のDP1cs経由DP1で走るNゲージ・ディーゼル機関車DF50(KATO製+DN163K0a搭載)

 鉄道模型をコンピュータ:PCで自由に制御したい時、それは一般的にDCCと言われる仕組みで可能と知った。ある列車(たとえば図書館列車)がある駅(たとえば、中央図書館駅)から別の駅(隣町の博物図書館駅)へ行って、そこで図書館利用者を降ろして、また別の客を乗せて、別の町の植物園図書館駅に運びたい~。そういう「物語」を自動制御したい、……。と思ったわけだ。

 そんな物語の断章を目で見るためにときどき小さなジオラマを造る。超小型のジオラマ(レイアウト)のことをパイク(pike)と呼ぶらしいが、過去数点造ったので手慣れてきて、最近は30センチX60センチの基板に5センチほどの厚さのスタイロフォーム(堅い発泡スチロールのような)を載せて、そこにコルクシートを貼っただけのものを造った。回りは幅広いカラービニールテープで補強し、ジオラマ上には建物模型を数点並べただけのものだ。レールは、この場合はTOMIXの超小型レール(半径14センチとか、10センチ程度)を組み合わせている。

Mudsc_0060

 動力車はNゲージなので、DCCに不慣れな場合には、HOタイプよりもやっかいな改造だが、KATO製の車両には比較的気楽なものもあって、車両専用デコーダを載せるだけで走るものがある。写真のディーゼル機関車はDF50と言って、そこにDN163K0aというほぼこの車両専用のデコーダを載せた。KATO製NゲージではDD51の方がもっと気楽にDCC化できるのだが、それはそれでこのパイクを曲がりきれない。そしてまた写真の詐術というか、内周の半径10センチTOMIXレールでは、DF50も走れず脱線する。だから、ここを走るのはMODEMO社製の江ノ電(1000形)を普通のDC(直流)で走らせている。この場合、TOMIXのダブルクロスポイントは選択配電なので、外周の交流と、内周の直流とはぶつからない。

 と、このような細部は今回はよくて、要するにパイクと呼ばれるような小型のジオラマDCCには、最初から使っているDP1という赤い小さな箱が一番似合っている。下部写真の机中にあるDP1の実寸は、横65mm、縦55mm、厚さ20mmの小さく真っ赤な箱である。USBに接続するだけで動力車を動かせるが、写真の様に付属の別途電源を挿入した方が力強く走る。

08-01 南福岡急行鉄道の開発システム(DP1cs:Dp1 Command Station)媒介による駆動

Mudsc_0067
↑机上ひきだしの中のDP1(SNJPN:赤い箱)

 永末システム製のDP1は、付属ソフトウェアが付いているのでそれだけでPCによる列車制御が可能である。また南福岡急行鉄道(個人)が開発したDp1CommandStationは、DP1をより容易に使うことが可能である。これらのことは本シリーズの(2)、(3)、(4)に記した。

 しかし一方、DCCシステムの汎用性は処理言語JavaやJythonを使うJMRI(無料)によって確かなものがある。少なくともインターネットを見る限り、Jythonによる列車の自動制御システムの事例が豊富である。このことから、DP1という優れた国産のDCCデコーダ・プログラマー機器とJMRIのような国際的な開発システムとがまとまって使えれば、安心であると考えてきた。どのような場合も複数の可能性を残した方が、将来に向けての良質な進化や安定性が高まる。

 しかしこの数年間、JMRIからDP1を制御して、模型車両を運用する方法を取得できなかった。ところが最近、かねがね使っていたDP1cs:Dp1 Command Stationが、実は優れたネットワーク機能を持つことに気がつき、実験し、良好だったのでこの方式を使うことにした。

 利用者PC→JMRI→
 DP1cs(南福岡急行鉄道)→DP1(永末システム)→レイアウト(列車等制御)

 この方法の全体システムとしては、開発システムJMRIとインターフェース機器DP1との間にDP1csをはさみ、それを媒介にしたネットワーク上でDCCレイアウトを運用することになる。つまり利用者からみると、JMRIから「DP1:赤い箱」を通して機関車を操作しているような形になる。

08-02 設定(DP1cs: DP1 Command Station)

Op DP1csの設定は ツール/オプション/ネットワーク、この窓でネットワーク機能を有効にし、ポート番号を「1234」とするだけでよい。これで完了といえる。
 ただし、IPアドレスはメモしておくと、他のマシンからこのDP1csサーバーに接続するとき役に立つ。

 コンピュータ名や、IPアドレスはDP1csが自動的に設定してくれる。またこのIPアドレスがネットワークを通した他のJMRIが走るマシン(Windows、Linux、Mac等)のJMRI上で、サーバーマシンのアドレスとして設定する値になってくる。このことで、WiFiなどの無線上運用が簡便にできる。

 そして最大接続数とは、私のシステムでは「8」以上は無理だったが、このネット上でのDP1csサーバーの許容接続数と想像している。

 この画面に関連して、DP1csの主画面での注記には以下のようなことがある。
 DP1csでは、列車アドレスを割り当てない方が、あとでJMRI上でスロットルによって列車割り当てを行うときに、問題が生じない。おそらく、JMRIとDP1csとで、同じ車両番号を当てはめるとぶつかりが生じるのだろう。よって車両のスロットルによる割り付けは各マシンのJMRI上で行うのがよいと考える。
 ただし、DP1cs上で、一つの列車に対して、右ボタンで「共有」を与えると、数台のJMERIマシンからスムーズに一台の機関車を制御できるようになる。これは、まだやり始めたところだが、面白そうだ。

 DP1csはサーバーシステムだから、これを最初に起動し必要な設定を確認するというシーケンス(順番)を守った方がよい。各JMRIは、その後で起動する。

08-03 設定(JMRI)

Settei JMRI自体は、PanelProないしDecoderPro上段の「編集/設定」窓を開き、そこでいくつかの設定を行う。なおJMRIの仕様によっては、以下の設定以外のことを求めることがあるが、基本的にdigitraxの手法を援用していると考えておけば、スムーズに行える。
 
☆接続方式は、「LocoNetOverTcp LbServer」とする。これはDigitrax社が普及させたLocoNet(ロコネット)と呼ばれるDCC共通バス(通信線)に、外部からネット経由接続するための方式である。
☆<Server Host Name>欄にDP1csが動いているIPアドレスを入れる。最初の内は、DP1csとJMRIとは同一マシン上のことが多いので、「localhost」で済ますことが出来るが、両者がLAN上での別のマシンならば、DP1csサーバーが起動しているIPアドレスを設定する。
☆<TCP Port Number>DP1csと同セットで1234とする。
☆<Command Station Type>これは「LocoBuffer(PS)」を選択する。

 他のチェック項目はこのJMRI仕様では必要とされない。
 以上を下部の【保存】ボタン押下で設定し、JMRI(PanelProないしDecorderPro)を再起動すれば、JMIRIがDP1csを経由して、赤い箱(DP1)を駆動し、線路上の列車を走らせることが出来るようになる。

08-06 プログラミング事始め(Jython)
Jython01

 上述の08-05までがうまく設定できれば、あとはJMRIの画面上でいくつかのスロットルを呼び出し、そこに線路上の機関車の番号を設定すれば、数両の機関車が同時に自由に動き回ることができる。JMRIで指令を出す分には、レールにつながっているのがKATO社(デジトラック社)提供のDCC機器であるとか、永末システムのDP1であるとかを気にしなくてもよい。

 しかしここからが大問題である。ここで終わってしまっては、わざわざJMRIを持ち出して、「プログラミング(Jython)事始め」と記した意味がなくなる。実はこれまでの記事はDCCをJythonなどで自由に操作し、列車を知能あるかのごとく振る舞わせるのが目的であった。そしてその道は近くて遠い。とりあえず、今回は大きな画面にいくつかのプロセスをまとめ、その解説をもって次のプログラミング世界への序章としておく。

☆左上のPanelPro画面では、中央に「localhost経由でLocoNetOverTcp LbServerに接続しました」と出ている。これがTCP/IPの仕組みを利用した、今回のJMRI操作の要点である。わかりやすく言うと、このJMRIはDP1csに接続しました、とメッセージを出しているわけだ。だから、エレガントで小さな国産DP1を、いくつものJMRIからネットを通して駆動できるようになった。つまりレール上のDCC車両を自由にうごかせるようになった。

☆左側中央の二つの小窓、「スクリプト入力」と「スクリプト出力」がJMRIの利点で、この入力欄にJython様式で命令を書けば、結果が出力欄に表示され、同時にレール上の列車がその命令内容に反応する。

☆左側下のDP1CommandStation画面は、参考に載せたが、このDP1csだけで列車を駆動させるには、左側の山見出し「(1)51」表示のように、目的車両番号をこのDP1cs内で割り当てる必要がある。直接駆動をせずに、他のJMRIから動かすには、この割り当てはしない方がよい。たとえば、右側の列車名50でアドレス50の車両は割り当てていないので、左側山見出しに出ていない。これがJMRIで割り当てられると、アドレス50→50、というように斜め文字に変化する。

☆画面右側の濃青小窓はJMRIが提供しているサンプルJythonプログラムを編集しているところである。実はこのサンプルは編集しなくてもJMRIの、パネル/スクリプト実行、を押下しそこで、LocoTest.py を選べばなんの問題もなく、画面に右上の小窓「Data entry」が出現し、そこで線路に置いた任意の機関車のアドレスを入力すれば、自動的に行きつ戻りつし出す、というわかりやすいJythonサンプルである。この場合は50番を入力している。

★Jythonプログラミングを、JMRIの中で統合的に効率的に開発する方法は、実はまだよく分からない。おそらく将来にJMRIの仕様が上がっていけば、「スクリプト入力窓」がもっと使いやすくなるだろう。現状は、事例のように他のテキストエディタで編集し、入力窓にコピーして動かすか、あるいは直接実行させるかどちらかしか、まだ経験していない。

08-05 まとめ
 「赤い箱」というしゃれた小箱でDCC仕様の鉄道模型を動かすことがこの一年の願望だったが、これまで見つけられなかったDP1csのネット機能を使って、それが出来るようになった。勿論DP1csのインターネット機能は、私が知らなかっただけで数年前から稼動していた。

 このインターネット経由でDP1を駆動出来ることで、最近の無線LANの向上、いわゆるWiFi形式でおよそJMRIの動くPCを数台までは、同時に扱えるようになった。Windows、Mac、Linuxと、多様なOSを扱えるので、様々な面での自由度が一挙にあがった。

 Jythonについては、特別な世界では普及しているだろうが、一般人としては未知の言語に属する。しかし鉄道模型制御の一つの潮流「JMRI」がインタープリターとしてJythonを使っているのだから、それに親しむのが早道だと思っている。教科書もでているので、格別複雑なことをしない限りは、歴史的な手続き型言語の一種なので、宣言型言語のように、考えが一変するわけでもない。というか、旧来の見方でみても、必要なことは理解できるという点で、取っつきやすいと言えるだろう。

 というわけで、次回は、列車線路上検知・センサー問題としてデジトラック社のBDL168やRX4の入門部分に入る必要があるが、なかなかにハンダ付けに手間取る、いわゆる原始的な世界である。

|

« NHK江(40)休載通知 | トップページ | 小説木幡記:心とロボット »

DCC」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: 鉄道模型のPC制御:(08) JMRI→DP1cs(南福岡急行)→DP1(永末システム)→DF50(KATO):

» 本格的鉄道ジオラマの製作法を動画で解説します! [動画でわかる鉄道模型ジオラマ製作]
手鉄道模型ショップでジオラマ講師を務めていた鉄道模型ジオラマの名人が、自宅でできる本物そっくりのジオラマづくりのノウハウを公開します。 [続きを読む]

受信: 2011年11月 7日 (月) 22時11分

» 鉄道模型のPC制御:(09) 従来のアナログ車両を無改造で、DCC運転する [MuBlog]
承前(先回):鉄道模型のPC制御:(08) JMRI→DP1cs(南福岡急行)→DP1(永末システム)→DF50(KATO) 09-00 概要  DCCでは、デコーダを動力車に載せて、レールからの集電側と、モーター電極との間に置くことで、レールから来る信号を分析し、それに応じた直流をモータ(ないしライト、その他)に供給する。デコーダは恐竜の小脳のようなもので、狭い動力車に乗るくらいに小さく造ってあ... [続きを読む]

受信: 2011年11月27日 (日) 16時03分

« NHK江(40)休載通知 | トップページ | 小説木幡記:心とロボット »