●( IOM )オムニ4輪 実装@【 改 修 】
●それなりの操作で、動かすことができましたが …  ■オフ会での試運転時は …   ・前日に、車体を動かすことができた状態で    中途半端な未完成状態での試運転でした。 ●試運転では …  ■直進軌道で走行する場合に、想定外の事象が発生   ・車体方向が、少し右斜め方向を維持した状態で走行しました。  ■帰宅後、自宅で車体を確認しましたら … 軸が抜けていました。   ・軸止めネジが外れていましたので、大きな負荷が集中した感じです。 ●動く模型らしい …  オムニホイールの特性を、活用したかったのですが  現状からのセッティングは、難しく感じましたので  動く模型的な操作で走行させる設定で【 改 修 】します。
・ ・ ●動く模型的な軌道で走行する形態に改修します。 ・ ・   ― 車体の直進方向の位置決め ― ・
●( 前後 ・ 左右 ) 移動 ・ 旋回 などのアクション
 → オムニホイール特性 ( 斜め・平行 ) 移動機能を取り除いています。
●(前進・後進・左方向・右方向)軌道のホイール位置と回転方向

●車体の直進方向位置の見直しに伴う … GPIOピンの出力パターンです。 クリックすれば、拡大します。
・ ・ ●走行形態の変更に伴う … 操作ボタン用途の改修です。 ・ ・  ― 動く模型的な、ホイール回転バターンの適用 ― ・
●スマホ操作画面の用途です。

//******************************************************** //【Taka袋(IOM)ネット】●オムニ4輪【A】実装@プログラム // ESPマイコン(ESP32): ESP32-OMNI4-IOM-A-05 //------------------------------------------------------- //ホイール回転パターンBを適用する。 //------------------------------------------------------- //■ゲームPADは … Aタイプ(PS2・PS3)が使える。 //【IOM】指定の場合…【LINE通知】あり //********************************************************
●動作確認  ・動く模型らしい … 走行になりました。 ●更に、  ・微妙な旋回ができれば、操作性が良くなりますので …
●新たな、旋回設定を試してみます。 ・信地旋回時の設定をベースにして、【旋回】機能を追加します。 ・内外輪差で旋回進行方向の角度を浅くして微旋回させます。
//******************************************************** //【Taka袋(IOM)ネット】●オムニ4輪【A】実装@プログラム // ESPマイコン(ESP32): ESP32-OMNI4-IOM-A-06 //------------------------------------------------------- //ホイール回転パターンCを適用する。 //------------------------------------------------------- //■ゲームPADは … Aタイプ(PS2・PS3)が使える。 //【IOM】指定の場合…【LINE通知】あり //********************************************************
●( 前後 ・ 左右 ) 移動 ・ 旋回 などのアクション

●(前進・後進・左方向・右方向)軌道のホイール位置と回転方向

●スマホ操作画面の用途です。

●車体の直進方向位置の見直しに伴う … GPIOピンの出力パターンです。
・ ・ ・ ●戦車のDMD駆動制御プログラムと同様な考え方で … ・ ・  ・旋回時の内輪回転数を減らします。
●こんな感じで…対応します。 //******************************************************** // ●ポート出力 C【前進】(左)旋回 //******************************************************** void V_GPIO_PUT_04() { // 内輪調整 NCYO_PUT_04(); // ●(内輪調整)ポート出力 C // 正転 ● digitalWrite (V_GPIO_3P, LOW ); // 仮想GPIOBP ← LOW digitalWrite (V_GPIO_4K, HIGH); // 仮想GPIOCK ← HIGH // 逆転 ◆ digitalWrite (V_GPIO_5P, HIGH); // 仮想GPIODP ← HIGH digitalWrite (V_GPIO_6K, LOW ); // 仮想GPIOEK ← LOW // 正転 ● digitalWrite (V_GPIO_7P, LOW ); // 仮想GPIOFP ← LOW digitalWrite (V_GPIO_8K, HIGH); // 仮想GPIOGK ← HIGH } //******************************************************** // ●(内輪調整)ポート出力 C //******************************************************** void NCYO_PUT_04() { if(NCYO_CNT > NCYO_SK) { // 内輪閾値(NCYO_SK)を超えた時 //**停止設定する**-------------------------------------- // 空転 〇 digitalWrite (V_GPIO_1P, LOW ); // 仮想GPIO@P ← LOW digitalWrite (V_GPIO_2K, LOW ); // 仮想GPIOAK ← LOW NCYO_CNT = 0; // 内輪調整カウント ← 0 } else { // 内輪調整カウント 0 以下の時 //**回点設定する**-------------------------------------- // 正転 ● digitalWrite (V_GPIO_1P, LOW ); // 仮想GPIO@P ← LOW digitalWrite (V_GPIO_2K, HIGH); // 仮想GPIOAK ← HIGH NCYO_CNT = NCYO_CNT + 1; // 内輪調整カウントを 1 UPする。 } }
●動作確認  ・微妙な旋回ができました。
・ ・ ・ ●パラメータ入力方式の変更 ・ ・
●DIPスイッチで、パラメータ入力を試験的に考察していましたが 回路内の配線を、スッキリさせてみたいので … スマホ画面などからのボタン入力方式に切替えることにしました。 現状のスイッチ設定機能は … そのまま流用します。 ・パラメータは、EEPROM領域に書込んで保存します。 ・起動時に、EEPROM領域からパラメータを読込んで使用します。 ・不揮発性のROM(EEPROM)に書込んだパラメータは … 電源を切っても記憶されています。 ・電子回路などの配線も除きますので、スッキリします。
■EEPROM(パラメータ設定)ツール //******************************************************** //●【ESP32】EEPROM(パラメータ設定)ツール //・EEPROM・値設定(書込み) … 各データ(4バイト)書込み X 4個 //-------------------------------------------------------- // ESP32マイコン(Arduino): ESP32-EEPROM-PUT-01 //******************************************************** //******************************************************** //●【ESP32】EEPROM(パラメータ設定)ツール //・EEPROM・値表示(読込み) … 各データ(先頭1バイト)読込み X 4個 //-------------------------------------------------------- // ESP32マイコン(Arduino): ESP32-EEPROM-GET-01 //********************************************************
●EEPROMに、書き込みができました。… 4件( 1 2 3 4 )
・データ件数 : 4件  ( SEQ : 0・1・2・3 ) ・1項目   : 4バイト( int 32bit ) ・全体    : 4バイト X 4件 = 16バイト
●DIPスイッチの設定

・ ・ ●EEPROM領域を構造体で使用してみます。 ・ ・  ・構造体タグ名(EEP_DATA) ・
//******************************************************** //【Taka袋(IOM)ネット】●オムニ4輪【A】実装@プログラム // ESPマイコン(ESP32): ESP32-OMNI4-IOM-A-09 //******************************************************** //●【EEPROM】と【DIPスイッチ】入力からパラメータ設定する。 // ■EEPROM入力系 //  ・DIP@ … 画面パネルNO //  ・DIPA … 接続形態NO //  ・DIPB … PSコントローラNO // ■【物理】DIPスイッチ入力系 //  ・DIPC … 入力タイプ //-------------------------------------------------------
■EEPROM(パラメータ設定)ツール //******************************************************** //●【ESP32】EEPROM テストA プログラム EEPROM出力 // ESP32マイコン(Arduino): ESP32-EEPROM-PUT-02 //******************************************************** //******************************************************** //●【ESP32】EEPROM テストA プログラム EEPROM 読み出し // ESP32マイコン(Arduino): ESP32-EEPROM-GET-02 //********************************************************
・ ・ ・ ●リセット機能を組み込む。 ・ ・
●ソフトウェアリセット … ESP.restart(); プログラムでリセット処理して、リスタート(再起動)する。
//******************************************************** //【Taka袋(IOM)ネット】●オムニ4輪【A】実装@プログラム // ESPマイコン(ESP32): ESP32-OMNI4-IOM-A-06 //------------------------------------------------------- //・ホイール回転パターンCを適用する。 //・DIPスイッチをEEPROMでパラメータ設定する。 //-------------------------------------------------------
・ ・ ・ ・ ・