●TVゲーム系コントローラで 操作してみよう
はじめに・・・ ラジコン飛行機やヘリコプターなどで使用されている本格的な多チャンネル送信機は、用 途に合わせた詳細な設定により、微細な動作をさせる操作ができる高性能もので、上級レ ベルのラジコン愛好者が使用しており、ちょっと難しい操作技術が求められるものです。 TVゲームのコントローラ操作が、やりやすいのでは (^^? お手頃な道具として、大人だけでなく、小さな子供達でも取り扱える操作機器と思われま す身近にあるTVゲーム系のコントローラを無線送信機として試行することにしました。 (ヴイストン社)ロボット専用コントローラ V-controller3

TVゲームの標準的なデザインで、ロボット専用の無線コントローラが市販されていたの で、これを使用することにしました。  → 個人的には… 鉄人28号の正太郎が操作するリモコン装置が好きなのですが (^^;
・ ・ 受信機の仕様に合わせて、回路やPICのプログラムを作成しますので ・ ・ 色々と調べて、探りながら、段階的に試行することになりそうです。 ・
●コントローラ(送信機)です。 TVゲームのプレイステーションで使用するゲームパッド(PSpad)に類似しています。 ・ロボット専用無線コントローラ [VS-C3]

・使用周波数: 2.4GHz(周波数自動切替方式) ・通信距離 : 約10メートル ・電源   : 単4(3本)

 → 何やら、色々なボタンが・・・ どのように、使うのかしら (^^?
・ ・ ・ ・ ・
●コントローラ(送信機)からの操作情報を取得するレシーバ(受信機)です。 基板だけですが、とてもコンパクトに作られています。 ・VS-C3用受信モジュール「VS-RCV3」

 → 最下部の左側(CN1)が、コネクタ接続ピンです。・・・ 10ピン



●コネクタ接続ピンの配列(10ピン)です。

   @ : NC    A : NC  ○ B : DAT  ○ C : CMD  ○ D : SEL  ○ E : CLK   F : +5〜7V   G : NC  ○ H : +3V  ○ I : GND  → 使用ピン(○印)は、これで、いいのかしら (^^?
●レシーバ(受信機)単体では、壊しそうなのでケースに入れました。 フラットケーブルを外方向に向けて、コネクタ接続しました。

・コネクタに接続した10芯コネクタの必要なフラットケーブル色のです。  * ケーブル色の配列方向の順番が通常と逆になっていますが… ドンマイです。(^^;

 ・黒 :   @ : NC  ・白 :   A : NC  ・灰 : ○ B : DAT  ・紫 : ○ C : CMD  ・青 : ○ D : SEL  ・緑 : ○ E : CLK  ・黄 :  F : +5〜7V  ・橙 :   G : NC  ・赤 : ○ H : +3V  ・茶 : ○ I : GND
・ ・ ・ ペアリングが、まだなので …………… ・ ・
●初回起動時のみ ……… レシーバとコントローラ間のペアリング設定が必要です。  ■レシーバ(受信機) …………… [VS-RCV3] 側   ・電源をONする。   ・【 CONNECT 】ボタンを押下する。   ・赤LEDが点滅する。  ■コントローラ(送信機) ……… [VS-C3] 側   ・電源をONする。   ・【 ANALOG 】ボタンを押下する。   ・赤LEDと緑LEDが点滅する。  ■点滅している双方のLEDが、点灯に変われば、ペアリングは完了です。 *電源を切っても、一旦設定したペアリング設定は消去されないが、  非ペア双方の間で、新たにペアリングすれば、その設定が記憶される。
●5分間使用しなかった場合 ……… コントローラはスリープモードになります。 【 START 】ボタンを押下すれば、解除できる。
・ ・ ・ ・ ・
●水中設置環境下での受信機の接続確認です。 お手軽に、パッキン装備の弁当箱の中に受信機類を入れて、お風呂で確認します。

 → この程度の防水装備で、大丈夫かしら (^^?
●受信機類を、お風呂の水底に設置しました。

 → お風呂の深さレベルでは、接続確認OKです。(^^)
・ ・ ・ ・ ・
●レシーバ(受信機)とのインタフェースは・・・ 周辺機器接続用として、同期式シリアル通信規格のSPI通信で行います。 シフトレジスタ(8ビット)を使ってのクロス接続による入出力同時同期通信で、同じ基 板内で相手のデバイスと通信する方式ですが、SPIマスタとSPIスレーブ間を、単方 向のクロス接続信号線2本(SDO・SDI)とマスタが生成出力する単方向の同期クロック信 号線1本(SCK)を使用して、1ビット単位のデータをクロックに合わせて送受信する。

 → こんなイメージで理解しているが・・・ 大丈夫かしら (^^?
・ ・ ・ レシーバ「VS−RCV3」からの信号を確認します。 ・ ・
●使用PIC(16F819)のSPI通信ピン配置です。 【 PIC16F819 】(マスタモード)  ●:SPI通信ピン ___________________ ______________________ | V | | | LED(5)<-+ 1 RA2 PORTA(BIT2) | PORTA(BIT1) RA1 18 +->LED(6) LED(4)<-+ 2 RA3 PORTA(BIT3) | PORTA(BIT0) RA0 17 +->LED(7) LED(3)<-+ 3 RA4 PORTA(BIT4) | PORTA(BIT7) RA7 16 +->LED(8) -+ 4 RA5 PORTA(BIT5) | PORTA(BIT6) RA6 15 +->LED(9) 0V -+ 5 Vss (-) | (+) Vdd 14 +- 3〜5V+ LED(2)<-+ 6 RB0 PORTB(BIT0) | PORTB(BIT7) RB7 13 +->LED(10) DAT->シリアルデータ・イン >-+ 7 SDI●PORTB(BIT1) | PORTB(BIT6) RB6 12 +->LED(11) CMD<-シリアルデータ・アウト<-+ 8 SDO●PORTB(BIT2) | PORTB(BIT5)●RB5 11 +->スレーブセレクト-SS LED(1)<-+ 9 RB3 PORTB(BIT3) | PORTB(BIT4)●SCK 10 +->シリアルクロック-CLK | | +-------------------------------------------+
・ ・ ・ ・ ・



・ ・ ・ ・ ・
●レシーバ「VS−RCV3」の信号確認プログラムの作成です。  ・適正(形式OK)なDAT応答電文のみ、各区分を設定して該当のLEDを点灯させる。  ・同バイト内のボタン同時押し状態は、NG扱いにする。 ■ヘッダー情報 < 3バイト : バイト1(FF)、バイト2(82) OR (CE)、バイト3(5A) >  適正(ヘッダー情報OK)な電文のみ、取り込む。………NGの場合は、読み飛ばす。 ■ボタン情報(2バイト)…各区分を設定して、該当のLEDを点灯させる。 ■ステイック情報(バイト6・バイト9)…区分を設定して、該当のLEDを点灯させる。
@VSC3CHK1DEG.ASM ボタン系(デジタル信号)の確認 *LED点灯 ------------------------------------------------------------------------------   LED(1) PORTB(RB3ピン) … ヘッダー情報(1/3)   LED(2) PORTB(RB0ピン) … ヘッダー情報(2/3・デジタル)   LED(3) PORTA(RA4ピン) … ヘッダー情報(2/3・アナログ)   LED(4) PORTA(RA3ピン) … ヘッダー情報(3/3)   LED(5) PORTA(RA2ピン) … 1【ボタン4押下なし】   LED(6) PORTA(RA1ピン) … 2【前】   LED(7) PORTA(RA0ピン) … 3【後】   LED(8) PORTA(RA7ピン) … 4【ボタン5押下なし】   LED(9) PORTA(RA6ピン) … 5【左】   LED(10)PORTB(RB7ピン) … 6【右】   LED(11)PORTB(RB6ピン) … 7【上段】、8【下段】 ------------------------------------------------------------------------------
AVSC3CHK2ANA.ASM ステイック系(アナログ信号)の確認 *LED点灯 ・LED点灯(デジタル系)------------------------------------------------------ LED(1) PORTB(RB3ピン) … ヘッダー情報(2/3・デジタル時のみ点灯) LED(2) PORTB(RB0ピン) … 1【ボタン4押下なし】 LED(3) PORTA(RA4ピン) … 2【前】 LED(4) PORTA(RA3ピン) … 3【後】 LED(5) PORTA(RA2ピン) … 4【ボタン5押下なし】 LED(6) PORTA(RA1ピン) … 5【左】 LED(7) PORTA(RA0ピン) … 6【右】 LED(8) PORTA(RA7ピン) … 55【R1】 LED(9) PORTA(RA6ピン) … 56【L1】 LED(10)PORTB(RB7ピン) … 57【R2】 LED(11)PORTB(RB6ピン) … 58【L2】 ・LED点灯(アナログ系)------------------------------------------------------ LED(1)PORTB(RB3ピン) … ヘッダー情報(2/3・アナログ時のみ点灯) LED(2)PORTB(RB0ピン) … 91:000-061 ステイック【左】垂直軸 ↑ 前進(高速) LED(3)PORTA(RA4ピン) … 92:062-123 ステイック【左】垂直軸 ↑ 前進(低速) LED(4)PORTA(RA3ピン) … 93:124-131 ステイック【左】垂直軸 ● 停止(中央) LED(5)PORTA(RA2ピン) … 94:132-193 ステイック【左】垂直軸 ↓ 後進(低速) LED(6)PORTA(RA1ピン) … 95:194-255 ステイック【左】垂直軸 ↓ 後進(高速) LED(7)PORTA(RA0ピン) … 61:000-061 ステイック【右】水平軸←左(信地旋回) LED(8)PORTA(RA7ピン) … 62:062-123 ステイック【右】水平軸←左(旋回) LED(9)PORTA(RA6ピン) … 63:124-131 ステイック【右】水平軸●直進(中央) LED(10)PORTB(RB7ピン)… 64:132-193 ステイック【右】水平軸→右(旋回) LED(11)PORTB(RB6ピン)… 65:194-255 ステイック【右】水平軸→右(信地旋回) ------------------------------------------------------------------------------
BVSC3CHK3DMD.ASM DMD操作指示エリアの確認 *LED点灯 ・LED点灯(デジタル系)------------------------------------------------------ LED(1) PORTB(RB3ピン) … ヘッダー情報(2/3・デジタル時のみ点灯) LED(2) PORTB(RB0ピン) … 1【ボタン4押下なし】 LED(3) PORTA(RA4ピン) … 2【前】 LED(4) PORTA(RA3ピン) … 3【後】 LED(5) PORTA(RA2ピン) … 4【ボタン5押下なし】 LED(6) PORTA(RA1ピン) … 5【左】 LED(7) PORTA(RA0ピン) … 6【右】 LED(8) PORTA(RA7ピン) … 55【R1】 LED(9) PORTA(RA6ピン) … 56【L1】 LED(10)PORTB(RB7ピン) … 57【R2】 LED(11)PORTB(RB6ピン) … 58【L2】 ・LED点灯(アナログ系)---DMD操作指示エリア---【前進】フルパターン ------- LED(1) PORTB(RB3ピン) … @【停止】 LED(2) PORTB(RB0ピン) … A【前進】(直進) LED(3) PORTA(RA4ピン) … B【後進】(直進) LED(4) PORTA(RA3ピン) … C【前進】(左)旋回 <左右前進> LED(5) PORTA(RA2ピン) … D【後進】(左)旋回 <左右後進> LED(6) PORTA(RA1ピン) … E【前進】(右)旋回 <左右前進> LED(7) PORTA(RA0ピン) … F【後進】(右)旋回 <左右後進> LED(8) PORTA(RA7ピン) … G【前進】(左)信地旋回 LED(9) PORTA(RA6ピン) … I【前進】(右)信地旋回 LED(10)PORTB(RB7ピン) … K【前進】(左)超信地旋回 LED(11)PORTB(RB6ピン) … M【前進】(右)超信地旋回 ------------------------------------------------------------------------------
・ ・ ・ ・ ・
●実際にコントローラ(VS−C3)を操作しながらの信号確認なのですが………

 → レシーバ「VS−RCV3」の仕様(信号形態)が良く分からないです。(^^?
・ ・ なんとなく、分かってきたものが、ありますので……… ・ ・  整理しながら、まとめていきます。 ・
●【 PIC → レシーバ 】 CMD(コマンド)発行電文  ・SPIマスタで作成するCMD電文を、SPIスレーブへ送信する。  ・SPIスレーブは、受信したCMD電文より動作を開始する。 -------------------------------------------------------------------------------- ■デジタルモード(5バイト)  ・バイト1 : 80h ……… ヘッダー情報(1/3)  ・バイト2 : 42h ……… ヘッダー情報(2/3)  ・バイト3 : 00h ……… ヘッダー情報(3/3)  ・バイト4 : 00h ……… NUL  ・バイト5 : 00h ……… NUL -------------------------------------------------------------------------------- ■アナログモード(9バイト)  ・バイト1 : 80h ……… ヘッダー情報(1/3)  ・バイト2 : 42h ……… ヘッダー情報(2/3)  ・バイト3 : 00h ……… ヘッダー情報(3/3)  ・バイト4 : 00h ……… NUL  ・バイト5 : 00h ……… NUL  ・バイト6 : 00h ……… NUL  ・バイト7 : 00h ……… NUL  ・バイト8 : 00h ……… NUL  ・バイト9 : 00h ……… NUL --------------------------------------------------------------------------------
●【 レシーバ → PIC 】 DAT(データ)応答電文  ・SPIスレーブで作成するDAT電文で、このDAT電文をSPIマスタへ送信する。 -------------------------------------------------------------------------------- ■デジタルモード(5バイト)  ・バイト1 : FFh ……… ヘッダー情報(1/3)  ・バイト2 : 82h ……… ヘッダー情報(2/3)デジタルモード(82)  ・バイト3 : 5Ah ……… ヘッダー情報(3/3)  ・バイト4 : −−− ……… ボタン情報@【左側】エリア・【中央】エリア  ・バイト5 : −−− ……… ボタン情報A【右側】エリア・【前側】エリア -------------------------------------------------------------------------------- ■アナログモード(9バイト)  ・バイト1 : FFh ……… ヘッダー情報(1/3)  ・バイト2 : CEh ……… ヘッダー情報(2/3)アナログモード(CE)  ・バイト3 : 5Ah ……… ヘッダー情報(3/3)  ・バイト4 : −−− ……… ボタン情報@【左側】エリア・【中央】エリア  ・バイト5 : −−− ……… ボタン情報A【右側】エリア・【前側】エリア  ・バイト6 : −−− ……… ステイック情報@【右側】水平(左右)軸  ・バイト7 : −−− ……… ステイック情報A【右側】垂直(上下)軸  ・バイト8 : −−− ……… ステイック情報B【左側】水平(左右)軸  ・バイト9 : −−− ……… ステイック情報C【左側】垂直(上下)軸 --------------------------------------------------------------------------------
・ ・ ・ ・ ・
●レシーバ「VS−RCV3」との授受電文が、ある程度の確認ができましたが………

 → インタフェースのタイミング調整が微妙です。(^^;
・ ・ ・ ・ ・
●ボタン情報(2バイト) ------------------------------------------------------------------------------  ・バイト4 DAT応答電文 ボタン区分  ボタン    'FF' →  40  : 押下なし ………【左側】エリア・【中央】エリア    'FE' →  41  : ← ………………【左側】エリア    'FD' →  42  : ↓ ………………【左側】エリア    'FB' →  43  : → ………………【左側】エリア    'F7' →  44  : ↑ ………………【左側】エリア    'EF' →  45  : START ……【中央】エリア    'DF' →  46  : R3 …………… スティック【右】ボタン(アナログモード時のみ)    'BF' →  47  : L3 …………… スティック【左】ボタン(アナログモード時のみ)    '7F' →  48  : SELECT …【中央】エリア ------------------------------------------------------------------------------  ・バイト5 DAT応答電文 ボタン区分  ボタン    'FF' →  50  : 押下なし ………【右側】エリア・【前側】エリア    'FE' →  51  : □ ………………【右側】エリア    'FD' →  52  : X ………………【右側】エリア    'FB' →  53  : ○ ………………【右側】エリア    'F7' →  54  : △ ………………【右側】エリア    'EF' →  55  : R1 ……………【前側】エリア 上段(右)    'DF' →  56  : L1 ……………【前側】エリア 上段(左)    'BF' →  57  : R2 ……………【前側】エリア 下段(右)    '7F' →  58  : L2 ……………【前側】エリア 下段(左) ------------------------------------------------------------------------------
●ステイック情報(4バイト)  現状のLSBでは設定が難しいので、MSBへ変換(上下位ビットの入替)してから処理する。           DAT応答電文(MSBへ変換後)   ステイック情報 ------------------------------------------------------------------------------  ・バイト6 : 最端左(0)〜中央〜最端右(255) @【右側】水平(左右)軸  ・バイト7 : 最端上(0)〜中央〜最端下(255) A【右側】垂直(上下)軸  ・バイト8 : 最端左(0)〜中央〜最端右(255) B【左側】水平(左右)軸  ・バイト9 : 最端上(0)〜中央〜最端下(255) C【左側】垂直(上下)軸 ------------------------------------------------------------------------------
・ ・ ・ ・ ・
●データEEPROMに書き込んで、値をチェックしながら、動作確認しました。  DAT応答電文、主要な変数項目(汎用レジスタ)のカレント情報が対象です。 ・サンプル……… 実際に、アナログモード設定で、各種情報が書き込まれた状態。

【左】ステイックを、垂直方向(最上端で固定)に動かした状態でのデータEEPROM内容です。 ■【 レシーバ → PIC 】 DAT(データ)応答電文  通常の電文(5バイト) ------------------------------------------------------------------------------  ・00h番地:INSAV1 (受信電文セーブ1):FF 255 :ヘッダー情報(1/3)  ・01h番地:INSAV2 (受信電文セーブ2):CE 206 :ヘッダー情報(2/3)*CE:アナログモード  ・02h番地:INSAV3 (受信電文セーブ3):5A 90 :ヘッダー情報(3/3)  ・03h番地:INSAV4 (受信電文セーブ4):FF 255 :ボタン情報@【左側】エリア・【中央】エリア  ・04h番地:INSAV5 (受信電文セーブ5):FF 255 :ボタン情報A【右側】エリア・【前側】エリア ------------------------------------------------------------------------------  アナログモードのみ発生する電文(4バイト) ------------------------------------------------------------------------------  ・10h番地:INSAV6 (受信電文セーブ6):01 1 :ステイック情報@【右側】水平(左右)軸  ・11h番地:INSAV7 (受信電文セーブ7):FE 254 :ステイック情報A【右側】垂直(上下)軸  ・12h番地:INSAV8 (受信電文セーブ8):01 1 :ステイック情報B【左側】水平(左右)軸  ・13h番地:INSAV9 (受信電文セーブ9):00 0 :ステイック情報C【左側】垂直(上下)軸 ------------------------------------------------------------------------------ ■デジタルモードで、処理しやすいように区分化したもの  ボタン区分(2バイト)、オペレーション区分(3バイト) ------------------------------------------------------------------------------  ・20h番地:BOTKB4 (ボタン区分4) :28 40 :ボタン設定@…ボタン4押下なし  ・21h番地:BOTKB5 (ボタン区分5) :32 50 :ボタン設定A…ボタン5押下なし  ・22h番地:OPEKB4 (オペレーション区分4):01 1  :【左側】エリア…ボタン4押下なし  ・23h番地:OPEKB5 (オペレーション区分5):04 4 :【右側】エリア…ボタン5押下なし  ・24h番地:OPEKBF (オペレーション区分F):00 0  :【前側】エリア…ボタン前段下段押下なし ------------------------------------------------------------------------------ ■アナログモードで、処理しやすいように区分化したもの  ステイック情報(4バイト) ------------------------------------------------------------------------------  ・30h番地:STIKB6 (ステイック区分6) :3F 63 :@【右側】水平(左右)軸 最端左右  ・31h番地:STIKB7 (ステイック区分7) :00 0 :A【右側】垂直(上下)軸 最端上下  ・32h番地:STIKB8 (ステイック区分8) :00 0 :B【左側】水平(左右)軸 最端左右  ・33h番地:STIKB9 (ステイック区分9) :5B 91 :C【左側】垂直(上下)軸 最端上下 ------------------------------------------------------------------------------
・ ・ ・ ・ ・
●ロジックアナライザー(Logic4-Black)を使用して、キャプチャしたデータの分析です。 ■デジタルモード(5バイト)

■アナログモード(9バイト)


(感想) ・「0」と「1」の世界 ……… こんな細かいものは、とても苦手です。(^^; ・ロジックアナライザーでの分析では、まともに電文の送受信が成立している割合が、  少ない感じでしたので、更なるセッテイングが必要と思われます。  → しかしながら、何をしたら良いのか、この中途半端な状態でも、いいかも (^^;
・ ・ 用途によって、デジタルやアナログ時の何れかで、モード固定した方が、 ・ ・ 何かと操作しやすい感じがするので…… 可能なのか? ちょっと、試してみよう。 ・
●コントローラ [VS-C3]に対しての設定要領を確認するプログラムの作成です。 CVSC3CHK4DEGLOCK.ASM デジタルモードで固定する ------------------------------------------------------------------------------ 1.コンフィギュレーションモード <入る>エンター(80) …… CMD電文(5バイト)  ・バイト1 : 80h …… ヘッダー情報(1/3)  ・バイト2 : C2h …… ヘッダー情報(2/3)  ・バイト3 : 00h …… ヘッダー情報(3/3)  ・バイト4 : 80h …… コンフィギュレーションモード <入る>エンター(80)  ・バイト5 : 00h …… NUL  <応答 DAT電文> デジタルモード(5バイト)  ・バイト1 : FFh …… ヘッダー情報(1/3)  ・バイト2 : 82h …… ヘッダー情報(2/3)デジタルモード(82)  ・バイト3 : 5Ah …… ヘッダー情報(3/3)  ・バイト4 : −−−  ・バイト5 : −−− ------------------------------------------------------------------------------ 2.デジタルモード(00)固定 ……… セットモード&ロックコマンド(9バイト)  ・バイト1 : 80h …… ヘッダー情報(1/3)  ・バイト2 : 22h …… ヘッダー情報(2/3)  ・バイト3 : 00h …… ヘッダー情報(3/3)  ・バイト4 : 00h …… デジタルモード(00)  ・バイト5 : C0h …… モード固定、ボタンでの切替え不可(C0)、切替え可(以外)  ・バイト6 : 00h …… NUL  ・バイト7 : 00h …… NUL  ・バイト8 : 00h …… NUL  ・バイト9 : 00h …… NUL  <応答 DAT電文> (9バイト)  ・バイト1 : FFh …… ヘッダー情報(1/3)  ・バイト2 : CFh …… ヘッダー情報(2/3)  ・バイト3 : 5Ah …… ヘッダー情報(3/3)  ・バイト4 : −−−  ・バイト5 : −−−  ・バイト6 : −−−  ・バイト7 : −−−  ・バイト8 : −−−  ・バイト9 : −−− ------------------------------------------------------------------------------ 3.コンフィギュレーションモード <出る>イグジット(00) …… CMD電文(5バイト)  ・バイト1 : 80h …… ヘッダー情報(1/3)  ・バイト2 : C2h …… ヘッダー情報(2/3)  ・バイト3 : 00h …… ヘッダー情報(3/3)  ・バイト4 : 00h …… コンフィギュレーションモード <出る> イグジット(00)  ・バイト5 : 00h …… NUL  <応答 DAT電文> (5バイト)  ・バイト1 : FFh …… ヘッダー情報(1/3)  ・バイト2 : 82h …… ヘッダー情報(2/3)デジタルモード(82)  ・バイト3 : 5Ah …… ヘッダー情報(3/3)  ・バイト4 : −−−  ・バイト5 : −−− ------------------------------------------------------------------------------
DVSC3CHK5ANALOCK.ASM アナログモードで固定する ------------------------------------------------------------------------------ 1.コンフィギュレーションモード <入る>エンター(80) …… CMD電文(5バイト)  ・バイト1 : 80h …… ヘッダー情報(1/3)  ・バイト2 : C2h …… ヘッダー情報(2/3)  ・バイト3 : 00h …… ヘッダー情報(3/3)  ・バイト4 : 80h …… コンフィギュレーションモード <入る>エンター(80)  ・バイト5 : 00h …… NUL  <応答 DAT電文> (5バイト)  ・バイト1 : FFh …… ヘッダー情報(1/3)  ・バイト2 : 82h …… ヘッダー情報(2/3)デジタルモード(82)  ・バイト3 : 5Ah …… ヘッダー情報(3/3)  ・バイト4 : −−−  ・バイト5 : −−− ------------------------------------------------------------------------------ 2.アナログモード(80)固定 ……… セットモード&ロックコマンド(9バイト)  ・バイト1 : 80h …… ヘッダー情報(1/3)  ・バイト2 : 22h …… ヘッダー情報(2/3)  ・バイト3 : 00h …… ヘッダー情報(3/3)  ・バイト4 : 80h …… アナログモード(80)  ・バイト5 : C0h …… モード固定、ボタンでの切替え不可(C0)、切替え可(以外)  ・バイト6 : 00h …… NUL  ・バイト7 : 00h …… NUL  ・バイト8 : 00h …… NUL  ・バイト9 : 00h …… NUL  <応答 DAT電文> (9バイト)  ・バイト1 : FFh …… ヘッダー情報(1/3)  ・バイト2 : CFh …… ヘッダー情報(2/3)  ・バイト3 : 5Ah …… ヘッダー情報(3/3)  ・バイト4 : −−−  ・バイト5 : −−−  ・バイト6 : −−−  ・バイト7 : −−−  ・バイト8 : −−−  ・バイト9 : −−− ------------------------------------------------------------------------------ 3.コンフィギュレーションモード <出る>イグジット(00) …… CMD電文(9バイト)  ・バイト1 : 80h …… ヘッダー情報(1/3)  ・バイト2 : C2h …… ヘッダー情報(2/3)  ・バイト3 : 00h …… ヘッダー情報(3/3)  ・バイト4 : 00h …… コンフィギュレーションモード <出る> イグジット(00)  ・バイト5 : 00h …… NUL  ・バイト6 : 00h …… NUL  ・バイト7 : 00h …… NUL  ・バイト8 : 00h …… NUL  ・バイト9 : 00h …… NUL  <応答 DAT電文> (9バイト)  ・バイト1 : FFh …… ヘッダー情報(1/3)  ・バイト2 : CEh …… ヘッダー情報(2/3)アナログモード(CE)  ・バイト3 : 5Ah …… ヘッダー情報(3/3)  ・バイト4 : −−−  ・バイト5 : −−−  ・バイト6 : −−−  ・バイト7 : −−−  ・バイト8 : −−−  ・バイト9 : −−−
・ ・ アナログモードで固定した方が、何かと便利そうです。(^^) ・ ・ 更に、スティツクでの段系的な操作具合など、ちょっと、試してみよう。 ・
●コントローラ [VS-C3]に対してアナログモード固定下で確認するプログラムの作成です。 EVSC3CHK6CYOUSIN.ASM スティツク操作DMD(超信地旋回あり)の確認 FVSC3CHK7SHINCHI.ASM スティツク操作DMD(超信地旋回なし)の確認 -------------------------------------------------------------------------------- ステイック区分 ( ●:中央位置・ニュートラル ) -------------------------------------------------------------------------------- バイト9 -- 区分(STIKB9)= 91 : 000-127 ステイック【左】垂直軸 ↑ 前進 バイト9 -- 区分(STIKB9)= 92 : 128 ステイック【左】垂直軸 ● 停止 バイト9 -- 区分(STIKB9)= 93 : 129-255 ステイック【左】垂直軸 ↓ 後進 -------------------------------------------------------------------------------- バイト6 -- 区分(STIKB6)= 61 : 000 ステイック【右】水平軸 ← 左(信地旋回) バイト6 -- 区分(STIKB6)= 62 : 001-127 ステイック【右】水平軸 ← 左(旋回) バイト6 -- 区分(STIKB6)= 63 : 128 ステイック【右】水平軸 ● 直進 (中央) バイト6 -- 区分(STIKB6)= 64 : 129-254 ステイック【右】水平軸 → 右(旋回) バイト6 -- 区分(STIKB6)= 65 : 255 ステイック【右】水平軸 → 右(信地旋回) -------------------------------------------------------------------------------- LED表示(スティツク系) -------------------------------------------------------------------------------- LED(1) PORTB(RB3ピン) … @【停止】 LED(2) PORTB(RB0ピン) … A【前進】(直進) LED(3) PORTA(RA4ピン) … B【後進】(直進) LED(4) PORTA(RA3ピン) … C【前進】(左)旋回 <左右前進> LED(5) PORTA(RA2ピン) … D【後進】(左)旋回 <左右後進> LED(6) PORTA(RA1ピン) … E【前進】(右)旋回 <左右前進> LED(7) PORTA(RA0ピン) … F【後進】(右)旋回 <左右後進> LED(8) PORTA(RA7ピン) … G【前進】(左)信地旋回 LED(9) PORTA(RA6ピン) … H【後進】(左)信地旋回 LED(10)PORTB(RB7ピン) … I【前進】(右)信地旋回 LED(11)PORTB(RB6ピン) … J【後進】(右)信地旋回 -------------------------------------------------------------------------------- GVSC3CHK8SHINCHI.ASM スティツク操作DMD(超信地旋回なし)の確認 LED表示(ボタン類) -------------------------------------------------------------------------------- LED(1) PORTB(RB3ピン) … ヘッダー情報(2/3・デジタル) LED(2) PORTB(RB0ピン) … 1【ボタン4押下なし】 LED(3) PORTA(RA4ピン) … 2【前】 LED(4) PORTA(RA3ピン) … 3【後】 LED(5) PORTA(RA2ピン) … 4【ボタン5押下なし】 LED(6) PORTA(RA1ピン) … 5【左】 LED(7) PORTA(RA0ピン) … 6【右】 LED(8) PORTA(RA7ピン) … 55【R1】 LED(9) PORTA(RA6ピン) … 56【L1】 LED(10)PORTB(RB7ピン) … 57【R2】 LED(11)PORTB(RB6ピン) … 58【L2】 --------------------------------------------------------------------------------
スティツクでのDMD(超信地旋回あり)多段数系の操作は、難しいので……… 少段数系のシンプルな操作の方が適している感じがします。
・ ・ ・ ・ ・
(感想) ・レシーバ「VS−RCV3」の信号は、PS2のワイヤレスコントローラー(DUAL  SHOCK2)と類似しているようですが、試行錯誤で進める作業の繰り返しでした。  → なんとなく、接続ができた状態で、紙一重で動いてくれた感じです。 (^^; ・コントローラ [VS-C3]に対して、アナログモードでプログラム固定した方が良いです。  → 取り扱うチャンネル数が多く、スティツクでの段系的な操作が可能です。(^^)
・ ・ ・ 数年、使用していますと「 がたつき 」が ……… 荒っぽい、使い方なのかしら ? ・ ・
●コントローラのニュートラル操作で、スティック位置が「ピタッ」と決まらないです。 スティックの中央位置への戻りが不安定になる事象が発生しました。経年劣化による不具 合のようですが、適切な修理は難しく、部品交換の必要性を感じますが、様子を見ます。 ■要因を想定しますと ……… ・ニュートラル ( スティック) 位置の遊び範囲幅が、大きくなった感じがします。 ・中心から外れた位置で、ニュートラル決め( 設定 )されているようです。 ・通常は、ボタンとスティックに触れずに、コントローラの電源 ( ON )しますので、  特に、気にしなくても大丈夫ですが、コントローラの電源 ( ON )する時のボタンと  スティックの状態が、ニュートラル位置として決定され、自動的に設定される感じがし  ます。 … この特性により、ニュートラル位置を意識して決めることができそうです。
・ ・ ・ ・ ・