So-net無料ブログ作成

C11で陰陽道マークのループ運転 [自動運転]

 ご存知の方も多いかとは思いますが、4/29(金)に鉄道模型市Desktop Station / Nucky / DCC電子工作連合で出店いたします。そこで、ついでにS88による自動運転のデモを行おうとしており、このごろ、いくつかS88関連の自動運転を紹介しているのは、どういうデモをやろうかなあという試行錯誤の記録です。まあ、ループ系のものは、レイアウトが大きすぎて入らないという残念な結果が分かっているのですが。宣伝ですが、S88デコーダはスイッチサイエンス様で販売中です。鉄道模型市でも少量販売予定です。見てから買いたい方は模型市にぜひお越しください。(そういうところでデモするとよくトラブるらしいですが)
 で、今回ですが、今週の日曜日にDCCに改造できそうな手ごろな電車を横浜のホビーランドポチに買いに行ったのですが、欲しいと思う伝写が無くて、ジャンク品で完全選択式ポイントを見つけてしまったので、思わず買ってしまいました。その後にポイントがたまっているIMONに行って、勢いでポイントをまた買ってしまって、こんな感じです。
 re_DSC00527.jpg
 で、やりたかった、陰陽道みたいなループ+方向転換用のループにしました。
re_DSC00528.jpg
 センサなどのレイアウトは以下です。
レイアウト.png
 DCフィーダーはポイント3の下あたりに一つ入れるだけで、ポイントを切り替えることですべての場所に通電可能です。ポイント1は二つでセットで一つが直線の時、もう一つは枝線側でショートしないようにしてあります。
 各センサのイベントですが、
センサ6は今までのループ線同様に、踏んだらポイント4を切り替えるだけです。

DESKTOPSTATION,SCRIPT,2013
ACCESSORY,4,1,0
WAIT,50,,0
EXIT,,,0

センサ1も単純で、踏んだらポイント1を切り替えるだけです。

DESKTOPSTATION,SCRIPT,2013
ACCESSORY,1,1,0
WAIT,50,,0
EXIT,,,0

ちょっと複雑なのがセンサ2で、下から時計回りに来たときは上奥のループ線から戻ってきた時なので、ポイント3を枝線側に切り替えて、手前の陰陽道ループの外円を回れるようにして、ポイント1の上部分も直線側に切り替えます。(ポイント1の下側は枝線側になります)。完全選択式なので、順番を間違えると、電気が来なくなります。そして、ぐるりと回って、陰陽道の真ん中を通って次にセンサ2を通るときはポイント3、ポイント4を切り替えて上奥のループ線に入って行きます。

DESKTOPSTATION,SCRIPT,2013
JUMP,no1,0,0
JUMP,no2,0,1
EXIT,,,0
LABEL,no1,,0
ACCESSORY,3,0,0
WAIT,5,,0
ACCESSORY,1,0,0
SETFLAG,0,1,0
WAIT,50,,0
EXIT,,,0
LABEL,no2,,0
ACCESSORY,3,1,0
WAIT,10,,0
SETFLAG,0,0,0
ACCESSORY,4,0,0
WAIT,50,,0
EXIT,,,0

動画は以下です。


プラレールみたいの電池搭載車両だと、とても簡単なレイアウトなんですけどね。

スマイルデコーダR4でのVVVFスケッチその後 その2 [ds-DCCデコーダ]

 スマイルデコーダR4でのVVVFスケッチその後 記事の続きです。
 Yaasan様から、デコーダの起動時間がどのくらいですか?というお話がありましたので、確認しました。
 実験の方法ですが、オシロを当てやすいデコーダ開発ボードを使いました。デコーダの5Vの立ち上がり開始時間を電源供給開始時間を起点としています(A ch)。そしてBchでA5端子を見ています。Arduinoのスケッチの最初(Setupの始め部分)でA5をHighにします①。そしてLoopのDCC.process()のまえにA5をLow②にして、パケットの受信開始タイミングを確認します。つまり①がArudinoの起動時間、②がパケットを受信開始できるまでの時間です。
 結果ですが、
(A)Yaasan様スケッチ(DSDCCDecoder):①85ms,②90ms
(B)VVVF_K98_初期値:①85ms,②115ms
(C)VVVF_K98_京急:①85ms,②145ms
(B)と(C)の違いは、VVVF配列のコピー量の違い(3倍)でEEPROMからのコピーはかなり遅いようです。
ただし、デコーダ開発ボードではDSMainR5を使っても京急に変更後に元に戻せます。スマイルデコーダとの違いは、5Vの電源でしょうか?(5Vの立ち上がりが遅く、Arudinoの起動が遅く、パケットが間に合わない?)
 ということで、500msあれば足りると思います。ただ、他のデコーダで書けなくなる不具合がでるか?
オシロ画像です。
(A)Yaasan様スケッチ(DSDCCDecoder)
Yaasanスケッチ.png
(B)VVVF_K98_初期値
K98_Defo.png
(C)VVVF_K98_京急
K98_京急.png

ロマンスカーVSEを買った [その他]

 昨日、Joshinから届いていたので、今日、確認のため運転しました。芸術品のような出来だと思います。家の近く(小田急江ノ島線)ではあまり見かけないので、本物もたまたま見かけると得した気分になります。あと、乗ったことないですし。ほかのロマンスカーは多分全部乗っていると思われるのですが。
 で、どこら辺がすごいかというと、ヘッドライト、テールライトです。

ヘッドライト、
re_DSC00523.jpg

テールライト、
re_DSC00522.jpg

 まあ、アナログの貧乏パワーパックなので、低速ではちらついていますが。
 そして、塗装がパールです。なんか、光の反射加減できらきら輝いています。
re_DSC00525.jpg
 で、説明書に室内灯を付けるときに貼る遮光シールなるものがついていました。
re_DSC00526.jpg
 ボディーの色合いのため明るいプラを使ったので、光漏れするらしいです。でも、これだけ出来が素晴らしいので、いいんじゃないのと思いました。
 あとは小田急のブランドマークの転写シートも付いていましたが、貼るのは難しそうなので、付ける予定はありません。

一応、動画(ダイヤモンドクロッシング八の字)です。


ダイヤモンドクロスで八の字自動運転 [S88]

 恐怖の平面交差のダイヤモンドクロッシングの八の字運転をS88でやってみました。前回のループ線もそうですが、DCCじゃないとできないものをやってみようとしております。
 レイアウト写真は以下です。(全景が写っていない・・・。)
re_DSC00521.jpg
 そして、うまく言った動画が以下です。

 京急はドレミファにしてあります。センサを二つだけでやっているので、恐ろしくトロトロと走らせております。傷ついたら立ち直れなさそうだし。
 動画の拡大版は以下です。こんなに危ない電車乗りたくないです。

 センサ位置は以下のようにしています。
八の字.png
 S88イベントスクリプトの分岐があるものを久しぶりに書いたのですが、そのクセを忘れていたため、相当苦労しました。
 センサ1側の処理で、「センサ6が踏まれたら、出発」としたくて、普通にWaitをおかずにセンサ6を見続けるループを書いたら、DesktopStationソフトがフリーズします。気づくまでに数時間かかりました。ラベルの名前にStopがあると止まるのか?とか、S88Jump命令だからか?とかいろいろやってましたが、そこらへんは原因として外れでした。
・電車は113系が9番(49161)、2100形が3番(49155)です。
・Flag0が全体のステートのフラグでFlag0=0の時センサ1側が113系、Flag0=1の時センサ1側が2100形です。
・Flag1はセンサ1が踏まれたときに1になり、イベントが終わったときに0にします。
・Flag6はセンサ6が踏まれたときに1になり、イベントが終わったときに0にします。
・113系、2100形はスピードなどが違うため、Speedコマンドで送るスピードを変えています。
 安全を考えるなら、もちろんどちらかの電車が横切り終わったらもう一方の電車を走らせはじめるという感じのスクリプトを書くべきですが、まあ、スクリプトで書くには複雑なのでやめて、113系が出発して10秒後に2100形が出発するという、そのうち絶対に事故になるようなスクリプトにしてあります。
 スクリプトはセンサ1側は以下です。

DESKTOPSTATION,SCRIPT,2013
SETFLAG,1,1,0
JUMP,113stop,0,0
JUMP,2100stop,0,1
EXIT,,,0
LABEL,113stop,,0
SPEED,49161,0,0
WAIT,30,,0
LABEL,113loop,,0
JUMP,113start,6,1
WAIT,5,,0
JUMP,113loop,9,0
LABEL,113start,,0
SPEED,49161,350,0
WAIT,50,,0
SETFLAG,0,1,0
SETFLAG,1,0,0
EXIT,,,0
LABEL,2100stop,,0
SPEED,49155,0,0
WAIT,30,,0
LABEL,2100loop,,0
JUMP,2100start,6,1
WAIT,5,,0
JUMP,2100loop,9,0
LABEL,2100start,,0
WAIT,100,,0
SPEED,49155,250,0
WAIT,50,,0
SETFLAG,0,0,0
SETFLAG,1,0,0
EXIT,,,0

センサ6側は以下です。

DESKTOPSTATION,SCRIPT,2013
SETFLAG,6,1,0
JUMP,113stop,0,1
JUMP,2100stop,0,0
EXIT,,,0
LABEL,113stop,,0
SPEED,49161,0,0
WAIT,30,,0
LABEL,113loop,,0
JUMP,113start,1,1
WAIT,5,,0
JUMP,113loop,9,0
LABEL,113start,,0
SPEED,49161,350,0
WAIT,50,,0
SETFLAG,6,0,0
EXIT,,,0
LABEL,2100stop,,0
SPEED,49155,0,0
WAIT,30,,0
LABEL,2100loop,,0
JUMP,2100start,1,1
WAIT,5,,0
JUMP,2100loop,9,0
LABEL,2100start,,0
WAIT,100,,0
SPEED,49155,250,0
WAIT,50,,0
SETFLAG,6,0,0
EXIT,,,0

 そのうち、もう少し安全な方法を考えたいなあとは思います。

ループ線をEM13とDN163K0dで試す。 [S88]

 ループ線を作って、スマイルデコーダのKeepAliveコンデンサをたくさん積んでいるから大丈夫と言いましたが、じゃあ普通のデコーダはだめなのか?を試すため、EM13、DN163K0d搭載の車両を使って確認しました。結果ですが、どちらも問題なく動きます。(つまりそんなに大きなコンデンサはいらない)。
 ラスカル様より、機関車とかだといいですねとコメントいただいたので、今回は汽車と機関車です。
 C11(EM13搭載)動画は以下。こっそり、蒸気音を出すSoundOptionも引っ張っています。(テンポがあっていませんが)


 EF66(DN163K0d搭載)動画は以下。LEDは白色に換装しています。


 ということで、Digitraxのデコーダもちゃんと動きます。

びんぼうでいいのを使ってDCC/MM2シールド動作確認 [DCC/MM2シールド]

 aitendoのびんぼうでいいのDCC/MM2シールドR5Dの動作確認をしました。私はずさんで大体一個は壊すので二個買ってます。
 まずは、組み立てました。500円のボードだけでは部品が全然足りなくて、16MHzの水晶や、対応部品パック、ATMEga328P-PUが必要です。Arduinoのブートローダはデコーダ開発ボードから書き込みました。
 で、半田付けはDIP部品なので大して難しくないつもりで始めましたが、はんだ付けをケチるようなランドの円(とてもはんだが載る部分が小さい)のせいで、とてもはんだ付けしにくかったです。また、水晶の近くに表面実装のコンデンサがあったりして、短絡したら嫌だなあとなんとなく気を使います。またSPIの6ピン端子はついていないので、ほかで調達する必要があります。と、結構、安いからと飛びついたら「安いのにはそれなりの理由がある」という当たり前の教訓を得ました。いつも、DCC関連の基板をYaasan様などから頒布いただいてはんだ付けしておりますが、それに比べるとかなりはんだ付けしにくいです。DIPなのにいちいちルーペで半田の盛りを確認しながらやることになりました。
 そして、完成しました、Lチカも成功して、いよいよDCC/MM2シールドと合体させてDCCの確認です。ここで、2個中一個に問題が起きました。DCジャックが入らない!
 左が対応部品パックに入っていた入らないDCジャック、右が秋月で買っていたArduinoで使うのと同じDCジャックです。中心部が太いような気がします。
re_DSC00519.jpg
 仕方ないので、基板を万力に固定して、半田をたくさん盛って、三か所同時に半田ごてで温めつつ外しました。で、盛ったはんだを取ろうとしましたが、はんだ吸い取り線でほとんどとれません・・・。少し前のあやのすけ様の記事を参考にと思ったら、ちょっと違いましたが、半田でふさがったスルーホールを1mmのピンバイスで穴を開けて、正しいDCジャックを強引に入れてはんだ付けしました。
 で、二個ともちゃんと動きました。(車両だけでS88は確認していませんが)
記念写真です。
re_DSC00520.jpg
 こんな苦労するなら、今度からはArduinoは完成品を買おうと思いました。

スマイルデコーダR4でのVVVFスケッチその後 [ds-DCCデコーダ]

 トレジャー様のBlogの信号機の記事で据え置き型動力車用デコーダをご紹介いただいています。信号機のセンサに方向を持たせるというアイディアは私には思いつきませんでした。
 据え置き型動力車用デコーダの元の、セラコン付け忘れた昇圧型ポイントデコーダですが、少し前のS88基板を注文した時にセラコンも乗るようなパターンの基板(K1)もついでに頼んで受け取っているのですが、そういえば、動作確認していません・・・。ほかに先にやることが多くて。
 それで、スマイルデコーダR4のVVVFスケッチその後ですが、いろいろとやっておぼろげにわかってきました。なんか二つ悪い現象があるようです。以下のどちらもDSmainR5+スマイルデコーダR4の組み合わせで起きます。デコーダ開発ボードでは起きません。

その1:CV47を5のドレミファインバータ京急にすると、その後、書き込みを受け付けなくなる。
その2:ほかのCVも通電させて何回も書き換えているとそのうち書けなくなる。通電をやめて少し経つとまた書き込めるようになる。

 それで、もともとのやあさん様のスケッチと比べると大きな違いは、Setup部分の処理の大きさで、元のDSDCCDecoderスケッチは、DCC.Init後にすぐにDCCループに入るのですが、VVVFスケッチはInit後に、VVVF部分の配列のコピー(京急だけ他よりも3倍長くかかる)とメロディーの初期化を行ってからループに入ります。
 波形などで確認したわけではないですが、DSmainR4に比べ、DSmainR5はダイレクトモード時の電源OffOn後のパケット送信のタイミングが早いのではないかなあと思いました。(DSDecR1の時も最初の頃にCV書けないのがArduinoProMiniのリセット時間の問題だったような気がするし)
 と考えると、Setup時に京急に切り替えた後は、Setupに時間がかかりDCCループに入るまでの時間が長くなり、ダイレクトモード時の書き込み?を取りこぼして、Ackが返ってこない(モーターが回らない)。ただし、その2については説明できません。通電時間が伸びると書き込めなくなるなら、温度でクロックが遅くなるのかなあとセラロック(ただしムラタ)の仕様を見てみましたが、温度上昇でクロックもちょっと早くなるようでした。まあ、タイミングが微妙にずれているに違いないとか勝手に推測しています。
 で、Setupの時間が怪しいので、Setup時のVVVF配列へのコピーをやめて、VVVF音を計算するところで毎回、Kasoku配列(ROMに入っているところ)を読むように変えたら、京急に変えたあとも、Writeを受け付けるようになりました。ということで、ここは正解っぽいです。
 ただし、Writeが受け付けないことも時々あるので、もう少しSetup部分を短くして確認していこうと思います。具体的にはPWMDacSynthの初期化をループ内のメロディー部分に移動しようかと思ってます。
 か、DCC.InitをSetupの一番後ろに持っていくかかなあと思います。
 ある程度、安定して動くようになったら公開いたします。

s88でループ線X2自動運転 [S88]

 さて、Endless trail様の記事で、S88基板が3時間ちゃんと動いたとのことです。私はそんなに長くやったことありませんでした。
 また、あそびっと様の記事で機回しというすごいデモをしています。
 (知っているかとは思いますが)どちらも、Yaasanさまのアンテナからリンクされています。
 本題ですが、少し前にオートリバースができるAR1が欲しいと書きましたが、今回はトミックスの完全選択式ポイントを使ったオートリバースレイアウトです。ジオラマでは結構実用的かとは思いますが、現実の線路ではこれ何に使うの?という感じのレイアウトです。
 レイアウトは以下です。
re_DSC00518.jpg
 配線はこうです。
re_DSC00517.jpg
 と写真ではよくわかりませんね・・・。
DSMainR5→ポイントデコーダー(ポイント2つを一系統に接続)→線路フィーダー
DSMainR5→S88Control基板→センサ1、センサ6
とつないでいます。
 で、レイアウトのセンサやポイントの位置はこうです。
2loop.png
 そして、二つのイベントを設定していますが、センサ1は以下。
センサA.png
 センサ6は以下。
センサB.png

 かなり、ずさんで、センサを踏んだらポイントを変えて、列車通過時のチャタリング対策で10秒間待ってからイベントを抜けるとしています。
 トミックスの完全選択式は選択したほうだけ電気を流しますので、リバース線内に列車が入ってセンサを踏むと、ポイントが変わってすべての信号が逆になります。が、DCCなので何事もなかったように走るというからくりです。スマイルデコーダに100uFのKeepAliveコンデンサをつないでいるので、少々の電源断では止まりません。
 ちょっと、プラレールっぽいので気に入っています。
以下が動画です。うれしくて2種類も撮っていますが、内容は同じです。
ループ線が思ったよりも大きくなってしまったので、横須賀線は最高速で走らせています。


スマイルデコーダR4を試す [ds-DCCデコーダ]

 本題の評価をしていて、関係ない重大な問題を見つけてしまいました。さて、どうしましょう。(後述)
 まず、スマイルデコーダR4の評価ですが、Endless trail様(MECY様)のBlogスマイラー様のBlogを参考にしながら始めました。
 まず、全景です。映っているのが裏面のような気がしますが、今回のスマイルデコーダの一番大切なBEMF回路が載っています。スケッチはまだ誰も作っていません・・・。
 re_DSC00513.jpg
 (昔、BEMF付き基板は頒布していただいているのですが、それ以前の製作済みストックがあるので、作っていないんです。)
 スマイラー様のBlogをまねて、スマイルコネクターのところのはんだを吸い取ってみました。そしたら吸い取りすぎました。
re_DSC00514.jpg
 仕方ないのでこっそり半田を盛りました。(吸い取った意味ないです)
re_DSC00515.jpg
 はんだを吸い取ってBD6231Fも搭載しました。
re_DSC00516.jpg
 Endless trail様のBlogで通常スケッチの動作はできていることが分かりますので、VVVFスケッチの動作でも確認しようと思いました。
 で、やったら、動きがおかしい・・・。Arudino1.6.6だから?Wikiに載せたスケッチがおかしい?などいろいろ試行錯誤してわかりました。
 DSmainR5(MCore20160116)でやると、書き込み自体は結構失敗しますが成功するときもあります。ただ、CV47を5(VVVF音を京急に設定)にした後はCV書き込みをすべて受け付けなくなります。(WriteのAckでモーターを回るのですが回らないのでWriteを受け付けていない。CV読み込みや速度指令などは普通に通ります)
 DSmainR4(R217)だと、問題なく書き込みでき、動作します。
 この現象は、私のスマイルデコーダーストック品(R3)でも、今回のスマイルデコーダR4でも起きますので、スマイルデコーダR3,R4のリビジョン違いの問題ではありません。(最初疑って、DCC信号入力のところの抵抗値が違う(104と473だったか)というのはありましたが関係ないようです)
 DSmainR5のファームか私のはんだ付け不良かVVVFスケッチの問題になります。CVの読み込み時のテンポが少々おかしいこともあったので、スケッチの部分は近々確認しようかと思います。 
 

S88 14port ケース付きの検討 [S88]

 びんぼうでいいのの16MHz水晶が無かったのだが、それだけで秋葉原まで行くのはしゃくなので、町田のサトー電気に初めて行きました。こちらなら自宅から往復1000円程度で行けるので、まあいいかという感じです。お店は買うものをお決めてから行くような感じのところで、店内で物色する雰囲気ではありませんでした。
 これで、びんぼうでいいのが作れる状態にはなりましたがまだ組み立てていません。ものが揃うと作ってもないのに安心してしまうのは、悪い兆候のような気がします。
 本題ですが、Yaasan様が探してきたケースに入れるようにS88 14port基板のアートワークを直していました。
 まず、回路図ですが、以下のように電源部分と各センサへの出力部分を変更しています。
PCDetector14_k1.PNG 
 電源部分はRJ-45、DCジャックのどちらからも逆流防止?のためにダイオードを介して、内部の+5Vに接続します。ダイオードの電圧低下がありますので、4.5Vぐらいになりますが、今回のマイコン16F1939は1.8V以上で動くと書いてあるし、クロックも16MHzなので問題なさそうです。気になるのは、VCCが4.5VでDSmainR5から来る信号が5Vとか出てるとVCC超えるので、それがどうかなというところでしょうか?
 回路を見るとわかりますが、DCジャックから電源で供給した場合、ダイオードで一方通行のため、接続した基板のみへの電源供給となりますので、デイジーチェーンした他のS88デコーダへは電源は供給されません。
 そして、2.54mmピッチや、ターミナルブロックを使いたいというご要望がありましたので、ケースの奥と手前からコネクタを出すようにパターンを作ってみました。一つの窓あたり6個まで置けません。奥にはRJ-45、DCジャックを付けますので、14ポート版は加工なしでは入りません。という感じで、まず、6Port分だけおいてみました。
アートワーク検討.png
 PWR LED,RUN LEDは奥に引っ越しました。多分、配線を適当に伸ばせば6port版は入りそうです。
 次に、14port 版の検討です。こちらは実際に作りますので、アートワークを必死でやり直してました。で、とりあえずできたのですが、アートワークするフリーソフトのMBEでDRC(デザインルールチェック)を行うと、3.5mmコネクタの長穴のところが全てErrorで引っかかるのですが、DRCのエラー個数が200個までしか設定できず、本当に回路上でミスっているところが隠れてしまい分かりません。
 ということで、プロジェクトごとついているのでmbe内の定数をいじって、エラーを2000個までさがすようしました。具体的には、下記のようにMAX_CHECK_LIMITを200から2000に変更してリビルドしているだけです。
mbeソース変更.png
 で、多分2000個まで見つけてくれるようになりました。下記のように900個ぐらい見つけてネットリストのチェックでも問題ないため、多分OKかなあと思っています。
 DRCチェック上限変更.png
 ケースは図面だけではよくわからないところがあるので、(四隅のねじ付近の干渉と、手前、奥の開口部の高さ)現物で確認してから基板を注文するのがいいかなあと思うので、この作業はここで一旦保留です。