鉄道模型_With_PC

PC で制御する

TOP16 を使ってみた.TOP16
VB で書くことが出来るのも採用理由

 

VBでATOMを見る こういうのも作ってみた.その時のVB設定

 

こんなのもあるが,やたら値が高い(チャンネル数は多い)
https://www.dacs-giken.co.jp/d25KRCP.html

これらも参考になった

Nゲージの模型をラズパイで動かす “らずてつ”その1――鉄道模型とラズパイをつなぐ
https://www.itmedia.co.jp/news/articles/2111/29/news008.html

Nゲージの模型をラズパイで動かす “らずてつ”その2――制御の準備
https://www.itmedia.co.jp/news/articles/2112/03/news001.html

Nゲージの模型をラズパイで動かす “らずてつ”その3――ポイント切り替えを操作する
https://www.itmedia.co.jp/news/articles/2112/04/news001.html

 

TOP16 のサイトを参考にして,動かすことをやってみた.
これは サイトを参考にするだけで,(VBで)(ちょっと大変だが↓)何とか動いた.

TOP16 , Top16DIOのインストール

 

センサーで検知できるかやってみた.以下を参考にしてVBのサンプルコードをいじっただけでは,うまく検知できない...

★このサイトが分かりやすい

http://rtmrw.parallel.jp/auto-system/index.html
    卓上レイアウトで楽しもう TCSセンサの信号出力

 

セクションに車両がいる事を電流で検知できるかやってみた.
フォトカップラーより前はCQ出版の以下を参考にした.

電子工作/鉄道模型/鉄道模型と電子工作_p190-195.pdf

回路は 図4-11 のものを採用した

 

オペアンプ,フォトカップラーの勉強が入用だった.

オペアンプ はCQ出版の資料に基づいて LM358Nを使用した.
↓↓↓↓↓

 

とりあえず手書き

 

フォトカップラーより後は上記(卓上レイアウトで楽しもう TCSセンサの信号出力)を参考にした.

 

 

フォトカップラー については下記.
↓↓↓↓↓

 

フォトカプラ→TOP16 はこうなる
↓↓↓↓↓

 

 

回路の作図には Fritzing を導入した.Fritzing

できた配線は↓↓↓↓↓(BreadBoard用)
電子工作/鉄道模型/TOP16_InputFrom_BSs_101_プリント基板テスト用.fzz

 

 

 

 

プリント基板(ユニバーサルボード)に構成した

 

センサーの挟み方(概念図)

レールからの戻り回路にセンサーをはさんで電圧降下を検知する

  電子工作/鉄道模型/センサーの挟み方(概念図).pdf

センサーの挟み方(プレッドボード上だとこんなる???)

 

Nゲージの電源から出た「赤」はそのまま各セクションのレールへ繋ぐ
Nゲージの戻り側「白」にセンサー(上記で作ったもの)を挟む

「黄」は TOP16 から供給される 5V

 

 

 

8枚作って,分配回路を作った

ダイオードを入れた

黄色TOP16の 5V から ダイオード経由で 各ボードの 5 V へ
...下記■問題があったので,この方法を試みたらOKだった

↓ もうすこし綺麗に書き直し
分配回路-センサー-TOP16結線図(

 

■問題

DC を TOP16 から給電すると,センサー経由で STOP 時は動いてしまう
DC を 直接給電すれば センサー経由でも STOP 時は動かない(センサー用(LED部分))の 5V はあっても大丈夫)

給電用とセンサー用の TOP16 を分離してみよう--NG

  検知抵抗を外すと止まる?

アースをきちんととってみる?

電池からの(低い電圧で)

■とりあえずこんな感じで疑似解決 - この方法を使わなくても,ダイオードで解決した

SECTION1 - SECTION2 - SECTION3 - SECTION4

列車の初期位置は 1

SECTION(1).status = "CLOSED"
SECTION(2).status = "N/A"
SECTION(3).status = "OPEN"
SECTION(4).status = "N/A"



SECTION(1).POWER = "OFF"
SECTION(2).POWER = "OFF"
SECTION(3).POWER = "OFF"
SECTION(4).POWER = "OFF"

から開始

SECTION(1).POWER を ON にして開始.
SECTION(3)も ON-OFF する必要が無いので ON
--Section(2)を ON にするときに ON にした方が誤動作が少なそう

SECTION(1).POWER = "ON"
SECTION(2).POWER = "OFF"
SECTION(3).POWER = "ON"
SECTION(4).POWER = "OFF"

SECTION(1)に列車が居なくなって
SECTION(1).status = "OPEN"
になったら

SECTION(2).POWER = "ON"

SECTION(3)に列車が移って
SECTION(3).status = "CLOSED"
になったら
SECTION(2).POWER = "OFF"

コードはこんな感じ?

Public Class Form1

Public Structure SECTION
Public STATUS As String
Public POWER As String
End Structure

Dim SECTIONs(3) As SECTION
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub


Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
SECTIONs(0).STATUS = "ok"

End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
MessageBox.Show(SECTIONs(0).STATUS)
End Sub

End Class