●ゲームパッド( VS-C3 )を接続してみる
ESPマイコン( ESP-WROOM-02 )に … ゲームパッド(PSpad)類似のコントローラ(送信機)を接続して 操作してみたいので、試してみることにしました。 【 ロボット専用無線コントローラ [VS-C3] 】
■PICマイコンでの操作はできましたが … ESPマイコンでも … 無線接続で操作できるのかしら (^^?
・ ・ ・ ・ ・
●コントローラ(送信機)からの操作情報を取得するレシーバ(受信機)です。 【 VS-C3用受信モジュール「VS-RCV3」】
●コネクタ接続ピンの配列です。
・使用ピン(○印)は … 6本です。 @ : 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
・ ・ ・ ●SPI通信ピン ・ ・
●SPI( HSPI )通信で使用するピンです。(4本)
・GPIO12 MISO ( Master In Slave 0ut ) … マスター・イン・スレーブ・アウト ・GPIO13 MOSI ( Master 0ut Slave In ) … マスター・アウト・スレーブ・イン ・GPIO14 CLK ( Clock ) … クロック ・GPIO15 CS ( Chip select ) … チップ・セレクト *省略可
・ ・ ●通信方法は … SPI通信 ( 4線式 )で行います。 ・ ・ 【 SPI(Serial Peripheral Interface) 】 ・
●SPI通信 ( 4線式 ) @MISO ( Master In Slave 0ut ) … スレーブからマスターへ送信する。 ・シリアルデータ信号の入力 ( 単方向 ) です。 ・送信側からのシリアルデータ信号を受信する入力部分であり マスタが生成するクロックに合わせて 受信側がパラレル・データに変換して取り込む。 AMOSI ( Master 0ut Slave In ) … マスターからスレーブへ送信する。 ・シリアルデータ信号の出力 ( 単方向 ) です。 ・受信側に向けてのシリアルデータ信号を送信する出力部分であり マスタが生成するクロックに合わせて 送信側がパラレル・データをシリアルデータに変換した信号を出力する。 BCLK ( Clock ) … マスターとスレーブを同期させるクロック信号 ・クロックの信号 ( 単方向 ) です。 ・マスタがクロックを生成しており このクロックをCLK信号としてスレーブと共用化されている。 ・シリアルデータの送受信は、このクロックにより同時に実行される。 1クロックで、1ビット分の信号を送受信する。 ・マスタ : CLK信号を出力する。 ・スレーブ: CLK信号を入力する。 CCS ( Chip select ) … マスタが通信相手 ( スレーブ ) を選択する。 ・複数スレーブの制御時に使用する信号 ( 単方向 )です。 ・1( マスタ ) 対 N( スレーブ )の通信する場合は … − 複数スレープを制御するCS信号を使用します。 ・1( マスタ ) 対 1( スレーブ )の通信する場合は … − 必要でなければ、CS信号が省略できます。
●SPI通信ピンの結線です。 【ESP02】マスター 【VS-RCV3】スレーブ ■GPIO14(CLK )---> ■CLK(緑) ■GPIO15(CS )---> ■SEL(青) ■GPIO13(MOSI)---> ■CMD(紫) ■GPIO12(MISO)<--- ■DAT(灰)
・ ・ ・ ・ ・
●SPI通信ピン と LEDピン の配置です。
・ ・ ・ ●動かしました。 ・ ・
//-------------------------------------------------------- //●【 VS-C3 】コントローラー テスト@ プログラム // ESPマイコン(ESP-WROOM-02): TES-VSC3-01.ino //--------------------------------------------------------
●機器類を接続して、実行しました。 ボタン押下して、LEDチカチカで確認できましたが …
→ 不安定で、なかなか接続できない … どうしたら?
●PICで … 同仕様な自作プログラムを作っていますので 色々と 思い出しながら、微調整の繰り返しの試行です。
→ なんとか、接続して … 操作ができました。
●PIC(自作プログラム)ボタン情報を基準にして比較しました。
(ステイック情報)
●感想 ・主要関数の戻りタイミング時を注視しての設定でした。 ・最初から、アナログモードで設定されていますので ステイック操作の情報が、お手軽に取得できました。 ・ボタンとステイック操作からの情報取得ができましたので PICプログラムと同様な操作処理ができそうです。 ■「 PS2X_lib 」について PICプログラムでは、SPI通信の勉強からの素組プログラムを 色々と学びながら作り込みましたので、かなりの労力が必要でしたが 「PS2X_lib 」を使うことにより、SPI通信の主要な知識は必要とせず 電文などのインタフェース制御を意識せずに動かすことができました。 このライブラリーは、凄い方が作られたと思われます。… 感謝、感謝です。 (参考) -------------------------------------------------------- ・ESP32系も、使えるように ……… ・変更前 : #ifdef ESP8266 ↓ ・変更後 : #if defined (ESP8266) || defined(ESP32) *対象ファイル ( PS2X_lib.h PS2X_lib.cpp ) -------------------------------------------------------- ・SPI通信ピンの結線です。( ESP32の場合 ) 【ESP32】マスター 【VS-RCV3】スレーブ ■GPIO18(CLK )---> ■CLK(緑) ■GPIO5 (CS )---> ■SEL(青) ■GPIO23(MOSI)---> ■CMD(紫) ■GPIO19(MISO)<--- ■DAT(灰) //------------------------------------------------------ //●【 VS-C3 】コントローラー テスト@ プログラム // ESPマイコン(ESP32): ESP32-TES-VSC3-01-00.ino //------------------------------------------------------
・ ・ ・ ・ ・