デジタル鉄道模型フォーラムDCC・メルクリン等のデジタル鉄道模型の話題でコミュニケーションできる場です。登録・利用は無料です。
デスクトップステーション(DesktopStation)のページはこちら
・無料の日本型超高品質DCCサウンドデータをWebで配布中!
・鉄道模型をスマホで簡単制御!国産で革新的なコマンドステーション DSair2はこちらから。

2018年01月23日

DSシールドのAUTOスケッチによる自動運転プログラミングで、できること/できないこと

DSシールドAUTOスケッチによる、パソコン無しでのDCC自動運転について、実現できること、実現できないことをYoutubeで引っ張ってきた自動運転の動画でご紹介したいと思います。

なお、判断基準は私の頭の中だけで、実際に試したわけでは無いので、ご了承ください。ただ、技術的には無理そうだな、もしくは超ハードなプログラミングが必須だな、と思ったら、できないこと、に振り分けます。ボーダーラインは、ちょっと厳しめです。

□できないこと(Cons)

まず、Taka@さんの、Desktop Station SoftwareDSmainR5.1を使ったケース。これは、実はAUTOスケッチで難しいです。複数の条件によって、複数台をバラバラに動かすのが、Arduinoのプログラムでは超不得意です。DesktopStationSoftwareでは、並列運転ができるようにソフトを実装しているのですが、パソコンくらいの性能が無いとキツいです。



次は、追兎電鉄のDigitraxxのシステム+Rail&CoのTrainControllerを使っているケース。これも、同じく、並列動作が多いのでArduino UNOの性能や機能ではどうしてもキツいです。かなりヘビーなことをしているので、配線だけでなく自動制御でも相当の時間をかけてらっしゃると思います。



□できること(Pros)

MECYさんが、DesktopStationSoftwareで自動運転している動画です。これは、車両数も少なく、条件も少ないのでAUTOスケッチで実現可能です。パソコンを減らすことが出来ます。



Nardiさんの交互運転も、これは可能です。2列車が、センサを踏んだときに止まるという動きなので、停止の動きを少し工夫する形になるとは思いますが、可能です。



次は、DCC/MMシールドを使用されていますが、PCなしで実現されています。これは、同じく可能です。この動きの移植も、元のソースがあれば、それほど難しくないと思います。



次も、DesktopStationSoftwareで実現されていますが、Nuckyさん日本型信号デコーダの制御も入ってきています。こちらも、AUTOスケッチで可能だと思います。ただし、信号機の制御をどう、実装するかはいろいろな方法があると思います。DesktopStationSoftwareだと、センサやポイント状態に連動して自動で変えてくれますが、その辺をC言語でゴリゴリ書くので、手間は大きくなると思います。



フジガヤ2さんの、単線2列車往復も大丈夫です。位置は、static変数に置いておかないといけないとはいけないと思いますが・・・。



あまりにもレベルが低いですが、2016年4月の模型市でお見せした、私の手抜きな1列車のポイント切り替え運転デモです。1列車だけだと、もう、何でも出来ます。制限はほぼ無いと思ってください。複数列車がいると、ややこしいことになって、頭を使わないといけないのです。



--------------------------------------

DSシールドのAUTOスケッチは、1〜2車両で、並列にいろいろな動きをさせなければ、自動運転プログラミングが可能です。逆に言うと、たくさんの動きをしてもOKですが、それがもう一方の車両の動きに影響しなければ、全く問題ありません。

DesktopStationSoftwareのイベント処理は、全ての動きが並列に同時に動くことを許容しています(そうなるように私が裏側で吸収する処理を実装しています)。一方、AUTOスケッチでは、C言語プログラミングで、容量制限や性能の制約もあって、並列処理の工夫を入れる余地が難しい面があります。

並列処理をC言語で書けないとは言いませんが、難易度が一気に跳ね上がります。リアルタイムOSのような処理を実装することになり、プロのプログラマでも苦労するはずです。ということで、
posted by yaasan at 20:02 | Comment(0) | 鉄道模型
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。