jl7gmnのblog

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

DDS34応用その4

イメージ 1

今日はRS-232Cでの無線機周波数読み取りとその読み取り値をDDS34の周波数発発振器のVBのプログラムをマージさせてコーディングとデバッグをした。プログラムもマージだが、メインフォームもほぼ単純にそれぞれをドッキングしたようなものでほんと間に合わせだ。(動作確認が目的ですのであまり気にしてませんHi!)いずれフォームも不要なコンポーネントオブジェクトはいずれ削除し、新たなフォームで作る予定ではいるが、確かではない。
フォームはマージの形でできているが、実際のところはRS-232Cのメインフォームを広げ、広げたところにDDS34と同じコントロールをツールボックスから手動追加しています。こうすることで,RS-232Cのプログラムはそのまま使え、コントロール数の少ないDDS34プログラムの各コントロール番号を変更するだけですむ。しかもプログラムはコピペだ。もっといい方法は、コントロールにはすべて名前をつけておくことで、同じ名前であればプログラムもそのまま使える。要は最初のプログラムの初期設計でどれだけきちんと設計しておくかが後からの改良などの対応時間に差が出るということで、わかっているが、今回は動作確認なのでしかたがないので手間をかけてやることなりました。
実際の動作確認では、エラーが出た。単純にオブジェクトの登録エラーだったが、単体では、問題なく動作していたものがマージ後に動作エラーなので困った。これは単純でstr関数を使わないことで対応できた。一応は解決し動くは動いた。ただし読み取りのデータの変換上の問題なのだが、RS-232Cでの周波数読み取り値は全てテキストで行っていたので、DDS34の周波数設定上の変換で、少数部がまるめられてしまい1KHz以下の100Hz、10Hzが設定されないという問題が発生した。VBの変数型を参考書を首っ引きでいろいろと試したが、どうも変換がうまくいかない。”03.551230”-> 3.551 にしか変換できない。3.55123にしたい
10ヘルツの桁まで設定値がない状態なので、別の方法を考えた。100ヘルツと10ヘルツの桁を別読み取りにしてRITとするのである。つまりメインの値とRIT値を後で加え、読み取り周波数をすべて再現するという方法です。つまり、3.551はメモリし、小数部を230ヘルツをRIT値の0.00023 でさらにメモリしDDS34のデータ設定時に3.551と0.00023を加えもとの3.55123をDDS34の設定値にするんです。上記の方法で10ヘルツ代も問題なくFT-1000MPのダイヤルを動かしたのに連動しDDS34の周波数が設定される様になった。動作は完全なリアルタイムとはいきませんが、タイマーインターバル設定値を極力小さくしてあります。FT-1000MPのCATマークはほぼ、点灯している感じです。ゆっくりメインダイアルを回すとWinrad1.32上のスペクトラムが動いてゆくのがとても面白い。ヤッター!バンザイ!これでWinrad受信部は無線機のメインダイアルと同じ周波数となり、トランシーブ操作が可能になりつつあります。トランシーバーのRX受信用のアンテナ出力も実際に確認しなければ、新しいフォームでこのプログラムも書きなおさなければとまだまだやることが山ほどある。また以前に作成している455KHzSSBの送信部もケースを考えなければ、あれこれとほんとに八方美人的ブログであるが、ご勘弁あれ!
本日のプログラム作成フォームを添付します。to be continue!

DDS34応用その3

イメージ 1

Winrad1.32の設定で96KHzサンプリングでの状態も確認したので画像をアップします。どちらかというと44.1KHzサンプリングより帯域が広いのでこちらで使用しようと思う。ASIOドライバーでは44.1KHz以外は音が途切れてNGでした。よってWMME 16bit DRIVERでの使用となります。今日は遅いのでもう寝ます。
to be continue.

DDS34の応用その2

イメージ 1

時間があったので、SDRソフトウェアでのDDS34のノイズについて確認してみた。
SDR66をつないでパソコンでプログラムほか動作中のノイズが丁度中央にあり受信周波数をそのままDDS34の設定周波数としたとして周波数少し上側にシフトしたときに、この成分がSSBでのビートになり思わしくないようである。よってプログラムにてオフセットを+10KHzほど中心より上の部分を受信周波数ポジションとなるようにすることにしようと思う。こうすることで、下側はセンターノイズまで7KHzほどあるので周波数を少し(±3KHz程度)上下させた時のビートはなくなる。(実際に試したら-7KHzから-10KHzまではビートとなった。もちろん中心のノイズより下はバンド幅の帯域制限範囲までまったく問題ない。また上側はサウンドカードのバンド幅の帯域制限で受信周波数+14KHzのゆとりがあった。)受信するときはここのポイントがダイヤルと同じ周波数となる。
以上よりプログラムでのDDS34へのオフセットは読み取り周波数に対し-100KHzとすることにする。
(FT-1000MPでダイヤル設定で3.560KHzを受信している場合は、DDS34での発振周波数は3.550KHzを設定するということです。もちろんWinrad中心より+10KHz上が該当周波数ポジションとなります。)
添付したWinrad1.32の青の帯の部分が受信周波数ポジションです。この構想ではWinradでの青帯の位置は固定ということになります。が、SDRとしての3.5MHz帯バンドスペクトラムは見れますので問題はないと思います。またWinradとのDDS34の周波数連動をしていませんので、Winradの周波数およびオフセットの部分は実際動かす時は使われません。受信周波数およびバントのスペクトラムの表示ソフトとして使用することになります。
なお添付のWinrad1.32の受信スペクトラムのノイズフロアが高いのは使用しているアンテナがバーチカルアンテナのせいです。3.5MHzはコイルが入った短縮型のバーチカルです。 to be continue.

DDS34の応用

イメージ 1

新年おめでとうございます。
新しい年になって、何かをやりたくなった。パソコンの動画検索でSDRを検索し、動画をみていたらふとトランシーバー制御プログラムと周波数制御のプログラムを使ったサブ受信機なるものができそうな気がした。簡単にブロックダイヤグラムをかいて、意味のあることなのかどうかを少し考えてみた。
内容は無線機の制御プログラムとハムスクエアで購入してあったDDS34の制御プログラムのコラボレーションによる受信機である。無線機があるのになぜかといわれると答えようがないが、無線機の受信機能は使わないで、受信部だけをSDRで行うという考えです。去年の構想での受信はトランシーバーを使い送信は自作部+トランシーバーのRFパワー部を使うのとはまったく逆の考えかたです。ただ周波数はSDRのハードとDDS34の制御範囲内なので、モノバンド(必然的に3.5MHz)に限定されてしまいます。
無線機側とRS-232C制御プログラムでのコントロールは、周波数読み取り、Sメータ読み取り、モード設定、マウスホイール機能を使った周波数アップダウン制御等である。この中の、周波数読み取り機能を使い無線機のダイヤルを回転させたときの周波数をDDS34でダイレクトにリアルタイムで発信させるという事がメインの内容です。
現状のRS-232Cプログラムは、タイマー機能を使い繰り返し100msec毎にトランシーバーにコマンドを送りSメータのデータ戻り値を最初にプログレスバーに表示しています。次に周波数読み取りコマンドを送り現状の受信周波数を取り込むというものです。この定期取り込み後の合間でモード設定、周波数設定等のコマンド送出を行うことになります。今回は周波数読み取り部のみを使うことになります。読み取った周波数はトランシーバーのディスプレーとまったく同じテキスト値ですが、SDRの周波数設定用OSC(発振器)にて使用する場合は、SDR受信ソフト上のノイズの盛り上がりのない場所になるようにオフセット周波数を加えて設定する必要があるかも知れません。DDS34は受信でしか使わないので送信については一切考えなくてよいので楽だと思います。ちなみにここでRS-232Cの受信周波数読み取りに使用しているトランシーバーはFT-1000MPです。もう古いトランシーバーになってしまいましたがまだまだ現役です。過去作成した(2008年1月)制御プログラムのフォームを添付しました。(実験用ですので、いろいろなボタンがありますが、今回使うボタンはタイマー開始のTimerStartボタン、タイマーストップのTimerStopボタンと右側のFrequency Up Down枠内のボタンのみです。)
これから作成するフォームはまだデザインが決まっていませんが、その前に読み取り周波数でのDDS34の設定周波数をSDR受信ソフトで設定したときに実際の受信で問題がないのかをDDS34を使いSDRソフト(WinRad)で確認したいと思います。また読み取りのタイマーのタイミングとDDS34の周波数設定とのタイミングも考える必要があるかも知れません。まずは構想まで、過去作成のRS-232CのFT-1000MP制御のプログラムのルーチン等の説明は回を追って添付説明したいと思います。本年もよろしくおねがいします。
m(__)m
I Wish you a happy new 2010 year. Good Luck to you .
to be continue.

VB2008netSDR制御プログラムつづき

イメージ 1

イメージ 2

イメージ 3

表示の制御がほとんどを占めています。シリアルポートのあるパソコンでは通信ポートをCOM4指定から該当するポートに書き換えて使用できます。

私の場合はシリアルポートを2つ使用する予定です。もう1つはハムログ制御用で使用します。送信時のモニタ周波数を受信で使用のトランシーバから読み取り使用する為です。通信の部分に関しては上記のような通信ポート選択等の細かな変更もあると思われますが、現在はこのプログラムでテストしてゆきます。
ついでに上記のフォーム画像も添付しました。とりあえずUPしました。尚実際の交信ではSDRの受信プログラム(VB6の実行EXE形式)も起動します。が、COMポートを使うプログラムの確認と言うことで今回はSDR受信プログラムは添付画像にはありません。プログラムがたくさん起動される為、別モニターをデュアル表示で使えるディスプレイアダプタも考えています。購入ハードのパッケージ画像を添付しました。メーカーはBUFFALOでGX-DVI/U2です。他社でも同様のモデルが出ています。もちろん液晶ディスプレーは必要ですので準備する必要があります。ちなみにパソコンでプログラミングする時はデュアル表示は大変便利で1画面でのプログラミングにはもう戻れません。最大で6台までの追加増設が可能のようです。

【自作プログラムの使い方】
通信のポートをシリアル通信ボタンで開きCOMをONにします。このボタンはトグルボタンで、ONした後の再押下で全て(DTR、RTE)をOFFにして回線を閉じます。このボタンだけでは送受信の制御はしません。(制御はしないというより、初期設定の受信状態のままと言うことです。)
トランシーバーはCOM通信回線がON状態での初期設定は受信状態となります。送信状態にするにはRS232Cグループ内の送受信ボタンをクリックしますとDTRポートがOFFからONになりRXモードからTXモード制御になったことになります。(ハードではDTR端子が-5Vから+5Vの出力へ変わります。)このとき表示ラベルも"RX"から"TX"に変わります。
送信を受信にする場合は、再度送受信ボタンをクリックします。このときDTRポートはONからOFFにかわり、表示も"TX"から"RX"に変わります。送信時状態からのCOM通信回線をOFFにした場合は、全てリセットされ受信の状態へ各ポートを初期化しプログラム立ち上げ時と同じになる様にしてあります。つまりCOM通信回線がOFFでは制御端子はOFF状態であるということです。
送信と受信のコントロールはDTRのみで行いますが、もう1つのRTEポートも制御用の出力端子として使用できますので、将来の拡張用に同じ様にボタンを追加してあります。(予備制御ボタン)先のブログで載せたTXRXコントロール基板のハードもDTRのものと全て同じ回路となります。使い道はいろいろとあると思いますが、現在は予備制御出力としておきます。現在はエラー処理はつけていませんが必要に応じて、プログラム追加したいと思っています。以上がプログラムの使い方となります。
プログラミングのフォーム上にはシリアル通信用コントロールが表示されていませんが、プログラミング時はコントロールであるserialport1をドラッグ&ドロップでフォームにつけますと下側に表示されCOMポートを使用可能となります。プログラミング時の画像を添付しました。
フリーのプログラム言語VB2008Expressを提供してくれたマイクロソフトに感謝感謝です。
プログラムCOMポートとハードとのチェックはまだですが(過去同じプログラム構造でステップモータの制御では問題ありませんでした)、ハードと実際に組んで順次デバッグ確認してゆきます。つづく
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

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