ホーム >> 無線ブログ集 >> DDS-VFOリニューアル情報その1

無線ブログ集

  メイン  |  簡易ヘッドライン  

link jl7gmnのblog jl7gmnのblog (2024/3/11 19:35:35)

feed DDS-VFOリニューアル情報その1 (2023/7/18 3:37:39)
ふと、Sメータのデジタル化の情報をESP32のサンプルから試していて、スプライトのサンプルとかをyoutubeで勉強していました。ふとWeb情報からTwitterを覗いたところJF3HZB uebo氏がTFTの多品種対応書き直し版をしていることがわかり、GItHubより、さっそく試しに、ダウンロードしてみました。

tjlab-jf3hzb/Digital_VFO_with_analog_daial_V2

スケッチはVFOsys2_00.inoです。
新たなドライバーのダウンロードが必要でしたので、さっそくzip形式で1つダウンロードして自動組み込みしました。LovyanGFXライブラリです。GitHubからCodeでダウンロードです。ZIPファイルをライブラリマネージャーでインストールです。インストールライブラリをダウンロードしたので選択クリックで下記のインクルードファイルをスケッチに取り込みできます。
#include <LovyanGFX.hpp>

あと、動かすためというか、TFTへの表示を見たくて、取り急ぎ若干のスケッチへの定義追加と数か所の修正をして、TFT表示の確認まではできました。

そのまま何もしないで、ボードをつないでコンパイルすると、エラーがズラズラと出ます。
エラーメッセージを読んで、対応してゆくことになります。

■dial.hppの書き換え少々(各種TFT用のhppファイル)
私の手持ちのTFTはST7735ですのでこの情報に合わせてスケッチを修正です。
オリジナルは 
#include "prm\ST7735S_128x160.hpp"

このhppファイルは階層prmにありますが、VFOSYS2_00.inoと同じ階層に移動しました。
次に書き換えます。階層を別にしないほうが私の場合分かりやすいためです。元のままでも問題はないです。

#include "ST7735S_128x160.hpp"
しかし、このファイルでも下記のエラーを吐きました。
定義がないとのメッセージなので、内容をみて修正してゆきます。

VFOsys2_00\ST7735S_128x160.hpp:111:25: error: 'SPI_DMA_CH_AUTO' was not declared in this scope
cfg.dma_channel = SPI_DMA_CH_AUTO; // 使用するDMAチャンネルを設定 (0=DMA不使用 / 1=1ch / 2=ch / SPI_DMA_CH_AUTO=自動設定)        

このスコープで宣言がされてないとあるので、単に宣言します。内容から0,1,2の内から選ぶ設定のようですが、1と2は推奨しないとあるので必然的に0が設定する値となるので、次のように宣言しました。
#define SPI_DMA_CH_AUTO     0
この宣言を一上の 4行目に入れました。
これでこのエラーは回避できました。

■dial.cppの修正箇所について
ここでのコンパイルエラーは次のメッセージでした。
Compilation error: 'fmax' is not a member of 'std'

このfmax自体はstdのメンバー関数の定義がないとのことなので、ひとまずカーソルをfmaxにおき、右クリックで定義に移動をします。
するとstl_algobase.hのなかにメンバー定義の箇所がありました。
namespace  std   ‗GLIBCXX_VISIBILITY(default) のなかにメンバー関数が定義されているのですが、maxがそれらしきメンバーのようです。。ほかにはminなどもありました。
template < typename _Tp, typename _Compare >
    _GLIBCXX14_CONSTEXPR
    inline const _Tp&
    max ( const _Tp& __a, const _Tp& __b, _Compare __comp )
    {
      //return __comp(__a, __b) ? __b : __a;
      if ( __comp ( __a, __b ))
  return __b;
      return __a;
    }
ということでfmaxをmaxに修正します。
 //int yc = voff + top_margin + (std::fmax(radiusMain, radiusSub));
  int yc = voff + top_margin + ( std:: max ( radiusMain, radiusSub )) ;
数か所fmaxがあるので、全部maxに書き換えます。
上記書き換えでこの数か所エラーも全部回避できました。

ESP32DevKitCとTFT液晶の接続のみしてある状態でのコンパイルです。ほかの接続はまだしていませんが、表示がうまく出ました。

VFO (2)

以前のVFOsysです。TS820Sで組み込みで使わさせていただき、大変お世話になっています。
CIMG8627

初回は820VFOでのVFOsysの使用です。本体のTS820Sとは本体に組んだArduinoNanoよりのシリアル通信周波数情報をESP32で受けて周波数表示を変える仕様でした。ハムログでのシリアル通信での周波数読み取りもESP32では別のシリアル通信を使い行っていました。
CIMG8829

2回目はTS820S本体に組み込みで使用しました。ボタンSWでのRITも付けました。ハムログとの連携も行いました。去年の2月の頃には21MHzでのWとのQSOでも大活躍しました。
20220321_213548

と以前のVFOsysは大活躍しています。


VFO (1)


ロータリーエンコーダだけつないで確認しました。プルアップ2.2kでポート16,17接続で、センターアースにつないで、CW,CCW方向とも周波数表示が問題なく変化しました。DDS-ICはまだ接続してないので、今日はロータリーエンコーダでの周波数表示変化確認だけです。

今回のリニューアルでは周波数の表示がデジタルフォントのような感じですね。他にもルーチン的にバージョンアップしていると思われます。

GitHubにあるreadme.txtの内容です。

"VFOsys2" is the original version of a digital VFO with analog dial display by Tj Lab(JF3HZB),
which can be compiled on Arduino IDE with Board manager "esp32 ver. 2.0.9" and Library "LovyanGFX ver. 1.1.7".

Usable display panel:
 ST7735S (128 x 160,  80 x 160),
 ST7789 (135 x 240, 240 x 240, 240 x 320),
 ILI9341 (240 x 320),
 SSD1331 (64 x 96).

JF3HZB  T. Uebo
Tj Lab

https://tj-lab.org


以前のVFOsysではTS820で利用させていただきました。デジタルサブダイヤルに感激したことからの展開で、次々とスケッチも拡張し、全バンド対応化、ハムログでの周波数の読み取りもDualコア機能を駆使し、ダイヤルを回した時だけシリアル通信でできるようにしたりと、最近のトランシーバーのような使い方をアナログトランシーバー(TS820S)でも+アルファ的にバージョンアップさせることができました。オリジナルのuebo氏の公開スケッチのおかげです。今回は、新しいサイズの大きなTFTも対応しているとのことですので、ますます応用範囲がひろがりますね。素晴らしいDDS-VFOスケッチのリニューアル公開にとても感謝しております。
これから少しまたVFOsysにはまりそうです。古い受信機などがあるので、まずはアナログからデジタルへの展開のDDS-VFO化からやれたら楽しいかと思います。最近わたしのパソコンもある程度のスピードの速いものを購入してありましたので、ESPのスケッチを新しいPCでコンパイルするようにしています。スケッチコンパイルが前のVistaインストールのLinuxと比べると雲泥の差です。早すぎるぐらいです。ストレスがありません。最新のプラットフォームIDEにもしています。少し勝手が変わった感じですが、慣れると問題ありません。Uebo氏も古いボードマネージャーでは新しいものが対応していないということでの新しいボードマネージャーでのリニューアルでもあるようです。新しいものへ対応してゆくことへの準備も必要ですね。まずは情報提供まで!

つづく?




execution time : 0.025 sec
サイト内検索

メインメニュー

ログイン
ユーザ名:

パスワード:



パスワード紛失


オンライン状況
19 人のユーザが現在オンラインです。 (11 人のユーザが 無線ブログ集 を参照しています。)

登録ユーザ: 0
ゲスト: 19

もっと...