VS-C1(PS2コントローラ互換)対応のモーションプログラム作成
本格的にモーションプログラムを組む前に、VS-C1(PS2コントローラ互換)対応は初めてなので、2つだけ動作テストの確認をしておく必要がありました。
・同時に2つのキーを押して、シフトキー機能が有効に動作するか
・ジョイスティックのアナログ値を活用してサーボをコントロールできるか
この2項目が確認できれば、今までと同じようにプログラムが組めます。
(1)シフトキーの実現
・L1、R1、L2、R2、L3、R3、SELECTはシフトキーに設定
・コマンド[A]とコマンド[B]で同時に送信して、データを取得
・但し、シフトキーを優先するので、コマンド[B]を先に実行
(2)ジョイスティックによるアナログコントロール
・上記のシフトキーを押して、ジョイスティックのアナログ値を取得する
・10〜190と56〜120の2種類の範囲を選択して取得する
・X方向、Y方向が操作感覚と合うように調整する
・各方向と範囲別にコマンドを送信してアナログ値を取得する
頭を回すために首のサーボをジョイスティックでコントロールできるようになったプログラムの例です。さすがに、赤外線リモコンではできない動作ですね。同じようにして上半身のサーボはすべてコントロールできるようにできますが、操作は慣れるまではかなり難しいですよ。腕が本体に引っかかるトラブルにならないように、IF文で制限しておいた方が得策でしょう。
'------ Sample(SELECT Key) ------
key70:
' Round head motion
'---- LCD Display ----
PRINT 12 'CLS
PRINT "Select (Key70)"
PRINT 13 'CR
PRINT 10 'LF
'--
PRINT "RX="
TXD ="C"
ETX 19200, TXD
GETC_4:
ERX 19200, RXD, GETC_4
PRINT FORMAT(RXD,DEC,3)
A = RXD
SERVO 10,A ; Servo of neck
WAIT
GOTO MAIN
'--------------------------
SELECTキーを押しながら操作するので、右側のジョイスティックのX方向のみを使って、アナログ値を取得します。アナログ値はMR-C3024用にした10〜190の値なので、そのままservoの変数で動かすことができます。なお、動作確認のLCD表示用のPRINT文がありますが、LCDがなくても無視されます。
・同時に2つのキーを押して、シフトキー機能が有効に動作するか
・ジョイスティックのアナログ値を活用してサーボをコントロールできるか
この2項目が確認できれば、今までと同じようにプログラムが組めます。
(1)シフトキーの実現
・L1、R1、L2、R2、L3、R3、SELECTはシフトキーに設定
・コマンド[A]とコマンド[B]で同時に送信して、データを取得
・但し、シフトキーを優先するので、コマンド[B]を先に実行
(2)ジョイスティックによるアナログコントロール
・上記のシフトキーを押して、ジョイスティックのアナログ値を取得する
・10〜190と56〜120の2種類の範囲を選択して取得する
・X方向、Y方向が操作感覚と合うように調整する
・各方向と範囲別にコマンドを送信してアナログ値を取得する
頭を回すために首のサーボをジョイスティックでコントロールできるようになったプログラムの例です。さすがに、赤外線リモコンではできない動作ですね。同じようにして上半身のサーボはすべてコントロールできるようにできますが、操作は慣れるまではかなり難しいですよ。腕が本体に引っかかるトラブルにならないように、IF文で制限しておいた方が得策でしょう。
'------ Sample(SELECT Key) ------
key70:
' Round head motion
'---- LCD Display ----
PRINT 12 'CLS
PRINT "Select (Key70)"
PRINT 13 'CR
PRINT 10 'LF
'--
PRINT "RX="
TXD ="C"
ETX 19200, TXD
GETC_4:
ERX 19200, RXD, GETC_4
PRINT FORMAT(RXD,DEC,3)
A = RXD
SERVO 10,A ; Servo of neck
WAIT
GOTO MAIN
'--------------------------
SELECTキーを押しながら操作するので、右側のジョイスティックのX方向のみを使って、アナログ値を取得します。アナログ値はMR-C3024用にした10〜190の値なので、そのままservoの変数で動かすことができます。なお、動作確認のLCD表示用のPRINT文がありますが、LCDがなくても無視されます。
- 2011.06.25 Saturday
- モーション
- comments(0)
- trackbacks(0)
- by takuo1