SSブログ

DCC/MM2基板をジョイスティックで操作(SerialPortのところ) [ジョイスティック]

 次に(2)DCC/MM2基板への通信(COMポート制御)だが、まず、DesktopStationのDCC/MM2基板への通信は、「ログ」タブをみると、私が使いそうなのは、
-------------------------
setPing()・・・はじめに通信ができているかの確認
setPower(1)・・・DCC/MM2基板から線路へ電源供給On
setPower(0)・・・DCC/MM2基板から線路へ電源供給Off
setLocoSpeed(49152+電車番号,スピード,2)・・・スピード設定。DCC128で決め打ち。
setLocoDirection(49152+電車番号,1 or 2)・・・電車の方向設定+停止か?
-------------------------
ということがわかった。
 C#のCOMポート制御は金澤ソフト設計さんのページを参考にした。
 シリアルポートをフォームに貼り付ければ大体完成だが、Readだけイベントをとらないといけないので、そこの部分については、説明を読むよりも、金澤ソフト設計さんのシリアルポートのサンプルプログラム自体をダウンロードして見たほうが早い。
 で、デバッグしていて気づいたのだが、(DesktopStationのページには書いてあったが)いままで、適当にAruduino1.6.0でDCC/MM2基板をコンパイルして使っていたのだが、なんか動作がおかしい・・・。
 方向が変わらなかったり、2,3個の命令が立て続けに出たりと。
 でAruduino1.0.6にしたらちゃんと動くようになった。怖い怖い。
 で、動かした動画が以下。


作ったプロジェクトはここ
うまくいけば(DirectXのランタイムなどが入っていればか?)
\directinput_test2\directinput_test\bin\Debug\directinput_test.exe
をダブルクリックすれば動く。
(1)ソフトのつくりは適当なので、ジョイスティックを2つつなげておく。
実行したら、画面は以下のとおりで、
di_test説明.jpg
(2)まず、COMをAruduinoがつながっているポートにあわせる。写真では”COM4"
(3)電車の番号(loco_no)も合わせておく。写真では4と3。
制御は決め打ちでDCC128になっている。
(4)Openボタンを押すとジョイスティック、Aruduinoへ接続される。
右側がSerialPortの通信内容でたぶん最初の通信はSerialReadにエラーが戻ってくる。
(5)次にPowerOnボタンを押す。DCC/MM2基板から線路に電源が供給される。
(6)あとはジョイスティックの1から4のボタンを使って二人で遊べる。
(7)終了はソフト右上の×ボタンを押す。DCC/MM2基板の線路への電源供給がとまる。

nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0