jl7gmnのblog

yahooブログから移行してきました。アマチュア無線を中心としたブログです。

2022年08月

MODEL 1200FXローテーターその18

スマフォのUDPアプリを使ったエモトローテーター1200FXのリモート制御及びHAMのロギングソフトウェア(Logger32)によるローテータ自動制御機能をもたせた回路の基板が出来上がりました。早速部品を取り付けして、動作確認を行ないます。ノートパソコンに繋ぐシリアルインターフェース用として、オークションでArvelのSRC06USBが格安でほぼ新品で出ていましたので、新たに1本落札しました。Window10と11での動作も問題ない事は確認済みです。
【NA】新古品及び未使用品に近い商品(数回使用あるかもしれない商品)
と新古品とありました。
価格は税込¥121ですが、送料が¥1,480の合計¥1,601での落札です。まあまあ、お買い得かと!
届いて空けてみたら全くの新品でした。発売からはかなり経っています。WindowXP,VISTAの時代のシリアルインターフェースですが、Windows10,11で問題なく動作します。Window11で手持ちの同じ2本のシリアルインターフェースは無線機とハムログ、アプリのHAMRADIODELUXEで現役動作してくれています。

範囲を選択_337

このUSBシリアルインターフェースをLogger32をインストールしたノートPCに繋ぎ今回のESP32DivKitCのローテータ制御回路のシリアルポートとレベル変換ボードを通して繋ぎ使用します。

回路基板に戻りますが、使用しているパーツはボード回路で使用した物と同じ値を選別して用意しました。(FULL SCALE1.5V の2.5dB ATTのADC1の入力ポート25に繋がる分圧抵抗です。)
R3:120.015kΩ (120kΩ抵抗より選別)
R4:20.156kΩ (20kΩ抵抗より選別)
R5:2本シリアル接続(215.76kΩ+266.23kΩ=481.99kΩ)それぞれ220kΩ、270kΩより選別
500kΩを得るために3本の合計で調整しています。一番抵抗値の小さいR4を半固定にして調整する事で
選別なしとすることも出来ますが、半固定は変化する要素があるので、今回は固定抵抗のみ使用です。
目的はR4とR5の合計抵抗値 502.146kΩとR3の120.015kΩとでフルスケールに対応する電圧に分圧する為です。
選別することで実験ボートの回路と全く同じ電圧関係で動作させる事が出来ます。
勿論、ESP32DivKitCも同じものを使います。別のを使うとポート出力にバラツキがあるので再度の下記のポート出力の調整出力値の設定調整(9)が必要となる為です。

void hiZ(int n){
    pinMode(n,INPUT);
    digitalWrite(n,LOW);
}

//-----------------------------------
void setup関数にて ポートに出力しレベルをオフセットを調整
void setup(){
......
 hiZ(25);
 dacWrite(25,9);//9
.....

ESP32DivKitCはソケットを使い挿します。今の所USBから電源を得て動作させていますが、実際使用時は先の回路図にも記載した様にレギュレータICで9Vを5Vに変換して使用します。

部品も抵抗、インダクタ、電解コンデンサ、パスコン、ソケット、ターミナルピン、ジャンパー線と少ないパーツ数なので、簡単に基板に取り付け半田付けも直ぐに完了しました。

CIMG9710

SW類のソケットは使わず、パターンにSWからのワイヤー直付けで
スマフォとLogger32の切り替えSW用のみ出しました。

早速スケッチをコンパイルして書き込みを行ないます。同じESP32
なので、そのままUSB接続でも動作はするのですが、基板上に取り付け
してのコンパイルを確認しておく必要があります。(スケッチも改良
予定がある為です。)
コンパイルも問題なく、液晶も問題なく動作しましたが、スマフォから
のMコマンドを受け付けてくれません。元のボードにESP32DivKitCを
挿して確認すると、問題なく動作しています。なので基板側の問題です。

原因をさぐっていくと、SW入力のプリセット90°の入力パターンとモード
切り替えパターンとの半田ブリッジでした。丁度隣どうしでした。SW
ワイヤ−をパターンに半田付した時にブリッジしたようです。プリセット
端子がLの為90°の動作モードに入り放しでした。
(スマフォ時のSWのLがブリッジでそのままプリセット端子のLレベル
になった為)
ブリッジをカッターでカットして、スマフォからの動作確認OKとなりました。

エモトFX1200のREMOTE端子とESP32DivKitCへの接続ケーブル
CIMG9714

本来はこのターミナルを基板上に付けるつもりでパターンを作製して
いましたが、私の思い込み寸法間違いで取り付け出来ないパターンを
製作してしまいましたのでターミナルは線材で中継接続です。
CIMG9717

TFT液晶もそのままの配列での接続です。
CIMG9712

簡単なスマフォとのWIFIのUDP通信が出来ましたので、おさらいでESP32
DivKitCのUDP通信の仕様をスマフォで手持ちの無線ルーターを確認しました。
結果をまとめると下記になりました。

周波数は2.4GHzのみ対応
プライマリーSSIDのみ対応
セキュリティ:WPA/WPA2-Personal
IP設定:DHCP
プロキシ:なし
ネットワークの期限:自動検出
MACアドレスタイプ:ランダム化されたMAC
MACアドレス:**:**:**:**:**:**:**
IPアドレス:***.***.***.*** (後省略)

ESP32DivKitCのWIFIのUDP通信では5GHz帯は使えません。
セカンダリーSSID設定では接続しませんでした。
プライマリーのSSIDのみ使えました。

Logger32との接続モードでも問題なく動作してくれました。

今回、基板化出来ましたので、接続コンタクト等の不安定要素は全くなくなりましたので、スケッチへの改良もスムーズに出来る状態となりました。
早速TFT表示のフォントサイズを一回り小さくして、モードの表示とMコマンドの表示追加を行ないます。(今までのTFT表示だと数値のみ表示されるのでどちらが何の数値かが、わかりにくい状態でした。)

最初の実験時のTFT液晶表示
CIMG9540

今回の改良のTFT液晶表示:スマフォWIFI UDP通信モード
スマフォからのUDPコマンド値とMコマンドを表示させました。
FX1200の現在の方向角度表示は”Now"の後に表示されます。また
設定時の方向角度は"SET"の後に表示されます。
CIMG9711


今回の改良のTFT液晶表示:Logger32シリアル通信モードLogger32
Logger32モード時には”LOG"と表示させる事にしました。
Logger32上でのDX Spot上の任意角度クリック時、及びWEBのTelnet
接続時(GB7UJS)ログインでのモニター表示局をクリック時の方向角度
(実際のMコマンド)を表示させる事にしました。

CIMG9713

TFT液晶表示文字は下記スケッチ例にて、簡単に変更対応可能です。
//****************************************
// tft display M***command
tft.setTextColor(TFT_WHITE,TFT_BLACK);
tft.setTextSize(3);
tft.setCursor(0,85);
tft.print(" ");
tft.setCursor(18,85);  
char cf[6]; //UDP Command
sprintf(cf,"%d",i[0]);
tft.print(cf);
//****************************************

基板版になってから収束のスケッチ部も若干変更をしてあります。
差分値角度が3°の場合と2°の場合の収束に時間がかかる状態があった為(いったり、きたりの繰り返しが多くなる症状)緑のスケッチ追加して収束最短となる用に改善してあります。この改良?でかなり早く収束してくれます。
delta値は収束時の差分が大きくなってしまった時の停止用として使っています。近傍の±6の場合の収束はコピー値のdelta2値をわざと用意して判断する様にしました。使った後の変数値が消える現象が過去ありました。予防的な処置でコピー値として別途の変数で使用すると使った変数は値が消えても、別の変数の為、使う時点で値が消えることはありません。
同じ値をとる差分定義をdelta2として収束させる動作のdelta2値の範囲は6から−6までとしています。収束動作時に差分が突飛に−8または+8となった時は強制的に停止させます。
変更したスケッチのルーチンは+か−のどちらかがあれば良いのですが面倒なので、caseでは+6から−6まで書いたままです。使わない範囲も含んでいます。下記のでdelta<0だと+側のcaseがdelta2値の取りうる範囲からは不要です。冗長部として認識していますが問題ないのでそのままにしてあります。
変更の一部分のスケッチを下記します。

delta = Readkakudo-kakudo;

if(delta < 0){
        if(delta == -8){
            RotSTOP();    
        }

        //:::::::::::::::::::::::::::::::::::::::::::::::::::::::::
        delta2 = Readkakudo-kakudo;
        //------------------------------------
      switch(delta2){
          case 6: RotCW();
                      delay(10);
                      break;
          case 5: RotCW();
                      delay(10);
                      break;
          case 4: RotCW();
                      delay(10);         
                      break;   
          case 3: RotCW();
                      RotCW();
                      RotCCW();

                      delay(10);         
                      break;
         case 2: RotCW();

                      RotCW();
                      RotCCW();

                      delay(10);         
                      break;
          case 1: RotCW();
                      delay(10);        
                      break;
          case -1:RotCCW();
                      delay(10);        
                      break;

          case -2:RotCCW();
                       RotCCW();
                       RotCW();

                       delay(10);        
                       break;
          case -3:RotCCW();

                       RotCCW();
                       RotCW();

                       delay(10);
                       break;
     case -4:RotCCW();
                       delay(10);
                       break;
〜以下省略
if(delta > 0)  も同様に緑の箇所の変更を行ないます。この場合でも−側のcaseがdelta2値の取り得る範囲からは不要です。
特に問題ないので+6から−6の表記はそのままとしてあります。
 上記スケッチ緑部変更追加でのモーター制御でかなり収束が早くなりました。

※補足
ESP32DivKitCのledcw(IO 04),ledccw(IO 22)ポートに繋がった2つのSWトランジスタのON/OFF設定で、各コレクタ出力がグランドレベルになりリモート端子より1200FXのローテータモーターの回転方向を制御します。
**************************************
RotCW();ClockWiseで時計方向まわりの出力ルーチンです。

void RotCW(){
    //CLOCK WISE
    digitalWrite(ledcw,1);
    digitalWrite(ledccw,0);
    Houkou = 1;
}
**************************************
RotCCW();CounterClockWiseで半時計方向まわりの出力ルーチンです。

void RotCCW(){
    //COUNTER CLOCK WISE
    digitalWrite(ledcw,0);
    digitalWrite(ledccw,1);
    Houkou = 2;

}
**************************************
RotSTOP();は停止処理の出力ルーチンです。

void RotSTOP(){
    // STOP
    digitalWrite(ledcw,0);
    digitalWrite(ledccw,0);
    Houkou = 0;
    delta=0;
    delta2=0;
}
**************************************

今の動作状態で申し分ありませんが、以前も完成したと思っても新たな問題が潜んでいたりがありました。なので、もう少し動作確認を続けたいと思います。スマフォ時の各スイッチの動作も確認していませんので時間をみてSWを配線して確認を行ないたいと思います。

つづく?


MODEL 1200FXローテーターその17

事後になりますが、CNC切削マシーンの設置後、EAGLE CAD での基板切削用の準備が出来て、CANDLE切削専用アプリ(LINUX版)にて切削開始した記録です。
以前のPCB-GCODEのガーバーデータ作製設定の資料を残してありましたので、ガーバーデータもPCB切削用、ドリル用、基板外形切削ミル用と3つ準備出来ています。久々のCNC基板切削で、たった1つだけ失敗がありました。HEIGHTMAP使用の設定を忘れて、切削開始してしまいました。
HEIGHTMAPデータ作製はしたのですが、(☑チェック)チェックを入れ忘れてしまい、設定面の均一切削は出来ませんでしたが、幸い、切削深さは、各面の若干のミル深さの違いはありましたが、特に問題ありませんでした。HEIGHTMAPデータを使用であれば基板のどの位置も均一なミル深さに補正されて切削することが出来ます。
調子をつかむまで時間がかかるかと思っていましたが、一端切削開始後は、時々削りカスを掃除機で吸い取る程度です。基板切削時間は6パスありましたので、6時間はかかりました。ドリルは25分程、外形切削は7分程で終了でした。

CANDLE上のBOTTOM切削パターンのガーバーデータを読み込み
設定したCANDLEアプリ
CIMG9701

切削開始後、16分経過時のガーバーデータの切削進行状態
CIMG9700

2時間37分経過時の切削進行状態
(数回パス後でパス線が所どころ薄くなっています。)
CIMG9703
PCB-GCODEの設定で、基板切削データ+ドリルデータ、またはそれぞれ
のデータを設定にて別途に作製する事が出来ます。今回は2回に分けて
基板切削データ+ドリルデータ(ドリルはガイド穴で0.2475mmの深さ)と
その後にドリル専用のガーバーデータで1.75mmの深さでの切削としています。

2時間37分経過時のBOTTOMパターン切削の様子
(刃は3.175平底尖刀10°*0.1を使いました。)
CIMG9704

基板切削、ドリル穴あけ完了後、基板外形切り抜きし、ヤスリがけ
し、完成した基板
CIMG9707

完成PCBトップビュー写真(部品面)
CIMG9708

BOTTOM面の写真(クレンザでの研磨後(砥石使用))CIMG9709

BOTTOM基板の不要銅パターンを削った後,フラックス(HAKKO001)を
キャップの刷毛で塗り完成です。

次回は基板に各パーツ取り付けし、動作確認までの予定です。

つづく?

MODEL 1200FXローテーターその16

だいぶ間が空きましたが、スマフォのUDP通信でのエモトのFx1200のコントロール用のパターンをCADのEAGLEにて作製することにしました。最初は回路図の纏めからです。頭の中には回路図の変更した点が幾つか覚えてはいるのですが、前の回路図には全然反映されていません。(シリアルポートレベル変換ユニットインターフェース導入など)各入出力端子にも記載をしていなかったので、後から見た時に再度確認しなければならない状態でした。最終の回路図として纏めました。

回路図の端子名に誤記ありましたので訂正差替(2022/8/13)
修正済み回路図
修正回路図FX1200−UDP

パターン作製はサイズ100X80mmのEAGLEのフリー版の最大のサイズを
使用しています。このサイズで自作は十分間に合ってます。
(中華のガラエポ(片面FR4PCB)をこのサイズで数多く注文してあります。Hi!)

FX1200-UDP-LOGGER32PCB-BOTTOM

片面のPCBですので、パターンに入り組んでいる箇所はジャンパー線での対応
です。もう慣れたもので、パターン作製もさほど時間はかかりません。慣れた
CADを使うのがベストです。
ガーバーデータも作製しておきました。
ガーバーデータ上のドリルの交換コマンドを削除する必要があります。そのまま
動かすと必ずエラーで止まるので、忘れてても、いずれきちんと削除することを
思い出させてくれます。
ここ数ヶ月CNC切削マシーンも片付けてあったので、セットして、軽く動作を
確認してから基板を切削する必要があります。使っていないと何かとトラブル
が起きる可能性があります。(各端子の酸化による接触不良など)

EAGLEでの基板パターン作製は久しぶりでしたが、楽しくパターン作製出来
ました。CADはつかってて、とても面白いアプリケーションですね。

つづく?



Windows11プリンタードライバー設定

Windows11とWindows10のデュアルブートインストールができましたが、Windows11に関してはいろいろと設定が必要な状態です。ハムログでのカード印刷では古いプリンター(PM-A900)をWindows10で使用できていましたので、Windows11も大丈夫と思っていましたが、インストール後何もしなくてもプリンターは使えるには使える状態でしたが、A4とレターサイズのみの設定が可能な状態で、はがき設定ができない状態でした。かなり古いので、対応のプリンターデバイスドライバーがフルでは対応していないような感じです。思い切って新たにドライバーを用意して、用意したドライバーを組み入れることにしました。ただし、国内のドライバーではなく、海外バージョンのプリンタードライバーをインストールです。EPSONのPM-A900の海外バージョンの型式はRX700です。この型式でドライバーをネットからダウンロードします。今だと、OPERAのブラウザ関連と一緒にダウンロードできるようでした。

下記のWEBからダウンロードしました。

RX700ドライバーPM-A900-2022-08-09 115942


真ん中の64bit,Windows10,Windows11 Epson 6.52.00.00(2012-12-11) Printer 
のPrinter Driver v6.52 の約8.2MBです。

ダウンロード後展開すると2つのセットアップとドライバーがありました。

RX700-PRINTER-DRIVER2022-08-09 120046

セットアップ(setup)は統合メニューのようなフォームのインストールになります。今回はdriverのみのアプリケーションインストールでPM-A900(RX700)プリンタードライバーをインストールです。

Printerの設定からすべて英語ですが、問題なくインストールできて、ハムログのQSLカード印刷も今まで通りできました。
デバイスとプリンターには、EPSON Stylus Photo RX700 Seriesとして登録されるようです。

rx700-2022-08-09 121922

プリンターはUSBポートの仮想プリンターとして設定されるようです。

仮想プリンター2022-08-09 122230

Window11でもWindowsXp,Vistaでメインで使用していたPM-A900がまだまだ使用できるのがうれしいです。
ハムログでのQSL印刷も今まで通り、問題ありませんでした。

つづく?

Hamlogと無線機のコントロールfor Windows11その2

無線機2台とハムログをシンクロ動作させるのに仮想シリアルポートの作成アプリを使いましたが、フリーアプリと思っていましたが、限定期間のアプリでしたので、完全なフリーのアプリの候補を別途1つ試してみました。うまくいきましたので、忘備録として設定を残したいと思います。案外とすんなり仮想ポートを作成できたのはいいのですが、いまひとつ元のCOMポート設定をしていないので、若干これでいいのか?と不安なところもありますが、動作上はOKなので、まずそのままの設定を残したいと思います。
使用したアプリはWeb名 NonSoft からダウンロードしました。設定は他のWebページを参考にしています。

NonSoftでの設定対応OSはWindows8が例ですが、問題なくWindows11でも動作問題ありませんでした。

このアプリはフリーでは定番のようです。

NonSoft

【設定】
①Virtual Port Pair 1のCOM1設定
VirtualPortPair1-COM1-2022-08-04 180613

②Virtual Port Pair 2にCOM2を設定
VirtualPortPair2-COM2-2022-08-04 180613

■設定完了後のVirtural Port Pair 1とVirtual Port Pair 2(これで仮想ポートCOM1とCOM2 が作成されます。)
com0com-3-0-0-0-x64 2022-08-04 180432

以上でCOM1,COM2の仮想シリアルポートが作成できたことになります。仮想シリアルポートの各設定は何もしていませんので、接続先のシリアルポート動作情報から自動で読み取りして設定されているとしか思われません。ある意味すごいアプリだと思います。
これでポートの設定は行い、HamRadioDeluxeアプリを2つ無線機毎に起動し、問題なく無線機のFT-2000D(COM2),FT-1000MP(単独シリアルインタフェースCOM3),ハムログ(COM1)がシンクロ動作してくれました。
HamRadioDeluxe(FT-1000MP:COM3:  4800bps)
HamRadioDeluxe(FT-2000D   :COM2:38400bps)仮想ポート動作
HamLog(COM1:38400bps)仮想ポート動作

つづく?


続きを読む
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

QRコード
QRコード
  • ライブドアブログ