無線ブログ集
メイン | 簡易ヘッドライン |
リンク 単体表示
jl7gmnのblog (2024/3/11 19:35:35)
現在データベースには 147 件のデータが登録されています。
Hamlogと無線機のコントロールfor Windows11
(2022/8/4 17:45:54)
久々のブログです。
Windows10 HomeのデスクトップをWindows11 Homeをインストールできたので、Windows10でできていたハムログと無線機2台をHamRadioDeluxeを使い同じようにシンクロ動作することをWindows11でもできるのかを試してみました。ちなみにHamRadioDeluxeは無料のバージョンを使います。今だとHamRadioDeluxeをWeb検索して、探してみましたが、大体が有料のバージョンのダウンロードページに飛ばされるようでした。無料最後の古いバージョン5.24.0.38を探すのは大変だと思います。古いパソコンにダウンロードしてあれば、問題なく使えます。探しましょう!Web上にもまだある可能性も少しはあるかと!? お金を出して購入でもよい人は、64bitの有料バージョンでもいいかと思います。
まずは、Windows10ではVSPEの仮想ポート作成アプリを使用してスプリットにて仮想ポートを増やし対応できていましたが、残念ながらWindows11では同じ無料のVSPEアプリでは動作しませんでした。有料だと対応は可能でしょうが、基本コンセプトはフリーで対応する、ですので、新たにシリアルポートを仮想作成してくれるアプリをネットで探しました。(有料を使う人は以下の記載は不要になります。Hi!)
Virtual Serial Port Driverなる free
(完全にfreeなアプリも再度確認中です。)期間限定アプリが良さそうなのでダウンロードして試してみたところ、意外と使いかってがよく、いじってるうちに大体使い方が理解できたので、さっそくWindow10の時と同じ設定をやってみました。
目的は、splitで仮想ポートを増設です。Hi!
結論から言うと、このアプリが大正解でした。問題なく仮想ポートを作成してくれます。
動作も問題ありません。
まずは、準備としては、USBタイプのシリアルインターフェースが2つ必要です。それと、シリアル通信用のストレートケーブル(必要に応じて)。手持ちに2つのArvel(SRC06-USB)インタフェースがありましたのでこれを使うことにしました。3RDパーティ(中華のCH340系)もありましたが、ネット情報では2022年の最新のドライバーでインストールはできても認識しなくて全くダメでした。日本製の確実に動作するArvelのシリアルインターフェースなどが、ベストかと思います。
パソコンにつないだインタフェースをデバイスマネージャーで確認します。それぞれCOM3とCOM7で認識されています。
ここで、無線機の2台をCOMポートに割り当てするのとハムログに割り当てするポートを決めるのですが、仮想のポート2つを次のように割り当てすることにしました。
Arver COMポート:COM7→Real このポートの仮想ポート1,2を作成です。
仮想ポート1:COM1 →Virtual,MainでHamRadioDeluxe 38400bps,N,8,2 でFT‐2000D
仮想ポート2:COM2 →Virtualでハムログ 38400bps,N,8,1
Arver COMポート:COM3→FT‐1000mp、4800bps,N,8,1
結果は問題なくWindows11にて仮想ポートでのハムログと無線機2台がシンクロしてくれました。
Window11の壁紙が見えてます。2画面なので、ハムログはメインの画面にあり、もちろん周波数読み込みしてシンクロしています。
Windows10で動作したVSPEをWindows11ではVirtualSerialPortDriveに変えることで問題なく動作してくれています。最初は、あれこれとわからない状態での設定だった為、動作しない事が多くかなり動くまで時間がかかりましたが、使っているうちにわかってくるので、時間が解決してくれます。アプリケーションの設定の仕方がわかってきて、すんなりと設定もできるようになり、しかもVSPEよりも動作の状態が見えるので(ポートステータス)本当に設定が楽にできる点が素晴らしいアプリだと思います。
追記
Windows10もまだまだサポートがありますので、そんなに急ぐことはないのですが、Windows11とはどんな感じかの興味がありましたので、インストールについて調べたりしていました。情報収集後にさっそくインストールを行ってみました。
Windows10からWindos11へのバージョンアップインストールについてもかなりの時間がかかりましたので、話題は、たくさんあります。別途記録を残そうかと思います。
インストールができない場合でも、インストール可能なデュアルブート(Win10とWin11選択)があるようです。面白いことにネットの情報だと、マイクロソフトも対象外のCPUのパソコンへのこのようなインストール方法も公に情報として出している点も、不思議ですが、現状の資産を有効に使いたい人への配慮も見えます。Hi! 私の場合はCPUがCore i7の4770 CPU @3.40GHz 3.40GHzでもWindows11のチェックアプリではCPUのみ対象外でした。(対象外が1つでもあると基本Windows11の単独インストールは不可です。)
デュアルブートの場合のWindows11インストールではアップデート等がされないリスクとかもあるようですが、実際インストール後のアップデートは問題なくできています。リスクがあるというのは、本当かはわかりませんが、世の常で新しいCPU8世代以降のPCの購入を推奨している理由なのかもしれません。新しいのを買うのが、本当は正解でしょうけど、まだまだ使えるものは使いたいですよね! ハードディスク(SSD)に余裕があれば、Window10以外にパーティションを1つ割り当ててそこにWindows11を入れる方法で、インストール時のチェックがかからずWindows11をインストールできます。最初120GBのSSDだと容量が足りないとチェックで出ていましたので、500GBを用意してSSDにクローンしてこのSSDでデュアルブート方式でやりました。Windowsの全バージョンをインストールできますが、元のWindows10のバージョンでないと基本認証で引っ掛かります。私もWindows11ProをWindows10 Homeと最初デュアルブートインストールしましたが、認証で引っ掛かりました。同じ元のWindows10のHomeバージョンと同じでないとインストールはできますが、認証はできません。同じWindows11でHomeインストールだとすんなり認証されました。
つづく?
Windows10 HomeのデスクトップをWindows11 Homeをインストールできたので、Windows10でできていたハムログと無線機2台をHamRadioDeluxeを使い同じようにシンクロ動作することをWindows11でもできるのかを試してみました。ちなみにHamRadioDeluxeは無料のバージョンを使います。今だとHamRadioDeluxeをWeb検索して、探してみましたが、大体が有料のバージョンのダウンロードページに飛ばされるようでした。無料最後の古いバージョン5.24.0.38を探すのは大変だと思います。古いパソコンにダウンロードしてあれば、問題なく使えます。探しましょう!Web上にもまだある可能性も少しはあるかと!? お金を出して購入でもよい人は、64bitの有料バージョンでもいいかと思います。
まずは、Windows10ではVSPEの仮想ポート作成アプリを使用してスプリットにて仮想ポートを増やし対応できていましたが、残念ながらWindows11では同じ無料のVSPEアプリでは動作しませんでした。有料だと対応は可能でしょうが、基本コンセプトはフリーで対応する、ですので、新たにシリアルポートを仮想作成してくれるアプリをネットで探しました。(有料を使う人は以下の記載は不要になります。Hi!)
Virtual Serial Port Driverなる
目的は、splitで仮想ポートを増設です。Hi!
結論から言うと、このアプリが大正解でした。問題なく仮想ポートを作成してくれます。
動作も問題ありません。
まずは、準備としては、USBタイプのシリアルインターフェースが2つ必要です。それと、シリアル通信用のストレートケーブル(必要に応じて)。手持ちに2つのArvel(SRC06-USB)インタフェースがありましたのでこれを使うことにしました。3RDパーティ(中華のCH340系)もありましたが、ネット情報では2022年の最新のドライバーでインストールはできても認識しなくて全くダメでした。日本製の確実に動作するArvelのシリアルインターフェースなどが、ベストかと思います。
パソコンにつないだインタフェースをデバイスマネージャーで確認します。それぞれCOM3とCOM7で認識されています。
ここで、無線機の2台をCOMポートに割り当てするのとハムログに割り当てするポートを決めるのですが、仮想のポート2つを次のように割り当てすることにしました。
Arver COMポート:COM7→Real このポートの仮想ポート1,2を作成です。
仮想ポート1:COM1 →Virtual,MainでHamRadioDeluxe 38400bps,N,8,2 でFT‐2000D
仮想ポート2:COM2 →Virtualでハムログ 38400bps,N,8,1
Arver COMポート:COM3→FT‐1000mp、4800bps,N,8,1
結果は問題なくWindows11にて仮想ポートでのハムログと無線機2台がシンクロしてくれました。
Window11の壁紙が見えてます。2画面なので、ハムログはメインの画面にあり、もちろん周波数読み込みしてシンクロしています。
Windows10で動作したVSPEをWindows11ではVirtualSerialPortDriveに変えることで問題なく動作してくれています。最初は、あれこれとわからない状態での設定だった為、動作しない事が多くかなり動くまで時間がかかりましたが、使っているうちにわかってくるので、時間が解決してくれます。アプリケーションの設定の仕方がわかってきて、すんなりと設定もできるようになり、しかもVSPEよりも動作の状態が見えるので(ポートステータス)本当に設定が楽にできる点が素晴らしいアプリだと思います。
追記
Windows10もまだまだサポートがありますので、そんなに急ぐことはないのですが、Windows11とはどんな感じかの興味がありましたので、インストールについて調べたりしていました。情報収集後にさっそくインストールを行ってみました。
Windows10からWindos11へのバージョンアップインストールについてもかなりの時間がかかりましたので、話題は、たくさんあります。別途記録を残そうかと思います。
インストールができない場合でも、インストール可能なデュアルブート(Win10とWin11選択)があるようです。面白いことにネットの情報だと、マイクロソフトも対象外のCPUのパソコンへのこのようなインストール方法も公に情報として出している点も、不思議ですが、現状の資産を有効に使いたい人への配慮も見えます。Hi! 私の場合はCPUがCore i7の4770 CPU @3.40GHz 3.40GHzでもWindows11のチェックアプリではCPUのみ対象外でした。(対象外が1つでもあると基本Windows11の単独インストールは不可です。)
デュアルブートの場合のWindows11インストールではアップデート等がされないリスクとかもあるようですが、実際インストール後のアップデートは問題なくできています。リスクがあるというのは、本当かはわかりませんが、世の常で新しいCPU8世代以降のPCの購入を推奨している理由なのかもしれません。新しいのを買うのが、本当は正解でしょうけど、まだまだ使えるものは使いたいですよね! ハードディスク(SSD)に余裕があれば、Window10以外にパーティションを1つ割り当ててそこにWindows11を入れる方法で、インストール時のチェックがかからずWindows11をインストールできます。最初120GBのSSDだと容量が足りないとチェックで出ていましたので、500GBを用意してSSDにクローンしてこのSSDでデュアルブート方式でやりました。Windowsの全バージョンをインストールできますが、元のWindows10のバージョンでないと基本認証で引っ掛かります。私もWindows11ProをWindows10 Homeと最初デュアルブートインストールしましたが、認証で引っ掛かりました。同じ元のWindows10のHomeバージョンと同じでないとインストールはできますが、認証はできません。同じWindows11でHomeインストールだとすんなり認証されました。
つづく?
MODEL 1200FXローテーターその15
(2022/6/20 9:17:04)
Logger32
でのローテーター自動コントロールの為のシリアル通信用でESP32DevKitCとの接続レベル合わせ用の出来合いのRS232Cレベル変換器ユニットがあれば、現在組んであるADM2302回路と入れ替えたいと思っていました。現在のADM2302は回路にコンデンサーが4つも外付けで使われています。メインの基板に組み込むと壊れた時の交換等を考えると出来合いのユニットにしておくほうが何かとベターです。パターンも作製しなくてすみます。代替交換もしやすくなります。以前ヤフーオークションを見ていたら丁度今回の用途にぴったしの変換ユニットがあったので落札し購入入手済みのレベル変換ユニットを使います。早速現在のRS232Cレベル変換器インターフェースADM2302のIC回路とそっくり入れ替えです。(レベル変換はESP32DevKitCとRS232CインターフェースではESP側の3.3VのI/Oとシリアル側のレベルとの変換の為に必要となります。)
なお、今まで使っていたUSBシリアル通信用のインターフェースはAvelのSRC06-USBそのままです。
■現在のレベル変換回路(ADM2302ANZ)
■簡単に接続用のケーブルで繋ぐだけで、簡単に入れ替え出来ます。
レベル変換用インターフェースへの入れ替えの次は、シリアル通信が上手くゆくかの確認です。
即、Logger32のアプリケーションで確認しました。
マウスでの地図上をクリックしてそこへ自動でローテーターが動いてゆくかと、Telnet情報で表示された局をクリックしてのその局の方角へのローテーター制御移動の2つの確認です。結果は単純に回路の入れ替えだけなので、全て前と同じ様に問題なく動作しました。
Logger32のTelnet 15mBandの今日の朝方
動作確認とは関係はないですが、朝方は特にアジア圏とヨーロッパ方面が開けているようです。SSBよりCWが多い様でした。
後から調べたら、今日の朝9時まで第63回ALL ASIAN
DXコンテストでした。どおりでアジア局が多いと思っていました。
シリアル通信インターフェースがユニットで使用できる様に簡単になりました。基板化もターミナル端子を出すだけで容易になります。最終の基板化(パターン化)の為のへの回路図修正変更もしなければなりません。
つづく?
MODEL 1200FXローテーターその14
(2022/5/15 2:12:42)
またもや、ESP32モジュール用のライブラリのバージョンアップが表示されたので、問題ないだろうと思いバーションアップをしました。そのすぐ後に今までのLogger32用のローテーター制御の収束動作部を見直しする為に先ずは現状でコンパイルを行ないました。ところがコンパイルでエラーが出て進めない状態になってしまいました。エラーは次の内容です。
'adc_gpio_init' was not declared in this scope
使用しているインクルードファイルも何も変えていないのに、コンパイルできていたスケッチがESP32のモジュールのバーションアップで、コンパイルできなくなってしまいました。
前の動いているスケッチのバックアップで試しても同じエラーが出ます。完全にESP32モジュールのライブラリのバーションアップが原因となった様です。
やはり、前回もそうでしたが各ペリフェラル関連の安易なバージョンアップは気をつけないといけない内容なのかもしれません。ESP32モジュールのライブラリなので問題無いだろうという考えはダメの様です。今動いている時のモジュールのバーションも覚えておく必要があるのかもしれません。先ずはWebにて同じようなトラブルを経験した情報がないかをチェックしてみました。バーションアップに関してはかなりトラブル(動作しなくなる)があるようです。対策としても、動いていた時のモジュールのバージョンにインストールし直しするのが、常道の様です。
エラーの内容をそのまま鵜呑みにして、対応するルーチン名が何処にあるのかなどと調べたいところですが、調べ無いのが正解のようです。バーションアップする1つ前のバージョンまたはインストール時のバージョンをインストールし直すのが解決の近道の様です。下記のページがとても参考になりました。
このWebページ通りにGitHubリンクを開きバージョンアップの情報を最初に確認するのが大切です。
いつのバージョンアップで動かなくなったかを定める(確認する)必要があります。
GitHubページも様変わりしているので、そのままの画像ページではなくなっていますので、どれが該当のものかを若干探す必要はあります。Hi!
リンク通りにクリックすると下記のGitHubページが表示されます。ページが様変わりしています。
commitsをクリックとありますが、場所はかなり違いました。
一番右端の1,768
commits の所のcommitsがそのようです。
commitsをクリックすると過去のバージョンアップの日付と内容が一覧で表示されました。
一番上が一番新しいバージョンアップで Commits on May 13,2022 です。
昨日のバージョンアップしたESP32モジュールのバージョンアップです。
これより前のバージョンにすれば良いことになります。
最初からインストールする場合は、5月13日より前のバージョンを<>でダウンロードしておきます。
圧縮ファイルなので解凍展開で使用します。
ここでのバージョンアップして動かなくなった年月日の内容は記録しておいたほうが良いかもしれませんね。
先ずはバージョンアップしてしまったものが確定出来ましたので、次のインストール方法へ進みます。
GitHubのページの下にArduino core for the ESP32,ESP32-S2,ESP32-S3 and ESP32-C3の項目があります。Web記載情報では ESP32-S2 and ESP32-C3
Supportですが、かなり様変わりしています。
またWebではクリックする箇所として Instructions for Boards
Manager とありますが、見当たりません。順番がWeb情報と少し違いますが上のマウスの箇所(Getting
Started)をクリックします。
するとESPRESSIFのページに飛びます。
First Stepsの How to installの中の Before installing
をクリックします。すると次のページに飛びます。
ここがWeb情報での内容と同じインストール時にコピペするリンクが貼られています。
Installing using Arduino IDE
使用するリンクは Stable release
linkです。これをIDEの設定ページで書き込みます。コピペは出来るようにありましたが、初めての時は手打ちでいちいち位置文字ずつアルファベットを忠実に打ち込む必要がありました。問題なくコピペ出来るのでしょうが、私のPC環境ではその時は出来ませんでした。
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
上記リンクをArduinoのIDEを起動して、環境設定にコピペします。または打ち込みます。
追加のボードマネージャーのURL:の場所です。
前と同じ場合はそのままでOKです。
コピペまたは打ち込みが終了したらOKで閉じます。
後はIDEのツール中のボード:"ESP32 Dev
Module"を選択しその中のボードマネージャーをクリックします。ボードマネージャーが開きデータをダウンロードし始めます。取り込み完了後、検索に”ESP32
”
を入力して対象を選出します。下記のフォーム状態で、バージョンを選択します。各バージョンが表示されます。
最初はバージョンは2.0.3でこれがバージョンアップしてコンパイルできなくなったバージョンです。
ESP32のボードのバージョンが2.0.2と一つ前の物に戻りました。
バージョンが戻ってきちんとコンパイルが出来るかを確認します。まず上記フォームを閉じて、今まで動いていてコンパイルエラーが出ていたスケッチをコンパイルしてみます。
元のコンパイル出来る状態に戻りました。問題なくコンパイル、書き込み出来ました。とんだバージョンアップ騒ぎでした。やたらとボードのバージョンアップもするものではない事の一例を経験した次第です。おかげでバージョンアップ前に戻す手順も分かり今後にいかせるでしょう。
本音としては、バージョンアップした後でも動かせるのが本当は望ましいと思っていますが、そのためにはGitHubのバージョンアップの情報の内容を見ていかないといけないのでしょうが、今回はバージョンアップを前のバージョンに戻すだけの対応です、細かくは見ていません。もう少しバージョンアップ時の新たな対応情報を調べて見る必要もありますね。
つづく?
MODEL 1200FXローテーターその13
(2022/5/12 5:48:21)
ビールの500mlをのんだせいか、いつの間にか寝て、朝の4時に目を冷ましてしまいました。目が冷めたついでにローテーターの動作確認をスマフォで確認してみました。いわゆるデバッグです。
ESP32DevKitCでのローテーター1200FXの0°のときの収束制御に時間がかかる現象が出たため、見直しをしようと思っていた所ライブラリのアップデートが表示されたので、何気なくアップデート処理を行いました。結構な数のバージョンアップが完了し、早速収束制御スケッチを見直ししようと思い最新のスケッチをロードしてコンパイル、書き込みを行なった所TFT液晶がホワイト状態で何も表示されなくなってしまいました。
先ずは何が原因かを追求しなければなりませんので、TFT液晶の交換から最初に行ないます。壊れた可能性はかなり低いので(特に変な事をしていない)やはり、別のTFTでも同じ現象です。TFT液晶は問題ない事になります。2個とも壊れる事はまずまず無いです。次はESP32DevKitCの交換です。別の動作している物と交換してみました。結果、コンパイル書き込みしても、同じくTFT液晶がホワイト状態です。となるとハードではなく、配線の断線が考えられますが、調べてみても断線は何処にもありません。となるとPCの状態がおかしくなった可能性も考えられますがコンパイル動作、書き込み動作は問題なく動きます。しかもスマフォでのUDP通信でのリモコン動作も問題なく動いてくれます。単にTFT液晶に表示しないだけの現象です。
少し、考えてみると、ライブラリのアップデート後に液晶表示しない状態が発生していることなので、各ライブラリのバージョンが上がった為に起きた問題かもしれません。確かにアップデート時には、TFT関連のバーションアップもありました。インストール済みから見てみると関連のTFT_eSPIのバージョンアップもしてました。バージョンは2.4.51の最新番になったようです。このことが原因の可能性が高いです。
早速TFT液晶のセットアップファイルのUser_Setup.hを対象のTFTの設定になっているかを確認しました。(MODEL
1200FXローテーターその2にTFT液晶のUser_Setup.hの設定値を記載していますので、同じ設置値かの確認です。)
確認結果、ビンゴです。初期化時の状態ファイルになっていました。使用するTFT液晶に合わせた設定にし直して保存し、コンパイル、書き込みを行ないました。元通りにTFTに角度情報が表示されホットしました。とんだ、バージョンアップでした。
特にTFT液晶関連のバージョンアップ時は設定したファイルまで初期化ファイルで上書きされてしまう様です。対策は設定ファイルをバックアップとっておきバーションアップ時後に、上書きをしてもとに戻す対応が必要です。
TFT液晶の角度表示にこぎつけるまで、1時間半程かかってしまいました。
TFT関連のライブラリバーションアップは、初期化があることを忘れないようにしないといけません。Hi!
これから0°の収束部のスケッチ確認となるのですが、もう朝の6時になってしまいました。次にしましょうか!
つづく?
MODEL 1200FXローテーターその12
(2022/5/11 21:36:00)
エモトのローテーター1200FXのリモートコントロールをESP32DevKitCを使いUDP通信機能を用いたスマフォからのリモートコントロールでのリモコン動作が上手く行きましたので、次のステップのロギングソフトのLogger32のローテーターコントロールへと進めています。今まではMAP上の位置をマウスクリックすることで、そのクリックした角度へ自動で回転して静止するまで問題なく動作してくれています。一番確認したいことは、Logger32のTELNETへ繋ぎ今現在の各バンドにてON
AIRしている局の情報をクリックしてきちんと動いてくれるかの確認が残っていました。このため、今まで確認で使用していたWindowsXPを止め、Window10に新たにLogger32の最新番になるようにインストールし、TELNETに接続し情報を取り込みそのON
AIRしている局のmonitorフォーム、及びTELNETの情報フォーム上からのマウスクリックでのON
AIR局の位置への自動ローテーター制御が動作してくれるかを確認してみました。作製してからの初めての確認です。
結果は、素晴らしいの一言を発生してしまいました。
動画は少し見づらいですが、最初はマウスでマップの90°をクリックするマップクリック動作確認から始めました。次はTELNETからのモニター上にあるON
AIRしてる局のコールサイン(赤色)をクリックして、その局の位置へのローテーターの自動制御動作確認です。
面白いくらいにクリックしたコールサイン局ロケーション方向に的確にむかってゆき静止してくれています。モニター上のコールサインだけでなくTELNETの情報のコールサインの情報位置クリックでも同じように動作確認出来ました。ESP32DevKitCで組んだスケッチで問題ない様です。TELNET情報でも上手く動作してくれました。
Logger32のローテーターのコントロールフィーチャーのロングパスとショートパスの切り替えもESP32DevKitCスケッチで問題なくローテーター1200FXは方向切り替え動作してくれました。
キーボード操作でのパス切り替えはLogger32では下記の操作にて行ないシリアルデータを送出する仕様でした。なお、局のTELNET情報にはロングパスの角度とショートパスの角度が両方載っています。
ショートパス:Ctrl + A
ロングパス :Alt + A
また、設定にてショートパスにて動作する事も出来ましたので、通常時ショートパス角度に合わせる様にしてみました。コンディションがロングパスの時にAlt
+ Aキーで切り替えで対応する事にすればよいかと思います。
とにかくLogger32はネット情報も取り入れてリアルタイムでDXを狙うには欠かせないロギングアプリだと思います。
つづく?
MODEL 1200FXローテーターその11
(2022/5/3 16:39:53)
エモトの1200FXをLogger32にて使用できるインターフェースが大体形になってきました。Logger32のローテーター制御時のインターフェース回路からのシリアル送出データ(マップ上で向けたい場所をクリックした後のLogger32へ送るデータ)をロジックアナライザーで確認してみました。停止位置角度1°からマウスで59°をクリックし動き始めてから止まるまでのLogger32への全送出データです。
D0はLogger32から送られてくるシリアルデータです。(ESP32DevKitCのシリアル受信信号)
D1はESP32DevKitCからのシリアル送出データです。
最初のLogger32からの角度リクエストコマンド”C”を受けてESP32側からの現在の角度シリアルデータを返送後にLogger32のマップ上でクリックしたタイミング時のLogger32のプリセットデータの送出があります。
丁度2番めのD0の少し長いデータです。
このLogger32のマップ上でクリックした位置角度情報がESP32へ送出されます。
詳しくは下記のデータになります。(マウスでMAPをクリックした状態の位置角度59°でした)
Logger32からは下記のデータが送出されます。
S[0D]X2[0D]M059[0D]
S :ローテーター回転ストップコマンド
X2 :ローテーターのスピード設定 2は中速
M059 :プリセット角度59°まで回転動作開始
0D
:デリミタ(コマンドやデータの区切りまたは終了箇所を表します。)
つまりLogger32からマップ上をクリックした時に送出されるシリアルデータのコマンドは、ローテーターを一端停止コマンドで止めて、ローテーターの回転速度設定を中速にして、プリセット(マップのクリックした位置角度)角度までローテーターを回転開始せよ!というプリセット角度への回転動作開始命令です。
後はLogger32からのこの" SX2M059
"コマンドを受けてESP32DevKitCは1200FXローテーターをプリセット値まで回転をさせ始めます。後はLogger32からのローテーター位置角度リクエストコマンド送出に対しESP32DevKitCから現状のローテーター位置角度をLogger32へ送出します。同時にプリセット値になったかの確認を行ない、プリセット値と現状位置角度差がプリセット値近傍の±1になるとパルス微動収束動作に切り替え、位置角度差が完全に0になるまでのこの収束動作を続けます。
ESP32DevKitCではシリアル受信したこの一連コマンド ” SX2M059 "
をデリミタ毎に解析しそれぞれをString変数に入れてます。(String変数を使ったのはコマンドから数値を抜き出しが容易なためです。)後は文字処理の抜き出し関数で角度の部分を抜き出し
整数化(059→59)
してESP32DevKitCのプリセット角度変数へ代入すればMコマンドを受けているので、自動でプリセット位置角度まで動き始めます。
なお、スピードコマンドに関してですが、1200FXでもコントローラーにはSPEEDボリュームがありますが、今の時点ではボリューム位置をセンターにしてあります。(1200FXはこのスピードで動くと決めた状態)SPEEDのボリューム設定で右回転最大でHI、また左回転で最小のLOWもありますが、HIの場合、オーバーランも大きくなるのでHI位置へボリュームは設定していません。なので”X2”のSPEED設定用コマンドは読み飛ばしです。元々1200FXはアナログ式のスピード設定でデジタル的には工夫しないと対応出来ないと思っています。(対応を考える場合は勿論、動作方法や仕組みは見ないといけません)
スケッチでは現在の角度を常時取り込んでいますので動き始めた角度とプリセット角度との差が0になるまで回転を続けます。0では止まる様にしていますが、オーバーランもあるので、近辺のプラスマイナス1の位置となった場合の処理を付けて0に収束するまで通常の回転信号オンの”H”ではなく、パルス出力にて微回転させて収束動作を差分が0になるまで出力し続ける収束動作をするようにしています。停止はプラスマイナス1でも止まるように見えていますが実は止まっているのではなくて差分0になるまでの収束動作中ということです。0にならない間は収束用パルス出力は出続けます。完全に差分が0になると収束用パルスは完全に止まります。この収束動作中であることは余り実用上問題はありません。プリセット位置での誤差±1°での停止に見えます。Hi!
Loggee32でのロジックアナライザーでの停止位置角度2°時に59°をマップクリックした場合の
ESP32DevKitCからの現在位置角度情報は、以下の送出がされていました。
停止位置角度 2°
コマンド"SX2M059"後 のコマンド”C”を受けての現在位置角度
2°、3°、6°、10°、15°、21°、26°、31°、36°、43°、48°、55°、60°、60°、60°、60°、60°、60°
最後の60°は差分が+1°時の収束動作中で、途中で止めましたが、もう少し時間が経つと59°になり完全に差分が0°なり収束動作が停止します。見た目は59°のプリセット設定値に対して+1°なので収束動作中ですが止まった状態に見えます。
Logger32からのマッププリセット時のプリセットコマンドとこのコマンドに対してのESP32DevKitCからのプリセットでの停止状態となるまでの位置角度情報の実際値でした。
スマフォのを使った場合も位置角度プリセット動作は全く同じです。コマンドもアプリ設定のアスキーデータ" M090 "という具合にLoggerから送られる " SX2M090
" コマンドの位置角度部分は全く同じです。
またスマフォの場合は、0の完全停止またはプラスマイナス1の収束動作時だけCW、CCWの方向回転が出来ない(プリセット動作コマンドと角度位置が差分が0、または±1)のをリセットするボタンを付けてあります。このリセットボタンは、本当の意味でのリセットではなく現状の角度とプリセット値を変えてやる事で差分が0または±1でなくなる事で回転が出来るようにしているだけです。このリセットを行なっただけでは回転はしません。回転開始はスマフォアプリ設定ボタンのコマンドの”
M
”を送出して始めてプリセット位置角度までの回転がスタートします。なおリセットに関しては0°から180°の停止状態の場合は、360°にプリセット、180°より大きく360°時の停止状態の場合は0°にプリセットです。この任意の停止時には+15°、またはー15°ずつのステップボタンでプリセット値を変更出来ます。更に細かな+1°、−1°のステップボタンもあるので、基本は1°から360°まですべての角度のプリセットが出来ます。
つづく?
MODEL 1200FXローテーターその10
(2022/5/2 18:17:58)
スマフォでのESP32DevKitCでのエモト1200FXの位置角度コントロールをしている状態をLogger32のローテーター制御の表示マップに連動表示している動画です。
コントロールはスマフォのアプリケーションUDP TCP
ServerにLogger32で使用出来る機種のコマンドを設定しESP32にUDP通信で送る方法で対応しました。(機種:YAESU GS−232B)
スマフォとLogger32での動作がほぼ完成状態となった時点での動画がなかったので撮って見ました。
スマフォはリモコンとして動作します。角度はESP32DevKitC側にあるTFT液晶に現在のローテーター位置角度とプリセット角度、それにスマフォからのアスキーコマンドが表示されます。勿論1200FXのリモート端子とESP32DevKitCは繋がっています。
動作概略
1200FX側からはローテーター位置角度に相当する電圧が出力されるのでこの電圧をAD変換して0°から360°に対する電圧値の角度変換数値をアスキー文字にてLogger32にGS-232B設定としてのヘッダーを付け、デリミタの"0D0A"を最後につけて、コマンド”C”が送付されて来たら送り返します。1200FXはプリセット角度になるとストップしますが、角度情報はいつまでもコマンド”C”が送られている間でも、停止している時の位置角度情報を返し続けます。
回転させる方向についてですが、基本はプリセット角度に関しては現在の位置角度との比較をして差し引きの角度(+か−のどちらか)を使うことで現在の角度から回転させる方向を判断しています。
Logger32のマップクリックでの1200FXへのプリセットは単純で送出されるシリアルデータを読み込みデータから角度情報を抜き出し、ESP32DevKitCでプリセット設定用変数に入れ込むだけです。あとはプリセット角度と現在の角度の差分からプリセットへの回転方向を判断しプリセット角度になるまで動くという具合です。スマフォからの送ったデータは同じコマンド体系なので全く同じ方法での動作をします。
Logger32使用とスマフォの切り替えSWでどちらか片方でのみ使用する様に切り替SWで選択して使います。Logger32に使用時はスマフォでは動作しません。その逆もしかりです。
つづく?
MODEL 1200FXローテーターその9
(2022/5/2 16:48:54)
Logger32のローテーターコントロールでのエモト1200FX用として使用したGS-232B設定でのシリアル通信の状態をロジックアナライザーで確認しておきました。変な信号がないかの確認でもあります。Hi
!
D0はLogger32から送られてくるコマンド ” C
” です。現在のローテーターの位置角度のリクエストです。
D1はコマンド”
C
”を受けてESP32側でローテーターのA/D変換された0°〜360°の現在のローテーター位置角度数値を返します。その時間も計測してみました。
Logger32からのコマンドを受けてから位置角度情報を返すまでの時間は≒88mSec です。これは一箇所だけ捉えた情報で、実際はかなりバラツキがあります。参考程度情報です。
Logger32からのコマンド "
C ” をアスキー文字表示設定にして確認です。
コマンド ” C ”
をESP32側のシリアル受信確認後にリアルタイム現状位置角度の数字をGS-232Bの角度返送時使用するヘッダーを付けて角度の数値をアスキー文字で,
その後に ” 0D0A ” のデリミタ付けて ” A
Z = 1 8 0 0 D 0 A ” で返す様にスケッチで組んであります。組んでる通りに見えています。
GS-232B 返送時HEADDER :" AZ ="
現在のローテーター角度180° :"
180 ”
デリミタとしてのCRLF :" 0D0A "
ローテーター位置角度が変わればその変わった角度の数値を返すという事をローテーターがプリセットで止まっても、いつまでも繰り返しています。”
C
”コマンドを送り現状位置角度を受取りして位置表示をする事を繰り返し続けるシステムです。なので、” C
”コマンドが来ればESP32側は即反応して位置角度情報を送る様にスケッチを組みました。プリセット位置でとまったら終わりではなく、止まったローテーターの位置の角度数値を送り続けます。
あとWindowsXPの場合のLogger32側の処理が遅いので、1秒あたりの位置角度返送回数は5秒間で10回なので、2回/秒のローテーター位置角度確認コマンドを送っている事になります。今時のOSに変わると返送コマンドを受けてから回転表示させて次の”
C ”コマンドを出すまでの時間が短くなるといいう塩梅かと思います。
停止時ですが位置角度情報を受けて表示して次の” C
”コマンド送出までは≒500mSECかかっています。
プリセット動作時は、もっと遅くなります。5秒間に7回ですから 1.4回/秒と時間がかかるようになります。
Logger32で位置角度情報を受けて表示して次のコマンド” C
”を送るまでは≒600mSECとなっています。
また、パソコンの状態で変わるようでESP32側のLogger3からコマンド” C
”を受けてから角度を返すまでは上のロジックデータを見ても分る通り早かったり遅かったりがあるようです。
現状のロジックアナライザーを使っての確認をしてみました。変なシリアルデータは全くないようです。
つづく?
MODEL 1200FXローテーターその8
(2022/5/1 20:05:07)
アンドロイドスマフォのUDP通信を使ったESP32DevKitCでのエモトの1200FXローテーターの方向指示制御が上手く動作してくれています。次のステップアップとして、世界的に使われているアマチュア無線用ログアプリであるLogger32のアプリケーションの機能にあるローテーターコントロールにて使える様にスケッチを組んでみました。Logger32には対応するローテーターはたくさんありますが、そのうちの日本での定番のGS-232B選択にて動くようにしてみました。制御コマンドはYAESUのマニュアルサイトからダウンロードです。コマンドについては取扱説明書に詳しく載っています。GS−232Bは水平、垂直方向のローテーター対応ですので、水平制御のコマンドを使いました。
ESP32DevKitC最初はTS820のハムログ通信で使用した超小型USBシリアル変換モジュールを使ったのですが、途中で動作フリーズとかで中々確認作業が進みませんでしたので、ArvelのSRC06-USBとADM3202追加にて交換配線した所、かなり安定に動作するようになりました。滞っていた確認作業があっという間に進み、Logger32のDX
spot
mapでのクリックした場所の角度まで自動で移動動作するローテーター制御がほぼ問題ない?まで出来上がりました。以下動作画像です。
Logger32の制御時にはSWを1つESP32DevKitCに追加です。切り替えSW変数名はSL_SWです。GPIO32ポートに入力ポートとしてプルアップでの追加割り当てしました。
フマフォアプリ制御時:LOW (SW ON時GNDレベル)
Logger32対応時 :HIGH (SW OFF時オープン)
#define SL_SW 32 //smafo logger32 change SW
今回はPCがかなり古いWindowXPを使いましたのでLogger32のバージョンはダウンロード都合でVersion3.50.0です。動画を見ても指針の動きも遅延もあります。Window10等にするとかなりスムースに指針も動くと思います。ある程度の位置ズレも合わせ込みしているところも、分るかと思います。方向のズレの角度として問題ない1°のズレも指針が重ならないと大きく見えます。
スマフォ側の制御時でもLogger32のDx spot
mapでリアルタイムのローテーター位置が表示されますので、とても便利です。実際やっていて完成後のマップクリックで自動で動いた時はとても感激しました。Hi
!
スマフォのUDP通信制御コントロール時のLogger32のDX spot map ローテーターの位置表示です。
Logger32のローテーターデバッグのフォームではクリック送出の制御コマンドとポーリングリクエストのコマンドCと、それを受けESP32側から送り返す現在のローテーター位置(A/D変換し360°に合わせ込んだ角度)角度情報データをLogger32で受取し黒色指定した指針で表示しています。
デバッグフォーム上でのデータを見ているとかなり受取角度データがあるのですが、間引きした感じで指針が動作しています。これはWindowsXPのスピード処理の遅さが原因です。最近のWindows10ならデータ受取し追従して、かなりなめらかな指針移動で動作すると思われます。ちなみにESP32に追加したシリアル通信は9600bps設定です。ポート指定はシリアル通信制御ではDDSで実績のあるGPIO16,GPIO17をシリアル通信用に指定しています。(前から決めて空けておいたポートです。)
Serial2.begin(9600,SERIAL_8N1,RXD2,TXD2);// RXD2:16,TXD2:17
ESP32DevKitCは本当に処理能力スピードが速くて、様々な通信方式(ブルーツース、WifI、UDP通信、他)対応もあり、スマフォでの制御等が簡単に出来るので最高です。様々な通信方式のアンドロイドのアプリケーションも沢山あることも触手が動く理由でもあります。アプリも便利でかつ簡単に設定できる点など種類が豊富で目的で選べるという点も今回のローテーターコントロールで使う理由になっています。
また、スケッチでほぼハード制御部のをほとんどが対応出来るので、ハードウェアのスィッチング出力制御回路と15°角度ステップ、1°角度ステップ、ホームプリセット、と今回のスマフォ制御とLogger32制御切り替え用SW、LPF回路の追加、及び表示用TFTディスプレー、シリアル通信用のIC追加位で、とても回路がシンプルになる事もかなりの魅力になっています。
対応するローテーターも何の送受のコマンドが使われているかがわかれば、制御機能付きのローテーターは基本全部コントロール出来ます。
最終の状態の回路図もまとめたいと思います。超小型USBシリアル変換モジュール(FT234XD)でのシリアル通信はXPでは余り上手くありませんでしたが、Window10を使っての確認は必要ですね!まだまだ色々とやることが多いです。Hi!
また、気づいた人もいるかと思いますが、マップの中心がアメリカです。日本にしないといけませんが、ロケータでの設定かと思うのですが、誰か教えてくれませんか?スケッチ確認では何処が中心でも問題ないのですが。実使用では日本に合わせないといけませんね!スケッチで疲れたので、少し楽したいです。Hi!
スマフォの一般アプリを使ってのEMOTO
1200FXの方向制御とLogger32のローテーター制御の両方がESP32DevKitCにて対応出来ました。方角をマップ上でクリックしての動作確認も結構見てても楽しいです。
つづく?
続きを読む
MODEL 1200FXローテーターその7
(2022/4/29 3:22:55)
エモトのローテーター1200FXをハムアプリケーションのLogger32のローテーターコントロールで動かす為のUDP通信上でのシミュレーションコマンド制御が上手く行きましたので、スマフォ側での操作専用の制御コマンドを追加しました。追加と言っても、既にESP32DevKitCにあるプリセット値を+1カウントアップするSW、または−1カウントダウンするSWと同じ動作をスマフォのボタンで行う追加です。スマフォ側はボタンのラベル設定とコマンド値設定および、CR自動追加設定は他のどのコマンドボタンとも同じ設定方法です。また、プリセット値用以外にローテーターのプリセット後動作完了後のリセットSWと同じボタンも設定しました。またプリセット角度0°のボタンも追加しています。
スマフォ設定はボタンのラベル設定とコマンド設定(アスキー文字)だけです。
Z:プリセット動作完了後のCW、 CCWスマフォボタン操作イネーブルとするリセット
D:プリセット値−1(DOWN)
U:プリセット値+1(UP)
UDP通信で送信される追加コマンドがESP32で組んだデコードスケッチでデコードされるので、後は分岐ルーチンへの対応するスケッチを追加コーディングしてゆくだけです。
switch構文に追加した上記のコマンド(Z, D, U)のスケッチです。
switch(i[0]){
case 'Z'://preset is finish then enable CW CCW button
RotSTOP();
if((((delta == 0)or(delta ==1)or(delta == -1)))and((Readkakudo >= -5)and(Readkakudo <= 180))){
kakudo = 360;
s = 48 ;
}
if((((delta == 0)or(delta ==1)or(delta == -1)))and((Readkakudo > 180)and(Readkakudo <= 365))){
kakudo = 0;
s = 0 ;
}
kakudo=kakudo;
if((Readkakudo == 360)or(Readkakudo == 359)or(Readkakudo == 361)){
if((delta == 0 )or(delta == 1)or(delta == -1)){
kakudo = 0;
s = 0;
}
}
break;
case 'U'://preset +1 When push UDP Apprication PRESET-UP button
udpupdn = 1;
kakudo = kakudo+udpupdn;
udpupdn = 0;
if(kakudo > 360){
kakudo = 1;
}
kakudo = kakudo;
break;
case 'D'://preset -1 When push UDP Apprication PRESET-DOWN button
udpupdn = -1;
kakudo = kakudo+udpupdn;
udpupdn = 0;
if(kakudo < 0){
kakudo = 359;
}
kakudo = kakudo;
break;
case 'Z'://preset is finish then enable CW CCW button
RotSTOP();
if((((delta == 0)or(delta ==1)or(delta == -1)))and((Readkakudo >= -5)and(Readkakudo <= 180))){
kakudo = 360;
s = 48 ;
}
if((((delta == 0)or(delta ==1)or(delta == -1)))and((Readkakudo > 180)and(Readkakudo <= 365))){
kakudo = 0;
s = 0 ;
}
kakudo=kakudo;
if((Readkakudo == 360)or(Readkakudo == 359)or(Readkakudo == 361)){
if((delta == 0 )or(delta == 1)or(delta == -1)){
kakudo = 0;
s = 0;
}
}
break;
case 'U'://preset +1 When push UDP Apprication PRESET-UP button
udpupdn = 1;
kakudo = kakudo+udpupdn;
udpupdn = 0;
if(kakudo > 360){
kakudo = 1;
}
kakudo = kakudo;
break;
case 'D'://preset -1 When push UDP Apprication PRESET-DOWN button
udpupdn = -1;
kakudo = kakudo+udpupdn;
udpupdn = 0;
if(kakudo < 0){
kakudo = 359;
}
kakudo = kakudo;
break;
以下省略〜
ESP32DevKitC側には15°ずつアップまたはダウンするSWがありますが、スマフォには追加しないことにしました。先ずスマフォの操作ボタンが多くなると煩雑になってしまう事と、15°ずつのアップダウン操作は出来ませんが、既にボタンに設定してある0°、90°、180°、270°、360°のプリセットボタンが45°ずつですので停止ボタンとの組み合わせて十分プリセットが出来るからです。これらのプリセット角度ボタンの近い角度ボタンを押してローテーターの回転し始めで停止ボタンを押すと回転が止まります。この状態でプラスマイナスのスマフォボタン操作で1°ずつアップまたはダウンにて目的とするプリセット角度に設定が十分可能だからです。設定し終わったらPRESET-GOボタンを押すだけです。ESP32DevKitCのPRESET-GOと同じでプリセット動作開始操作となります。
他、スマフォの0°、90°、180°、270°、360°のプリセットボタンはどれもホームポジションに設定出来るボタンとして考えても良いかと思います。また、ESP32DevKitC側にはホームポジションとして90°だけSW設定していましたが、スマフォのアプリボタンに任意の角度をコマンド設定すれば自分専用のホームボジション角度設定が簡単に出来ます。ESP32DevKitCのスケッチ追加などは不要です。M***の***の角度設定コマンドをボタンに設定するだけです。
自分のアンテナのホームポジション角度を設定する場合、北を0°として右回転で359°までの間の角度のうち例えば、135°がホームポジション角度だとするとスマフォアプリのコマンドは M135 を設定でOKという事です。
下記は90°のプリセットですが、labelを ”PRESET135", commandを "M135" にするだけです。
ラベルは任意です。ボタンに表示するラベルですので HomePosition でも他何でもOKです。
一通りESP32DevKitC側の操作SWの全機能はスマフォのアプリボタンに設定出来ました。
動作確認は続けていますが、今の所はスマフォ制御にて変な動作は全くおきていません。
つづく?
execution time : 0.065 sec