So-net無料ブログ作成
自動運転 ブログトップ
前の10件 | -

NucleoでDSBasicをしたい(主にメモリを増やしたいだけ) [自動運転]

 かなり、願望が入っている題名ですが、
Yaasan様から
----------
Nucleoに使われているSTMのマイコンは、全ピンが5Vトレラント対応です。つまり、5Vの信号を突っ込んでも平気です。

課題なのは、3.3Vで出力するピンです。ロジックICのVIHminは、たいていは70%なのでおおよそ3.5V以上でHIGHと認識する動作を保証します。つまり入力HIGH電圧閾値の動作保証外。まあ、実際のところはかろうじて動くんですけどね・・・。ということで、秋月でも売っている74XX125なレベルシフトに使えるスリーステートバッファを3.3V->5Vで使うことになるかと思います。

挙げられているソフトは、EEPROMやファイルシステムは実装されてないと書いてあるので、そこを実装しないと、保存できないシロモノになります。あと、テレビとかキーボードの処理も別途実装が必要そうです。STM用のライブラリってありますかね???
----------
とコメントされましたので、一応いくつか調べてみました。

まずEEPROMですが、なんか、一日中探して、下記のものを探せました。mbedのLPC・・・だと、localFileSystemが使えて楽なんですが、なんで、Nucleoは使えないんでしょう?

https://developer.mbed.org/teams/mbed_controller/code/storage_on_flash_demo/

一応、上記のもので、STM32F411では動きました。ファームを最新に上げるとか、#IfdefをF401用からちょっとだけ変えるとかやりましたが。

キーボードですが、(試してませんが)
https://developer.mbed.org/cookbook/PS2
があるようです。

TV outは探せませんでした。
(やっている人はいるようなのですが)

なかなか道は長そうです。

メイカーフェアの準備(大体終わり) [自動運転]

 電気屋の毎日様で詳しい案内をされていますが、土曜日、日曜日で鉄道模型コンテストをやっている東京ビッグサイトの別の展示場で(メイカーフェア)で展示をするものが大体出来上がりました。
 今日は、外回りの方の電車(誰かに壊されてもあまりいたくない)を作っていました。
 まず、10年ぶりぐらいに再生産された鉄コレの動力TM-10Rです。鉄コレの第8弾を箱買いしていたのですが、気づいたら動力車が無くて、DCCにしたいのに、・・・でしたが、やっと発売されたので、4つも買ってしまいました。
re_DSC00872.jpg
 なので今日は強気に作っていきます。(壊してもまだ3つあると思いながら)
 5月の連休明けぐらいに作ったDSDecR3用のヘッドライトテールライト基板です。これをくっつけて、光ファイバで導光して、作ります。叡山電鉄という京都の電車らしいです。関東なのでよく知りませんが、両側に運転台があるので、いい感じです。
re_DSC00871.jpg
 動力車はほぼ全部分解して、集電、モーター配線共にはんだ付けします。なおこの写真のはんだ付け後、干渉することが分かったので、集電側はほかの場所にはんだ付けしなおしています。
re_DSC00875.jpg
 屋根裏を削ります。なお、写真の削りでは足りなくて、その後もっと削っていたりしますので、参考にしないほうがいいと思います。穴あけはホットナイフで行い、その後、カッターで整えています。
re_DSC00874.jpg
 で、ヘッドライト、テールライトの光ファイバの導光です。テールはΦ0.5mm、ヘッドライトはΦ0.75mmにしましたが、後で、取りまわすことを考えるとすべて0.5mmにすればよかったと思いました。径の問題は置いておいて。
re_DSC00877.jpg
 そして、光ファイバーを側方出射LEDの前に瞬間接着剤で付けて、・・・、瞬間で固まらず結構数分持ち続けました。、で、本当は全部を熱収縮チューブで覆って、遮光と固定をしたかったのですが、適当な径のものがありませんでした。3mmでは小さすぎ、10mmは大きすぎ、6mmのチューブ買っておけばよかったと後悔しました。
 なので、スーパーXブラックで固定&遮光しました。結構良いです。一部接着剤が入らずに車内が赤く輝いていましたが。
re_DSC00878.jpg
 で、完成です。
re_DSC00880.jpg
 テールライトは4つ中、1個穴あけ場所をしくじりましたが、まあ、雰囲気的には問題ありません。
 そして、ジオラマ化(とか言って、一部に人工芝貼り付けただけ)したメイカーフェア向けレイアウトで、ウェアラブルカメラを乗っけて、信号機&渋滞運転を楽しんでいました。
re_DSC00879.jpg
 後は信号機の支柱を白く塗ろうかと思っています。
 駅にメロディーをとか思っていましたが、そろそろ時間切れかなあと思います。

複線8信号レイアウト信号管理+内側自動運転 [自動運転]

 日曜、月曜は家族旅行に行っていました。どっかの都知事が会議に使ったというホテル三日月もいいなあと思いながら、今回は伊東のサンハトヤに行きました。
 箱根小涌園と比べるとかなりプール温泉関連のスケールは小さいですが、まあちょうどよいサイズです。お昼ぐらいに行って夕方まで遊んでました。で、目玉の海底温泉。一日目は微妙な海底温泉で、アジやヒラメしか泳いでいませんでした・・・。(二日目は大きなカメが二匹泳いでいました。)
 で、夕食は昭和の香りが漂うマジックショー付きのブッフェです。普通においしかったです。段差が多くて、かなり食事を持ったままつまづきそうになっていましたが。ショー見ながら食べるなんて嫌だとぶつぶつ言っていた子供も、台が宙に浮いたりするマジックを見ながら喜んでいました。ラインダンスをちょっと期待していたのですがそんなものはありませんでした。で、伊東市がやっている観光花火もホテルの部屋から見えてよかったです。
 子供のころから「伊東に行くならハトヤ」とさんざんCMを聞かされて一度は行ってみたかったところに行けてよかったです。朝は展望露天風呂に入りましたが、初島が良く見えてきれいでした。
 あとは、ホテルの隣に伊東線の単線が走っており、スーパービュー踊り子、普通の踊り子、マリンエクスプレス踊り子、リゾート21(多分)、普通の東海道線、普通の伊豆急など、かなりバラエティー豊かな電車がはしっており、山、線路、国道、ホテル、海というレイアウトでジオラマにするにも良い感じかと思いました。
 で、(前置きが長かったですが、短い)本題です。
 「複線8信号レイアウト信号管理+内側自動運転」を作りました。外回りの電車は本当は手動で操作するんですが、手が足りないので、定速周回しており、信号無視しています。

 内回り、外回り共に信号機制御を行い、かつ、内回りは電車の停止、発車制御も行っております。ただし。S88&制御ループをそれなりに速く回したいので、ArduinoのスケッチでAccのDelayは200→100に変更しております。また、外側も停止してほしい時は次の信号を赤にして、止まってほしい旨伝えるようにしています。
 次にSPX命令は徐々に加速、減速をする命令ですが、これもS88&制御ループを止めるので、SDP命令で一気に停止、出発に変えています。DCCデコーダの加速、減速を使ってなだらかな運転にしたいと思っております。
 また。列車の停止から出発までDelayで待ち続けるとこちらもS88&制御ループを止めてしまい、もう一つの線側の信号機制御を滞らせてしますので、フラグを追加してS88&制御ループを回しながら列車の停止、出発を制御しております。内回りがI、外回りがJです。
また、いろいろと追加したら、プログラム領域がEEP ROM領域に入らなくなってしまったので、涙ぐましい努力をいくつかしています。
・行番号を減らして1行に記述する。
・読みやすくしている「スペース」を削る。
・Print命令は?(短縮形)に変更。
で、ぎりぎり入りました。
以下にプログラムを書いておきます。
67 I=0:J=0:F=0:T=5:L=3:S=35:D=50
68 W=20
100 A=GS8(0)
105 ? "S88(",A,")"
110 IF A&128 GOSUB 200
120 IF A&64 GOSUB 300
130 IF A&32 GOSUB 400
140 IF A&16 GOSUB 500
150 IF A&1 GOSUB 600
160 IF A&2 GOSUB 700
170 IF A&4 GOSUB 800
180 IF A&8 GOSUB 900
185 IF I>0 GOSUB 1000
186 IF J>0 GOSUB 1100
197 IF F=0 DELAY 200
198 F=0:CLS
199 GOTO 100
200 ACC42,0:ACC43,0:ACC54,1:ACC51,1
210 ACC46,0:ACC47,0:SPD L,0:F=1:I=1:RETURN
300 ACC46,0:ACC47,0:ACC42,1:ACC55,1
310 F=1:RETURN
400 ACC50,0:ACC51,0:ACC46,1:ACC43,1
410 F=1:RETURN
500 ACC54,0:ACC55,0:ACC50,1:ACC47,1
510 F=1:RETURN
600 ACC62,0:ACC63,0:ACC70,1:ACC67,1
610 ACC58,0:ACC59,0:F=1:J=1:RETURN
700 ACC58,0:ACC59,0:ACC62,1:ACC71,1
710 F=1:RETURN
800 ACC66,0:ACC67,0:ACC58,1:ACC63,1
810 F=1:RETURN
900 ACC70,0:ACC71,0:ACC66,1:ACC59,1
910 F=1:RETURN
1000 I=I+1:IF I<W RETURN
1010 ACC46,1:ACC47,1:SPD L,S:I=0:RETURN
1100 J=J+1:IF J<W RETURN
1110 ACC58,1:ACC59,1:J=0:RETURN

今回、主に、1000行目以降が追加で、1000、1010が内回りの列車、信号の停止、出発制御で、Iが1以上でカウントアップして、W以上(W=20としている)で出発して、フラグ(I)を下げています。
1100、1110は外回りの制御で、列車の制御はせず、信号機の制御のみをしております。
 外側は別系統のDSMainR5で体験運転にでもしようかと思っております。
 で、今日の夜はシン・ゴジラを見に行きました。モノレールや京急や江ノ電やその他たくさんの電車が出ており面白かったです。ストーリーはあまり憶えていませんが。
 明日から、沿線をデコレーションしていこうかと思います。ただし、バラストなど、粉系は撒きません。あとが面倒なので。

複線8信号レイアウト信号管理 [自動運転]

 すごい勢いでYaasan様が開発するので、レビューです。
 R4bです。Delayを入れる必要がなくなったので、ソースは短くなりました。
 ただし、信号機のアクセサリ部分は今までDelay50msだったのが200msになったので、全体のループのDelayなども見直しました。Delayの希望としては50~100msです。
 また、今回は「複線8信号レイアウト信号管理」なので、S88は8ポート(内回り4ch、外回り4ch)使っています。前回、駅に電車を止めて出発させていましたが、この部分は電車を止めて出発するまでDelayを入れてS88の検出を止めてしまっていますので、これをやると電車が止まっている間信号機管理が止まってしまうため、取りあえず電車制御はやめています。また変数Fを加えています。これは、S88検出をしてAcc制御した場合はループのDelayを抜くためのフラグです。(あまりにもS88の検出ループが長くなってしまうので)。また、8Chのため分岐用のIf文が倍になっています。
 で、今回のソースです。(ちょっと前回とS88のchなど変更しています)
------------
70 F=0
75 T=5
80 L=3
85 S=35
90 D=50
100 A=GS8(0)
105 PRINT "S88(",A,")"
110 IF A&128 GOSUB 200
120 IF A&64 GOSUB 300
130 IF A&32 GOSUB 400
140 IF A&16 GOSUB 500
150 IF A&1 GOSUB 600
160 IF A&2 GOSUB 700
170 IF A&4 GOSUB 800
180 IF A&8 GOSUB 900
190 IF F=0 DELAY 200
192 F=0:CLS
195 GOTO 100
200 ACC 42,0:ACC 43,0:ACC 54,1:ACC 51,1
210 F=1:RETURN
300 ACC 46,0:ACC 47,0:ACC 42,1:ACC 55,1
310 F=1:RETURN
400 ACC 50,0:ACC 51,0:ACC 46,1:ACC 43,1
410 F=1:RETURN
500 ACC 54,0:ACC 55,0:ACC 50,1:ACC 47,1
510 F=1:RETURN
600 ACC 62,0:ACC 63,0:ACC 70,1:ACC 67,1
610 F=1:RETURN
700 ACC 58,0:ACC 59,0:ACC 62,1:ACC 71,1
710 F=1:RETURN
800 ACC 66,0:ACC 67,0:ACC 58,1:ACC 63,1
810 F=1:RETURN
900 ACC 70,0:ACC 71,0:ACC 66,1:ACC 59,1
910 F=1:RETURN
------------
 Export、Importするソースはbasという拡張子ですが、中身はテキストです。
 バグかどうかわかりませんが、Exportすると、ファイル内に以前のソースごと入ってしまうようです。(何回かSaveとLoadをしているせいでしょうか)ファイル内の一番下が最新のソースのようです。?
 あとは、Serialの通信速度を落としたとのことで、当たり前ですが、旧スケッチとDSBasicEditor0.1を組み合わせると文字化けしてちゃんと通信できません。
 ただ、格段に操作性は上がりました。プログラムを入れるだけならDSBasic側のモニタは要らないぐらいです。一つ要望を言うと、プログラムをPC側から止めたいです。(ESCキーはSerialを通らないので)
 で、今回の動画です。内回り、外回りを定速で電車が動いていて、信号機がたんたんと変わっていくだけですが、信号機関連はDSBasicで動作しています。

 明日、明後日は家族旅行のためおりません。

DSBasicによる自動運転デバッグその2 [自動運転]

 やっと明日は休みなので、鉄道模型ショウに行くつもりですが、子供を誘ったのに誰も行かないらしいです。残念?ながら一人で羽をのばすことにします。
 さて、DSBasicがR0.3になって、バグがなくなり、プログラム領域も広がったとのことで、試してみました。特にバグのようなものは見つかりませんでした。ArduinoのCOMのコンソールからプログラムをかけるので、かなりデバッグ効率が上がります。でも、Arduinoのコンソールからは実行中のソフトは止められないようです。(ESCキーのコンソールでの送り方が分からない。エスケープシーケンスで送れるのか?)
 レイアウトは前回と同じで、メイカーフェア用のレイアウトの内回りです。
 レイアウトのセンサとアクセサリアドレスは以下のようになっています。
説明.png
 今回の自動運転は、まず信号機については、1,2,3,4共に閉塞区間?を持っていることにしてあり、信号機1を電車が通過すると、信号機4が黄色、信号機3が青色という風に変わります。信号機2だけちょっと変わっており、信号機1を電車が通過したら赤になり、電車を駅に止めます。(なんかこういう信号は変かもだかよくわからん)
実際のレイアウトは以下です。
re_DSC00823.jpg
動画は以下です。信号機1が手前、信号機2が奥に写っています。

そして、プログラムですが、以下です。
--------
75 T = 10
80 L= 3
85 S=25
90 D=50
100 A=GS8(0)
105 PRINT "S88(",A,")"
110 IF A&1 GOSUB 200
120 IF A&2 GOSUB 300
130 IF A&4 GOSUB 400
140 IF A&8 GOSUB 500
150 DELAY 300
155 CLS
160 GOTO 100
200 ACC 42,0:DELAY D:ACC 43,0:DELAY D:ACC 54,1:DELAY D:ACC 51,1:DELAY D
205 ACC 46,0:DELAY D:ACC 47,0:DELAY D:SPX L,S,0,T
206 DELAY 2000:ACC 46,1:DELAY D:ACC 47,1:DELAY D:SPX L,0,S,10
207 A = GS8(0)
210 RETURN
300 ACC 46,0:DELAY D:ACC 47,0:DELAY D:ACC 42,1:DELAY D:ACC 55,1
310 RETURN
400 ACC 50,0:DELAY D:ACC 51,0:DELAY D:ACC 46,1:DELAY D:ACC 43,1
410 RETURN
500 ACC 54,0:DELAY D:ACC 55,0:DELAY D:ACC 50,1:DELAY D:ACC 47,1
510 RETURN
--------

 プログラムの説明ですが、まず変数です。
a:S88のビットを保持します
d:Acc命令を立て続けに出すと切り替わらないことが多々あるので、そのためのWait[ms]を可変にしています。
10msではときどきしくじるので、50msにしました。
L:電車番号です。
S:自動運転時の最高スピードです。
T:電車停止までの時間です。
 次にプログラムの中身の説明です。
~90:初期値を設定しています。
100~160:いわゆるメインループでS88の値をとってきて、その値によって分岐させています。何もない場合は300ms待って、最初に戻ります。
200~210:信号機1の所の処理です。踏んだら、各信号機の色を変えた後、信号機2を赤にして、数秒後に電車が駅に止まるようにします。数秒後、信号機2を青にして、出発します。なお207行目でS88を一度読みだしていますが、これは、S88のバッファを最新にするためのゴミデータの掃き出し動作になります。(これをいれないと、センサを通過した後なのに、もう一回信号機1を通ったことになり電車が止まります)
300~310、400~410、500~510:各信号機の色を変更します。通過した信号機を赤にして、一つ前の信号機を黄色にして、二つ前の信号機を青にしています。
200~210も300以降と同様にすることで、単なる信号機制御だけするモジュールにも出来ます。この場合は電車は線路側にDCCを繋がらなければアナログでの制御などでも可能です。

まだ、DSBasicは少し領域が残っているので、外回りの信号機も制御しようかなあと思っております。
あと、駅にメロディーをいれようかなあと思っていたりしますが、まあ、明日から会社の夏休みなので、ゆるゆるとやって行こうと思います。(いや、メイカーフェアは来週の土日じゃないのか?という気もする)

あと、子供にこのレイアウトの木の質感よくない?と言ったら、ちゃんとニセ芝生(少し前にダイソーで買った)とかつけてちゃんとしたジオラマにしてほしいという要望があった。どうしようかなあ。

DSBasicによる自動運転デバッグ [自動運転]

(追記 現在DSBasic R0.3になっており、下記不具合(2)、(3)は解消しております)

 やっぱり、F-modelsに行こうかどうか悩みましたが、半額セールで買うものが見つからないような気がしたので、今日は、昨日作ったレイアウトのデバッグをしていました。
 使ったスケッチはDSBasic_20160714で、やっているうちにいくつか不具合があり、今日は自動運転は完成しませんでした。
 不具合ですが、
(1)Arudino1.6.6でコンパイルできない。→1.6.9でOK
 前は他のPCでAruino1.6.7でコンパイルしていたような気がするので、気がつきませんでしたが、1.6.6ではコンパイルできませんでした。static void ignore_blanks(void)がExternだかStaticだか。とでます。Arudino1.6.9にIDEを上げて無事コンパイルできるようになりました。
(2)SPD命令がおかしい→以前のもののようにすればOK。
 中身を確認したら、前のVerではSetLocoSpeedExが呼ばれてて、これは0~1023のスピードを引数にするのですが、今回のS88用VerではSetLocoSpeedが呼ばれており、スピードの引数は0~100%のようです。ただし、内部の計算がArduinoのInt型なのに、計算内で32768を超えているため(Inspeed*1024)/100)、どうも動作がおかしいです。まあ、以前のものに戻しつつ、値チェックもする形になればよいかと思います。
 
 ここまでやって、S88の動作を確認しました。
DSBasicのプログラムは以下です。
10 print gs8(0)
20 print gs8(1)
30 print gs8(2)
40 print gs8(3)
50 delay 300
60 cls
70 goto 10

で、OKでした。
re_DSC00820.jpg
 DSCoreに直結しているためか、Delayをちゃんと入れてやらないと、S88自体の動きが速すぎて怪しいです。
 次は要望ですが、S88は8ビットごとに取ってくるのですが、ビットAndやビットOr命令がないので、If文が扱いにくいです。弘前大のスケッチ tinybasic20160327vk.inoには、Not、And、Orが拡張されていたので、できたら付け加えてほしいです。(適当に付け加えたら、まあ動きました)
 で、次ですが、これがちょっと私のプログラムを作るうえでは今のところ致命的な問題です。
(3)プログラムが256Byteしかロードできない?
 4信号機で、各信号機のアクセサリアドレスが2つずつで計8つのビットをいじるのですが、(Nucky様のもともとのコンセプトは多分、閉塞区間で、アドレスを重複させるやり方なのでBit数は4に減らせると思いますが)、
1.S88の値を取ってきて
2.If文でどの信号かを判断し
3.各信号のビットを立てたり下したりする(4ビット分)
のですが、プログラムの動作が不安定で、セーブ、ロードすると暴動します。
 もともと自由な領域が968Byteありますが、713Byteまでは普通にセーブ、ロードが可能ですが(多分ここら辺が256Byteの区切り)、711Byte(MEM命令で確認)ではプログラムをSave後、Loadし、Listでみると、DSBasic自体が暴走します。List命令で、プログラムと文字化けしたような文字列が流れ続けます・・・。
re_DSC00821.jpg
 もうちょっと長いプログラムを書いてセーブ、ロードしたいです。

複線8信号機レイアウトの製作開始 [自動運転]

 さて、「メイカーフェア用レイアウト」の製作を開始しました。メイカーフェアにはDCC電子工作連合の一員として出展しますが、8/6~8/7で鉄道模型コンテストと同日程なのですが、ビッグサイトのイベント情報検索でメイカーフェアが出てこないのが少々気になります。
 きょうは、F-modelsが7周年記念で半額セールをやっているらしいので、かなり行きたかったのですが、冷静に考えると、今、どうしても欲しい電車があるわけでもないので、ぐっとこらえました。
 で、作りはじめました。今回のコンセプトは、持っていくです。前回鉄道模型市では現場で組み立てましたが、かなりパニクリましたので、今回は車で行けることもあり、荷物をコンパクトにまとめる必要もありませんから、レイアウトでもっていくことにします。
 で、もう、先週にレイアウトは決めてしまいましたので、今回は、配線関連をどうにかして、固定化するために、木材を買ってきました。
re_DSC00808.jpg
 これがレイアウトのベースになります。910*450(厚さ5.5mm)のベニヤです。1000円ぐらいしました。加工しやすいMDFだと600円ぐらいでしたが、強度が弱い(ベニヤよりもしなる)のと、重いのでやめました。
 一緒に、曲線も切れるらしい自在のこぎり(1800円)とベニヤの下用のスペーサにヒノキのブロック(100円)も買いました。こういうスペーサーは自分で切り出すと、大きさが揃わなくて、ろくなことがないので。
re_DSC00810.jpg
スペーサはこんな感じになるかなあと仮置きして横からの写真です。
re_DSC00811.jpg
 で、加工前に、前回のレイアウトを載せて、枠を鉛筆で取ります。相当適当にやっています。
re_DSC00809.jpg
 鉄橋の所だけ、切るつもりです。ただし、今回は回路を見せびらかす展示会で、ジオラマを見せる展示会ではないので、自然な感じにやるつもりは毛頭ありません。
 家の中でやると、のこぎりのカスがすごそうなので、外に行って自在のこぎりを初めて使いました。
re_DSC00812.jpg
 斜めにやるのは結構難しく、結局インパクトドライバで穴を開けて、のこぎりで切ってとまあ、いつもの方法をとっています。のこぎりが細いため、少し穴を開けるだけでそこから切ることができて、楽です。
 鉄橋の他の高架との接合部分もくりぬいておきます。貧乏性で、鉄橋の接合部分をニッパで切るという選択肢はありません。で、適当にやすりで削って、形を整えます。あまり時間がないので、適当仕上げです。写真に写っている得体のしれないストローとかは、元子供が作った何かの様なのですが、よく知りません。
re_DSC00813.jpg
 外は蚊が多いです。今日はちょっと涼しいので、蚊にとっても良い感じなのかもしれません。
 で、部屋に戻って、線路を載せました。なんか、よさそうなので、そのまま進めます。
re_DSC00814.jpg
 で、裏側にスペーサーを付けます。私は、接着剤が乾くのを待つのが嫌いなので、木ネジで留めてしまいました。
re_DSC00816.jpg
 そして、こんな感じかなあと、いろいろとDSBasic関連を載せます。
re_DSC00817.jpg
 そして、突然、写真が飛びますが、基板や、線路を固定して、配線もすべて裏に逃がして、美しいまま、とりあえず完成したのが以下の写真です。もちろん、ベニヤの下は配線がスパゲティーになっています。
re_DSC00818.jpg
 DSBasicで実際に前作ったソフトは動きました。
re_DSC00819.jpg
 明日に、S88が動くバージョンに変更して、ソフトを作っていこうかと思います。
 ちょっと、悩んでいることが2つあって、
(1)DSBasicにどこまでまかせるかです。内側を自動運転にする予定で、外側はお客様に触ってもらおうかと思っていますが、内側のすべて+外側の信号機ぐらいまでをDSBasicに任せることが可能な気がします。でも、そういうことすると、説明が面倒だったりするんですよね。
(2)ジオラマ風にするかどうか。今はベニヤとかでほぼ木の感じだけでやっていますが、一部、草とか、建物とかを置くかどうか。どっちが良いのか。建物を置いて、灯りを付けるのもいいかもですが。
 まあ、まだ日はあるので、悩もうかなあと思います。

メイカーフェア レイアウトの検討 [自動運転]

 今週のその3ですが、Yaasan様のBlogでメイカーフェアの案内をされておりますが、一応、私も自動運転を出そうと思って、検討を開始しました。鉄道模型市は1800mm*900mmのテーブルだったのでそれなりに伸び伸びと出来たのですが、今回は1800mm*600mmで、かつ、客層としてお子様(Destroyer)がたくさんいらっしゃるということで、どうしようかと考え中です。
 で、まずはもうちょっと遊びたかったなあと後ろ髪引かれながら、前の信号機いっぱいレイアウトを撤去して、1800mm*600mmで切ってました。メジャーのある辺りより手前が600mmの奥行きです。
re_DSC00801.jpg
 で、まずはカーブのC280と直線のS280で組んでみたのが以下の写真です。
re_DSC00802.jpg
 600mmの奥行きなので、お客さん側のテーブルの端まで20mmほどしかありません。これは子供が電車をなぎ倒しそうなので、却下です。
 で、C177とC140で複線を組んで、鉄橋をいれて、センサレールを入れて、お客さんから遠い側に長い直線の往復を入れてとやったのが、以下です。
re_DSC00803.jpg
 周回部分は900mm*500mmぐらいかなあと思います。
 場所がビッグサイトなので、、下にベニヤでも付けて、レイアウトを適当に車でもってけばいいかなあと何となく思って、これから材料をそろえようと思います。
 全体として以下の感じかなあと思います。
re_DSC00804.jpg
 そして、ここからが本題でDSBasicでS88!と思ったのですが、家族会議の結果、この日は、夕方から富士サファリパークのナイトサファリを見に行ってしまったので、進んでません・・・。ナイトサファリ自体は楽しかったです。でも、帰り、東名の都夫良野トンネルで事故のため御殿場から12kmの渋滞で、うんざりでした。このトンネル、下り坂で結構なカーブで、右カーブなので追い越し車線側のほうがきついため、まあ、事故起こりやすいかなあとは思います。
 で、今日は、家族会議で横浜にピアノを物色しに行って一日が終わりました。(来週に続く) 

DCCでプラレールアドバンスのマネ自動運転(3列車) [自動運転]

 今週はKiCADを始める予定だったのですが、プラレールアドバンスを見たため、予定変更です。(KiCADはインストールして、雑誌の記事だけだとよくわからないので、本屋さんに行って、なごでんの日記様が使用した本を立ち読みして、バージョンが違うから(雑誌の付録はVer4.0)買わずに帰ってきて、その後、雑誌の付録DVDに説明動画が付いていることを発見して・・・ぐらいまでやって本日は終了でした。つまり進んでません)
 ということで、プラレールアドバンスの連続発車ステーションのマネです。基本的なところは、S88のセンサを踏んだら、自分の前方にいる電車が強制的に出発するという、現実の閉塞区間と真逆の発想の恐怖の運転方式です。最初そんなことには気づかずに、一生懸命スクリプトを組んでいて、途中で気づいて、やる気をなくしつつ、まあ、単線の周回コースに電車をいくつも並べて自動運転は初めてなので楽しみました。
 ただし、プラレールアドバンスの連続発車ステーションはホームの後ろの電車が突っ込んできた瞬間にホームにいる前の列車がロケットスタートしますが、さすがにそれをNゲージでやると、追突しまくって、すぐに運転席周りが悲しいことになりそうですので、閉塞区間を一つだけ設けて置きました。
 少し前にスッペさまのBlogの動画を見て、単線に二列車走っている!と思ったのもやりたいなあと思った動機だったりします。
 で、レイアウトというかセンサ配置です。
無題.png
 写真です。
re_DSC00772.jpg
 動画です。


 スクリプトの説明ですが、(と言いながら、相当読みにくいかと思います。)
まず、電車は
DCC:9(49161) 横須賀線(初期位置センサの5-1間)
DCC:8(49160) 東海道線(初期位置センサの2-3間)
DCC:21(49173) 京急(初期位置センサの4-5間)
です。
電車の方向は反時計回りです。
横須賀線から動かします。

まず、初期値を入れるために下記のスクリプトが電源投入と同時に実行されます。
setup(開始条件 Flag0==0)
-------------
DESKTOPSTATION,SCRIPT,2013
LABEL,setup,,0
SETFLAG,0,1,0
SETFLAG,1,1,0
SETFLAG,2,1,0
SETFLAG,3,3,0
SETFLAG,4,3,0
SETFLAG,5,2,0
EXIT,,,0
-------------

初め、開始トリガを「電源投入時」を選んでやってみたのですが、動かなかったので、
上記スクリプトにしております(Ver 095d3)。Flag0は電源投入時に0なので、トリガとなって、
Flag1~Flag5に値を設定します。一回だけ実行してほしいのでFlag0に1を代入して、
もうイベントが起きないようにしています。
Flag1~5は各S88センサのどの列車が通るかの状態フラグです。

で、S88の各センサのスクリプトですが、例としてS88センサ1のスクリプトです。

S88_1(開始条件 センサアドレス1 進入)
-------------
DESKTOPSTATION,SCRIPT,2013
LABEL,train?,,0
JUMP,pattern_a,1,1
JUMP,pattern_b,1,2
JUMP,pattern_c,1,3
EXIT,,,0
LABEL,pattern_a,,0
SPEED,49160,512,1
WAIT,5,,0
SETFLAG,1,2,0
SPEED,49161,0,1
EXIT,,,0
LABEL,pattern_b,,0
SPEED,49161,512,1
WAIT,5,,0
SETFLAG,1,3,0
SPEED,49173,0,1
EXIT,,,0
LABEL,pattern_c,,0
SPEED,49173,512,1
WAIT,5,,0
SETFLAG,1,1,0
SPEED,49160,0,1
EXIT,,,0
-------------

センサ1を踏んだら、Flag1(1~3)によって、動作が変わります。
pattern_a:Flag1=1の時は、横須賀線(DCC9)がセンサを踏んだ時で自列車の前にある東海道線(DCC8)を出発させて、横須賀線(DCC9)を止めます。Flag1を2にします。
pattern_b:Flag1=2の時は、京急(DCC21)がセンサを踏んだ時で自列車の前にある横須賀線(DCC9)を出発させて、京急(DCC21)を止めます。Flag1を3にします。
pattern_c:Flag1=3の時は、東海道線(DCC8)がセンサを踏んだ時で自列車の前にある京急(DCC21)を出発させて、東海道線(DCC8)を止めます。Flag1を1にします。

で、センサ2~5は、上記スクリプトのFlag1をそれぞれFlag2~Flag5に入れ替えただけのものになります。(電車番号などは全く同じ)

 多分、センサを踏んだ時、(一個後ろの閉塞区間が空くはずなので)後続の列車を発車させるように変えてやれば、実際の閉塞区間っぽい運転に見えるのかなあと思います。また停止でなくトロトロ運転に変えてやれば、3列車のぶつからないノロノロ運転スクリプトになるかなあと思います。
 スクリプトの少しの入れ替えなので、そのうちやってみようかなあと思います。

鉄道模型市自動運転検討 [自動運転]

 さて、鉄道模型市2016出店が今週になってしまったというのに、物販品の袋詰めも終わっていなければ、レイアウトの自動運転も決まっていない状況です。
 ということで、自動運転デモの検討です。それは当日のお楽しみじゃないのか?という話もありますが、いろいろな外乱で、全然できないことも考えられますので、現状のできそうなレイアウトで検討です。まずは、レイアウトの大きさは机1枚(1800*900mmぐらい)です。家のいつもレイアウトを作るベニヤが1820*910のはずなので、そこにC280,C317を使ってレイアウトしてみました。レイアウトの前に、自動運転用のPCを置きます。で、分かったことは、PCがそれなりに大きくて入りません。なので、早々にレイアウトのカーブを C280とC317 → C243,C280に変更しました。
re_DSC00593.jpg
 レイアウトの向こう側が910mm近辺です。
 次に、ケーブルですが、S88センサのケーブルはフラットでないため、線路の下をくぐるとすごい段差になり、VVVFスケッチの非力電車の低速走行で引っかかります。普通の電車も車体底を擦ったりします。なので、ダイソーで角棒を買ってきて、配線を通すためのスペーサーとして線路の下に入れることにしました。
re_DSC00596.jpg
 そして、センサ、コントローラを配置したら、以下の写真のように円周内の展示スペースの一角をきれいに支配しています。
 re_DSC00595.jpg
 レイアウトは以下のように(昇圧ポイントのデモで使うかもだから)ダブルクロスを入れていますが、当日、引っかかる電車があるようなら抜きます。センサは1~4だけでよいのですが、予備で5,6を付けております。
鉄道模型市レイアウト.png
 内側の自動運転でもエリアではいわゆるトミックスのエンドレス2列車交換モードを行います。ただし、そのままではアナログと変わらないので、C11とSoundOptionを使って、シューシュー言ってもらうことにします。
 外周は、Wifiなどでの自由運転になる予定ですが、今日は、内周同様に適当自動運転にしてみました。
 できた動画が以下の2つです。
<アングルに凝ったつもりのもの>

<全体が分かるように撮ったもの>

 この後1時間の耐久テストに入りましたが、内周は15分で破たんしました。ときどき、条件が抜けてしまうようです。ということで、条件すっぽ抜け対策で、電車のスピードと停止時間を延ばしたら今度は1時間運転できました。
 線路も汚れていきますので、メンテナンス方法などちゃんと考えないとです。(自動運転中に線路を拭くと、もちろんセンサが誤検知して、すぐに暴走→大事故になります。困ったものです。)

<追記>
待避線付きレイアウト(手前側)
re_DSC00598.jpg


前の10件 | - 自動運転 ブログトップ