« ROBOBASIC講座(5/10*4の答え) | トップページ | ROBOBASIC講座(New基本モーション) »

ROBOBASIC講座(ETX, ERX)

【ETX】
 ETXポートを利用して RS232信号を送信する。
 構文:ETX [ポート速度], [送信データ]

【ERX】
    ERXポートを利用して RS232信号を受信する。
 構文:ERX [ポート速度], [受信変数], [受信エラー処理ラベル]


ADSET="C"
ETX 19200,ADSET
ADGET1:
ERX 19200,ADR2,ADGET1


ROBONOVA−1を簡単無線操縦!
ワイヤレスコントローラ対応改造パーツセット

というのが販売されていますが、

夢現工房さんの
ダウンロードのページに、

Template Plogram For GameCon(Version1.09 20070515).bas

という名前の、そのワイヤレスコントローラの為のテンプレートがあります。以前、このテンプレートのMAINループをフローチャートにしてみましたが、今回は、このテンプレートの、ETX,ERXを見てみることにしましょう。

このワイヤレスコントローラーのシステムでは、キーパッドやアナログスティックの状態、およびコントローラーの振動を、送信コマンドのETXを使ってコントロールします。ETXによって送信するデータは以下の表のような意味を持ちます。

Pagesscreensnapz012_2

例えば、右のアナログスティックの左右の傾け具合のデータを取得したいばあいは、"C"をETXコマンド使って送信すればいいことになります。

例:ETX 19200,"C"

ETXコマンドを実行すると、それに対応したデータをコントローラが送り返してきますので、ERXコマンドでそのデータを待ち受けます。

例:COUNTER=0
  MACHI_LOOP:
  COUNTER=COUNTER+1
  IF COUNTER>1000 THEN GOTO MAIN
  ERX 19200, KOTAE, MACHI_LOOP

その待ち受け方は上の様になります。この例の場合、送られてきたデータは、2つめの引数のKOTAEという変数に入ります。が、しかし、データがまだ送られてきてなかった場合は、3番目の引数のMACHI_LOOPにジャンプする仕組みになっています。これにより繰り返しERXコマンドを実行することができます。あと、うまく行くのか試していませんが、何らかの不具合により、データが得られない場合のための、ループを抜けるコードを入れてもいいかもしれませんね。

さて、前回、"A", "B"で得られるデジタルデータを調べたので、今回は、"C","D","E","F"で得られるアナログスティックの割り付けを図にしてみました。この図は「#?」が最終的に割り付けられた番号で、呼ばれるルーチン名をその下に書いてあります。

ON PSDT GOTO MAIN,key1ad,key2ad,key3ad,key4ad,key15,....

左のスティックは1の位に、右のスティックは10の位に割り付けられており、ON...GOTOを見てみると、左右のアナログスティックを同時に動かした場合のルーチンは何も割り付けられておらず、何もしないでMAINに戻るようです。さらに、右のスティックを斜めに倒した場合の、key50,60,70,80のルーチンは「GOTO MAIN」になっているようです。

Gamecon2


|

« ROBOBASIC講座(5/10*4の答え) | トップページ | ROBOBASIC講座(New基本モーション) »

ROBOBASIC講座」カテゴリの記事

コメント

今日も寒いですね。
此方奈良では雪がちらついています。

無現工房では説明の無い、
ETX・ERXの解説、参考になります。
アナログスティックの詳細な表も、
大変参考になります。

JYRO無しで連続歩行も安定し、
この解説で、また楽しみが増えました。
有難う御座いました。

投稿: shirasu | 2008年3月 5日 (水) 13時55分

こめんとありがとうございます。
雪は降ってないですが横浜も寒いです。それより昨日から花粉症の薬を飲み始めましたので、眠気との戦いです

shirasuさん、ちゃくちゃくと進んでいますね。私はいつになったらロボットを動かせる様になるのやら。。。

投稿: micono | 2008年3月 5日 (水) 19時26分

何時もお世話になっています。
左アナログスティックの、
前後左右の動きはこの通りですが、
斜めに倒した時は、Key15.16.17.18の
動きをしません。
前後左右の動きです。
斜めに倒した時、
旋回して一連の動きにしたいのです。
プログラムの何処を変えれば良いでしょうか。

投稿: shirasu | 2008年3月 6日 (木) 13時29分

こんばんは

ここでは書ききれないし、
実際に、それでいいのか解らなかったので、
直接メールを差し上げましたので、
とりあえず、そちらを試してみて下さい。

投稿: micono | 2008年3月 6日 (木) 20時34分

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: ROBOBASIC講座(ETX, ERX):

« ROBOBASIC講座(5/10*4の答え) | トップページ | ROBOBASIC講座(New基本モーション) »