So-net無料ブログ作成

鉄道模型市用のデモ検討 [自動運転]

 さて、来週の鉄道模型市用にキハ58のデモでも考えようかと思って、DSshieldを使ったデモを作りました。MECYさんがC59用のデモを作っており、それで、デモができる事を思い出しました。
 作ろうとしているデモは、キハ58が前後進しながら、汽笛を鳴らすものです。一応起動音も入れていたので、一往復ごとにエンジンも入れなおすことにします。DSshieldはS88の入力もありますので、自分のS88(光入力)で検知することにします。
 全体の感じは以下の写真です。
re_DSC02281.jpg

 DSShieldの自動運転はDSshieldAutoのページで説明されています。
・最初、電車のDCCアドレスを入れても動かず、見るだけ君で見ながら悩んでいました。結局、MECYさんのBlogや、Wikiの説明を見ながら、DCCのアドレス3にアクセスするには「ADDR_DCC + 3」とするということが分かるまで、ちょっとかかりました。
・CMD_Waitが時間を待つ命令だと思われるのですが、CMD_Wait内に「//なんか時間が合わない。Timer0のプリスケーラがおかしい?」と書いてあり、確かに時間が変な気がします。よくわからないけど代わりにDelay(ms)を使いました。まあ動いているからいいのか?

 と、引っかかった後に自動運転できました。DesktopStationのソフトと違い、普通にCの変数はフラグを使いたい放題なので、かなり自分好みに作れます。

で、できたもののユーザープログラムの説明は以下です。
有志のスケッチからダウンロードできます。dsshieldauto_f180422_1.zip)

void user_init(void)
void user_program(void)
内の話です。

・タスク1で200msごとにS88の状態を読み取ります。
・タスク2で200msごとにS88の0chと1chのうち指定された方のセンサ値だけ内部変数に入れます。
 その後のループは
・0chを見張っているとき(event_a)、0chが反応したら、0chも1chも反応しないように変更して、列車を止め、エンジンを止め、方向転換をし、エンジンを点け、汽笛を鳴らし、発車し、今度はセンサの1chだけ反応するようにします。
・1chを見張っているとき(event_b)、1chが反応したら、0chも1chも反応しないように変更して、列車を止め、方向転換をし、汽笛を鳴らし、発車し、今度はセンサの0chだけ反応するようにします。
の繰り返しです。

 あとは、この列車デモも入れた鉄道模型市用のレイアウトを実寸で作ってみました。
re_DSC02283.jpg

 今回は自動運転用周回コースがあり(中央の盛り上がったところ600mm*900mm)、その外側にN用(C280)の周回コースを作るとのことで、一番後ろにHOを置くと、かなり、窮屈になりそうです。
 なお、左上に置いたスペンサーはC59のつもりです。
 せっかくだから、キハ58の自動運転の模様です。右側にときどきこそこそ走っているのは昔作ったスマイルデコーダーのSoundOptionのSLスケッチです。


 他の物も手に取れるように陳列すると思われますし、一番手前のNへのお子様アタックの可能性も高いので、手前の安全を考えて奥のキハ85のHO削除もありかなあとも思います。
 関係者の方ご意見ください。

コメント(2) 

コメント 2

MECY

仮想レイアウトのご検討ありがとうございます。
実際にレールとか車両を配置してみると色々とスペース的にギリギリな感じですね。これにコントローラ他、配線の引き回しや空き車両の置き場等、機材諸々が所せましと並ぶと思いますので、効率的な配置を考えねば…と思いました。
by MECY (2018-04-23 00:19) 

fujigaya2

そうですね。
「Nゲージは思ったより幅を取らないので横に並べても大丈夫な感じがします。今回は畳3枚分の幅があるわけですから」という話もあり、Nの配置を変えたら、もう少し余裕ができそうですね。
by fujigaya2 (2018-04-24 06:48) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。