無料ブログはココログ

« 2020年4月 | トップページ | 2020年6月 »

2020年5月

2020年5月24日 (日)

自動運転の応用例2

部品の行方2

AliExpressに注文した部品で、ようやくストレートタイプのユーロコネクタだけが届きました。

15edgka

自動信号機

スケッチが充実しないと自動運転基板を頒布する機運にならないので、Nuckyさんの日本型信号機のスケッチを作ってみました。久しぶりなので復習します。

アドレスの割り振り

デコーダアドレス 2 3 4
方向 T C T C T C
出発信号    
閉塞信号    
場内信号    

手持ちの信号機は4現示ですが、デコーダを3現示に設定して現示条件を割り振りました。条件1をデコーダアドレスとし、条件2(黄、青)は前方の信号機のデコーダアドレスを設定します。
AdrPair型配列に割り振るアドレスを格納して、配列インデックスを引数に赤信号と青信号の関数を呼び出します。センサーを踏んだ信号機を赤に、前方の信号機を青に変えます。その先の信号機は条件アドレスの割り振りに従い自動的に黄色に変わります。

Photo_20200524181103 Photo_20200524181101 Photo_20200524181102

エンドレス運転を想定してますが、都合により直線線路で撮影しました。

 

信号機制御スケッチ

// Decoder
struct AdrPair {
word Pri;
word Sec;
};
AdrPair AccSig[] = {
{2, 3},
{3, 4},
{4, 2},
};
void processJob()
{
switch(gProcessState) {
case 1:
getSensor(1);
if(gOnChannel == 1) {
SignalRed(0);
SignalGreen(1);
gProcessState = 2;
}
break;
case 2:
getSensor(2);
if(gOnChannel == 2) {
SignalRed(1);
SignalGreen(2);
gProcessState = 3;
}
break;
case 3:
getSensor(3);
if(gOnChannel == 3) {
SignalRed(2);
SignalGreen(0);
gProcessState = 1;
}
break;
}
}

2020年5月17日 (日)

ノラミント缶3

部品の行方

2ヵ月前にAliexpressに注文したミント缶IV用の部品は未だに行方不明、基板は深圳に留まったまま動く気配がありません。なのでノラミント缶の続きです。

C-Type手作りDCCコントローラ2

アナログ車輛の自動運転でもターンアウトや信号機を使いたいのでアナログとデジタル同時出力のコントローラを妄想しています。

Test

 

ポートを選択

アナログトラックはPWM周波数をTimer1で31KHzにするためD9,D10を使います。なのでデジタルトラックはDSCoreを書き変えてD4,D5を選択して、Arduino nanoでスケッチを動かしてみました。

Packet

回路図

アナログは小型車両だけなのでTB67H450、デジタルはターンアウトデコーダを考慮してTB6643KQを使います。アナログ運転なのでファンクションボタンは無要。基板を作る予定はないので完成度を考えない適当な発想です。

Sch Brd

 

2020年5月 4日 (月)

自動運転の応用例

オートリバース

「おうちにいよう週間」で往復するだけの自動運転に飽きてきました。エンドレス運転も退屈なので、否定的に見ていたオートリバース線を試しました。鉄道模型ならではの世界でそれも良いかなと思います。NuckyさんのAutomatic Reverse Controllerが完成したようですが、私は外部機器を使わずトミックスの両トラック選択式ポイントによる安直な方法です。

選択式ポイント

完全選択式と言われただけではオートリバース線の動きまで直ぐには頭に浮かばないのでfujigaya2さんの記事を見直しておさらいしました。

Str Div

図解してみると、STRからDIVに反転するとループ内の極性が反転しますが、極性が変わらないポイント部とは両極選択式のギャップで切り離されてショートしないことが分かりました。
NEM651のスマイルデコーダが底を突いてからは専らアナログモードでの運転です。当然ですがポイント切換えと同時に逆走します。DCCの利点を再確認する結果となりました。

Reverce2

オートリバーススケッチ

センサーは2か所。CH4を踏んだらポイントを切換えます。アナログモードでは一旦停車させて、進行方向を切換えて発車させます。このままではDCCで不都合なのでDSパラメータにアナログモードを追加しました。

  switch(gProcessState) {
case 2:
// リバースセンサーチェック
  if(sensor.getSensorState(4) != 0) {
if(ds.AnalogMode) {
gProcessState = 3; // 減速
} else {
gProcessState = 4; // Turnout
}
}
break;
case 3: // 減速
processDecc();
if(gCurSpeed == 0) {
processDir();
gProcessState = 4;
}
break;
case 4: // Turnout
ds.processIICsend(gAccAddress1, CMD_ACC, STR);
break;
}

残念ながらアナログモードなのでターンアウトは手動です。終点にブレーキ音、発車ベル、汽笛のMP3を用意しましたがペンディングです。ターンアウトの操作を放置するとリバース線路で往復運転しますが、直線の往復に比べて一寸だけ楽しいです。

 

ノラミント缶2

C-Type手作りDCCコントローラ


ミント缶サイズではなく、秋月のC-Type基板サイズなので仮ですが名称変更です。Arduino nanoを使うので試作の自動運転基板にスケッチを書き込んで、ロジックレベルのDCCパケットが出る事を確かめました。ボタンは省略してF0、F1だけです。


Test_nano


アドレス設定


ミント缶IVのアドレス登録機能を作り変えてDesktop Station Softでアドレスを設定しました。CVモードを使ってデコーダ書き込みも出来そうです。SMT変換基板でACS711を実装すれば実際のCV読み出しも出来ると思います。


Mintcan_nano_cv


 

« 2020年4月 | トップページ | 2020年6月 »