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が正常に実行されたと考えて大丈夫かと。
S88センサー情報取得の動作確認
上述の「s88start」を実行することで、DSairのS88機能が動作し始めます。逆に言うと、このコマンドを実行しない限り、DSairはS88センサの情報取得を行わないようです。
具体的には、上画面内の下記表記が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センサ検知情報取得
今回のレイアウトですが、以前に記事にしていた以下のレイアウトです。
図内の検知区間①~⑦ が、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" と表示されてます。
車両を動かすと、"1" となっているセンサchも変化しているのが分かります。下図ではch4が検知している状態。
同様に、ch3が検知している状態。
ということで、DSbasicからS88センサ状態の取得ができていることを確認できました。
次は、S88センサ状態をもとに、車両を動かす命令を書いていきます。
つづく