つじるの忘れんぼ鉄道

DCC自動運転で秋葉原にあった交通博物館のジオラマを目指すブログ

DSbasic 入門してみる(2)S88センサの動作確認

さて本題のDSbasicです。

基本的な情報は、以下のサイトを参照して勉強しましょう。

https://desktopstation.net/wiki/doku.php/dsair2_basic

http://powerele.sblo.jp/article/185553068.html

 

DSbasic の動作確認

そもそも、自分のDSair2環境で、DSbasicが正常に動作するか確認してみましょう。

まずはDSbasic画面を表示し、左側のコンソールに以下を入力しましょう。

screen(7)
s88start
print "s88 detecting test"
end

入力できたら、画面右側のブラウン管画面下部の再生ボタンをクリック。

下図のように「s88 detecting test」と表示されたら、DSbasicが正常に実行されたと考えて大丈夫かと。

f:id:tsujiru:20190430195313p:plain

 

S88センサー情報取得の動作確認

上述の「s88start」を実行することで、DSairのS88機能が動作し始めます。逆に言うと、このコマンドを実行しない限り、DSairはS88センサの情報取得を行わないようです。

f:id:tsujiru:20190430195316p:plain

具体的には、上画面内の下記表記がS88センサの状態を出力した箇所ですが、いつまでたっても全chがゼロのままです。

S88 data: (1-> ) 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0( <-16)

「s88start」を実行することで、上画面内のように検知しているセンサーchが "1" と検出されるようになりました。

ちなみに私が利用しているS88センサは、NuckyさんのS88-N Train Detector(16ch) です。

 

DSbasicでのS88センサ検知情報取得

今回のレイアウトですが、以前に記事にしていた以下のレイアウトです。

f:id:tsujiru:20180828233748p:plain

図内の検知区間①~⑦ が、S88 Detectorの ch1~7 に該当します。

で、これらのセンサーが正常に動作しているかを確認するため、以下のようなbasicを書いて実行しました。(2秒ごとにS88センサのch1~16状態を表示)

screen(7)
s88start
print "s88 detecting test"
FOR i = 0 TO 3000
  CLS
  FOR j=1 to 16
    print "s88(" + j + ")" + s88get(j)
  NEXT j
  sleep 2000
NEXT i
end

下図のように、センサ検知しているch5が "1" と表示されてます。

f:id:tsujiru:20190430195324p:plain

 

車両を動かすと、"1" となっているセンサchも変化しているのが分かります。下図ではch4が検知している状態。

f:id:tsujiru:20190430195328p:plain

 

同様に、ch3が検知している状態。

f:id:tsujiru:20190430195334p:plain

 

ということで、DSbasicからS88センサ状態の取得ができていることを確認できました。

次は、S88センサ状態をもとに、車両を動かす命令を書いていきます。

 

つづく