●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 )
→ まだ、焦げた臭いがしますが… この状態で、様子をみます。
--------------------------------------------------------------------------------
・
・
・
・
・
●動作確認しました。
→ 元気に動いてくれました。(^^)
・
・
・
・
・