●ゲームパッド( 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 //------------------------------------------------------
・ ・ ・ ・ ・