●DMD( VS−RCV3用 ) 実装@ 信地旋回版
はじめに・・・ ロボット専用コントローラ [VS-C3]で、無線操作する目途が立ちましたので、試しに、 「TBV型メーサー 66式殺獣光線砲タンク」に、DMD(VS−RCV3 レシーバ用) 試行プログラムを組み込んで実践する事にしました。…… ちゃんと、動くかな (^^? 【現状の基板】

 → この基板スペースに、電子部品類が収納できるかしら (^^?
・ ・ ・ ・ ・
●使用PIC(16F819)のSPI通信ピン配置です。 【 PIC16F819 】(マスタモード)  ●:SPI通信ピン ___________________ _____________________ | V | | | 【左】MP4212G<-+ 1 RA2 PORTA(BIT2) | PORTA(BIT1) RA1 18 +->【右】MP4212A 【左】MP4212E<-+ 2 RA3 PORTA(BIT3) | PORTA(BIT0) RA0 17 +->【右】MP4212C 【左】MP4212C<-+ 3 RA4 PORTA(BIT4) | PORTA(BIT7) RA7 16 +->【右】MP4212E -+ 4 RA5 PORTA(BIT5) | PORTA(BIT6) RA6 15 +->【右】MP4212G 0V -+ 5 Vss (-) | (+) Vdd 14 +- 3〜5V+ 【左】MP4212A<-+ 6 RB0 PORTB(BIT0) | PORTB(BIT7) RB7 13 +- DAT->シリアルデータ・イン >-+ 7 SDI●PORTB(BIT1) | PORTB(BIT6) RB6 12 +- CMD<-シリアルデータ・アウト<-+ 8 SDO●PORTB(BIT2) | PORTB(BIT5)●RB5 11 +->スレーブセレクト-SS -+ 9 RB3 PORTB(BIT3) | PORTB(BIT4)●SCK 10 +->シリアルクロック-CLK | | +------------------------------------------+
・ ・ ・ ・ ・
●配線図です。……… クリックすれば、拡大します。
・ ・ ・ ロボット専用コントローラ [VS-C3]からの操作方法です。 ・ ・
●ステイックとボタンの使い方です。 ------------------------------------------------------------------------------  ・アクセル・ギヤ ………………【左側】ステイック    ・前 進    : 上方向    ・停 止    : 中央 【 ニュートラル 】    ・後 進    : 下方向 ------------------------------------------------------------------------------  ・ステアリング …………………【右側】ステイック    ・(右)信地旋回: 右方向 (最右端)    ・(右)旋回  : 右方向    ・直 進    : 中央 【 ニュートラル 】    ・(左)旋回  : 左方向    ・(左)信地旋回: 左方向 (最左端) ------------------------------------------------------------------------------  ・自動走行 ………………………【前側】ボタン    ・前進【自動】(ON) : L1 ボタン……(左)    ・後進【自動】(ON) : L2 ボタン……(左)    ・走行【自動】(OFF): R1 ボタン……(右) OR R2 ボタン……(右) ------------------------------------------------------------------------------  *プログラムからの設定により、強制的にアナログモードで固定します。
●ステイック操作


・ ・ ・ 使用する ボタン情報(2バイト)、 ステイック情報(4バイト)です。 ・ ・
●ボタン情報(2バイト) ------------------------------------------------------------------------------  ・バイト4: 未使用 ………【左側】エリア・【中央】エリア ------------------------------------------------------------------------------  ・バイト5 DAT応答電文 ボタン区分  ボタン    'FF' →  50  : 押下なし ………【右側】エリア・【前側】エリア    'EF' →  55  : R1 ……………【前側】エリア 上段(右)    'DF' →  56  : L1 ……………【前側】エリア 上段(左)    'BF' →  57  : R2 ……………【前側】エリア 下段(右)    '7F' →  58  : L2 ……………【前側】エリア 下段(左) ------------------------------------------------------------------------------
●ステイック情報(4バイト)  現状のLSBでは設定が難しいので、MSBへ変換(上下位ビットの入替)してから処理する。           DAT応答電文(MSBへ変換後)   ステイック情報 ------------------------------------------------------------------------------  ・バイト6 : 最左端(0)〜中央〜最右端(255) @【右側】水平(左右)軸  ・バイト7 : 未使用  ・バイト8 : 未使用  ・バイト9 : 最上端(0)〜中央〜最下端(255) C【左側】垂直(上下)軸 ------------------------------------------------------------------------------
・ ・ ・ ステイックとボタン操作で、制御する基本的な指示動作を、LED点灯で確認します。 ・ ・
●DMD(VS−RCV3レシーバ用) 動作確認プログラムの作成です。 @VSC3DMDLED01.ASM ・LED確認表示−1 --- ステイック&ボタン ------------------------------------------------------------------------------  LED(1) … オペレーション区分 -1【前側】エリア 上段 (左)  LED(2) … オペレーション区分 -2【前側】エリア 下段 (左)  LED(3) … オペレーション区分 -3【前側】エリア 上下段(右)  LED(4) … 91 : 000-126 ステイック【左】垂直軸 ↑ 前進  LED(5) … 92 : 127-129 ステイック【左】垂直軸 ● 停止  LED(6) … 93 : 130-255 ステイック【左】垂直軸 ↓ 後進  LED(7) … 61 : 000 ステイック【右】水平軸 ← 左(信地旋回)  LED(8) … 62 : 001-126 ステイック【右】水平軸 ← 左(旋回)  LED(9) … 63 : 127-129 ステイック【右】水平軸 ● 直進 (中央)  LED(10)… 64 : 130-254 ステイック【右】水平軸 → 右(旋回)  LED(11)… 65 : 255 ステイック【右】水平軸 → 右(信地旋回) ------------------------------------------------------------------------------ AVSC3DMDLED02.ASM ・LED確認表示−2 --- DMD操作指示エリア ------------------------------------------------------------------------------  LED(1)  … @【停止】  LED(2)  … A【前進】(直進)  LED(3)  … B【後進】(直進)  LED(4)  … C【前進】(左)旋回 <左右前進>  LED(5)  … D【後進】(左)旋回 <左右後進>  LED(6)  … E【前進】(右)旋回 <左右前進>  LED(7)  … F【後進】(右)旋回 <左右後進>  LED(8)  … G【前進】(左)信地旋回  LED(9)  … H【後進】(左)信地旋回  LED(10) … I【前進】(右)信地旋回  LED(11) … J【後進】(右)信地旋回 ------------------------------------------------------------------------------ BVSC3DMDLED03.ASM ・LED確認表示−3 --- DMD出力ピン ------------------------------------------------------------------------------  仮想PORTB@… PORTA(RA1ピン)  仮想PORTBA… PORTA(RA0ピン)  仮想PORTBB… PORTA(RA7ピン)  仮想PORTBC… PORTA(RA6ピン)  仮想PORTBD… PORTA(RA2ピン)  仮想PORTBE… PORTA(RA3ピン)  仮想PORTBF… PORTA(RA4ピン)  仮想PORTBG… PORTB(RB0ピン) ------------------------------------------------------------------------------
・ ・ ・ ・ ・
●動作確認の感想 ・使用するステイックとボタンの操作をして、制御する基本的な指示動作ができました。

・ステイック【左】垂直軸操作時のニュートラル(中央位置)値が、想定値と違う。 (^^?  ステイック情報(バイト9)   想定値:128   実行値:127 ……… 不安定な感じがする。  → 個体毎に微妙な部分ですので、許容する範囲を拡大(127-129)しました。
・ ・ ・ DMD試作したプログラムからの機能移植をします。 ・ ・
●DMD(VS−RCV3レシーバ用)試行プログラムの作成です。 @VSC3DMDTES01.ASM……… DMD試作したプログラムの基本部分を機能移植しました。  受信機との信号形態などのインタフェースが、別物ですので突貫工事での作業でした。 AVSC3DMDTES02.ASM……… 自動(前進・後進)走行機能を組み込みました。  この機能により、長い直進走行などで、手放し操作ができますので便利になります。 ------------------------------------------------------------------------------  ●自動走行 ……………【前側】ボタン   ・前進【自動】(ON) : L1 ボタン……(左)   ・後進【自動】(ON) : L2 ボタン……(左)   ・走行【自動】(OFF): R1 ボタン……(右) OR R2 ボタン……(右) ------------------------------------------------------------------------------  ●自動走行モードの基本的な考え方  ・自動走行モードの実行(ON)は………   ・疑似的に、前進または後進のステイック操作の状態にする。   ・解除(OFF)されるまで適用される。   ・停止ギヤ(ステイック位置)の状態下のみ、    自動走行モードの実行(ON)ボタン操作で適用される。  (留意点)   ・自動走行モードの実行(ON)が適用されている状態でも………     → ステイック操作(前進・後進)が最優先され動作する。 ------------------------------------------------------------------------------  ・自動走行モードの解除(OFF)は………   ・自動走行モード(ON)を、解除(OFF)した状態にする。   ・実行(ON)されるまで適用される。   ・停止ギヤ(ステイック位置)の状態下のみ、    自動走行モードの解除(OFF)ボタン操作で適用される。 ------------------------------------------------------------------------------ ギヤ    疑似的なステイック位置   自動走行モード    区分      (アクセル・ギヤ)    1 …………………… 前進 ……………… 1:実行(ON)    0 …………………… 停止 ……………… 0:解除(OFF)    2 …………………… 後進 ……………… 1:実行(ON) ------------------------------------------------------------------------------
BVSC3DMDTES03.ASM……… 各処理を見直して、WAIT時間の調整をしました。  なんとなく、動いてくれた感じでしたので、少しは安定した感じになりました。
・ ・ ・ 現状基板の改造も考えましたが、新たに基板を製作する事にしました。 ・ ・
●レシーバ(VS−RCV3)と合体させたいので… 位置合わせです。

 → 収納スペースに余裕がないので……… こんなものかしら (^^?
●基板の表側に、主な部品類を配置しました。

 → PICとレシーバ(VS−RCV3)間の接続部分が気になります。
●基板の裏側です。

 → 空中配線での戦いになりそうです。(^^;
・ ・ ・ ・ ・
●基板が完成しましたので、実装しました。


・ ・ ・ ・ ・
●DMD操作指示エリアです。 … クリックすれば、拡大します。
・ ・ ・ ・ ・
●DMD(VS−RCV3レシーバ用)実装版 試行プログラムです。 ・超信地旋回機能を取り除いています。  車体重量が重たく、パワー不足が要因かもしれませんが、超信地旋回ができません。 -------------------------------------------------------------------------------- ・ミニ四駆のモータが動かせなかったので、ノーマルモータを使用することにしました。  VSC3DMD01( VER 0100 ) 実装@-01 最大出力電圧( 約 3.2V )   → 動かして遊んでいたら… モータから焦げた臭いが (^^? -------------------------------------------------------------------------------- ・最大出力電圧を下げました。  VSC3DMD02( VER 0200 ) 実装@-02 最大出力電圧( 約 2.9V )   → まだ、焦げた臭いがしますが… この状態で、様子をみます。 --------------------------------------------------------------------------------
・ ・ ・ ・ ・
●動作確認しました。

 → 元気に動いてくれました。(^^)
・ ・ ・ ・ ・