jl7gmnのblog

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

2010年07月

730V-1バンドコントローラープログラミング その2

イメージ 1

早速ハムログの入力フォーム[A]の周波数欄へVisualBasic2008Expressを使いデータを送信するプログラムをコーディングしてみた所うまくデータを送ることができました。プログラムの仕様としましては、単純にニューメリックアップダウンの周波数設定値を読み取り各バンドのボタンスイッチをクリックすることで、その周波数をハムログの入力[A]フォームへ送るという事だけです。ただしこれだけでは使いかってが悪く少し作業性に問題があるので、周波数を設定した後に日付と時間もボタン押下時の情報として同様に入力[A]へ送りその後コールサインの欄へカーソルを置く仕様にしました。実際の送出時の各フォームを添付しました。尚、ハムログが起動されて無い場合は各周波数設定ボタンをイネーブルにしハムログ起動用のボタンと終了ボタンだけ押せる用にしてあります。ハムログ起動ボタンではハムログを立ち上げこのプログラムフォームを再読み込みし各ボタンが表示されプログラムが稼動します。
添付写真画像では730V-1ボタンを押した時の7.050の設定周波数がハムログ入力フォーム[A]に転送されている時のものです。
少しプログラミングの方法として取った内容を書きますと、引数を渡す方法をとり以下のサブルーチンに汎用性を持たせました。以下はリターンキーの無い場合です。
Public Sub sendingDataToHamlog(ByVal cdat As Integer, ByVal ndat As String)
    cmmd = cdat
cmmd = cmmd Or THW_FOCUS
' cmmd = cmmd Or THW_ENTER
cds.dwData = cmmd
cbuff = ndat
cds.cbData = Len(Trim(cbuff))
cds.lpData = cbuff

Hwnd2 = SendMessage(Hwnd1, WM_COPYDATA, Me.Handle, cds)
If Not Hwnd2.Equals(IntPtr.Zero) Then
SetForegroundWindow(Hwnd2)
End If
End sub

引数cdatはコマンド番号で0がコールサイン、1の時はエリア、2は日付、...6は周波数となります。
同様引数ndatはコールサインや、日付、時間、他周波数などの送る文字情報としました。
上記サブルーチンを指定したい位置のコマンドをcdatに送出データをndatにセットしてコールします。
尚、自動でリターンキーを押す場合と、リターンキーを押さない場合の2つのケースを使い分けています。リターンが入るとフォーカスが次の項目へ移りますのでコールサインの欄では上記のリターンキーなしにしています。
日付時間もエイヤッで無理やりプログラムでつくり各ボタン押下時、データとして送っています。
'日付処理(2)-------------------------------------------
Dim kakotoday As String
Dim lentoday As Integer
lentoday = Len(Trim(Today))
kakotoday = Mid(Today, 3, lentoday - 2)
ndat = kakotoday
addrtnDataToHamlog(2, ndat)

'時間処理(3)-------------------------------------------
Dim JTIME As String
JTIME = "J"
Dim kakotime As String

Dim imajikan As String
Dim lenimajikan As Integer
lenimajikan = Len(Trim(TimeOfDay))
If lenimajikan = 7 Then
kakotime = "0" & TimeOfDay
Else
kakotime = TimeOfDay
End If
imajikan = Mid(kakotime, 1, lenimajikan - 2) & JTIME
ndat = imajikan
addrtnDataToHamlog(3, ndat) 'TIMEをリターン

'コールサイン欄へリターンなしでフォーカス(0)------------
sendingDataToHamlog(0, "") 'リターンせずにCALL欄へフォーカス

時間は基本JSTのみの対応です。いろいろと考えられますが今は手動でDX時は切り替えると言うことでプログラム対応はしていません。フォーム[A]のDXチェック欄を読み取り切り替えるなどは可能かと思われますが、読み取りについては、まだ確認していません。必要に応じてチェック対応してゆきたいと思います。他、フィーチャーとして無線機への周波数データ送出(RS-232C)の方も追加してゆく予定です。
尚情報源としてJG1MOU浜田OMのホームページの独断と偏見に満ちたプログラミングを参考にさせていただきました。特にHamlogMs.txtの情報は必見です。他JA2BQX OMの公開プログラミングソースも大変参考にさせていただきました。本当にVB2008Netにて短時間でプログラミングすることが出来ました。本当にありがとうございました、OM諸氏に感謝いたします。
つづく

730V-1バンドコントローラープログラミング

イメージ 1

イメージ 2

イメージ 3

USB-I/Oを使って730V-1への3.5M帯追加切り替え用のプログラムを作成しました。とはいっても、リレー用の3出力をオンオフするだけの超簡単な出力制御プログラムです。早速内容を簡単に説明すると、3出力であるのでパソコンで制御しやすいように1出力を追加して16進で扱えるようにします。するとプログラムで制御し易くなります。4ビットで扱うので全てのビットを立てると&HFとなります。I/O出力はPNPトランジスタでの制御でH出力時は電源印加OFFとなります。L出力時に電源印加ONとなります。730V-1のモードではI/O出力はすべてオン状態でリレー用の電源印加はされません。同様にフォーム上に配列したコマンドボタンに次のようにプログラムします。

パブリックフォームの外で以下のImports分を一行書きます。

Imports StepIO.USBIO
Public Class Form1
省略
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim inRet As Boolean
intDat(0) = Val("&H" + "F")
inRet = USBIO.uio_out(1, intDat(0), 0) 'L
End Sub
他には実行exeファイルと同じ場所にvbausbio.dllをおきます。
またプログラム上でUSBIO.vbをプロジェクトに読み込んでおきます。これだけでUSB-I/Oが制御できます。
上記のプログラムをintDat(0)に入れるデータを変えて同じようにコーディングします。
面倒なので全部コピーして載せます。

詳細はUSB-I/Oのkm2netのホームページを参考にしてください。
http://km2net.com/shop/index.shtml

Imports StepIO.USBIO
Public Class Form1

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
End

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim inRet As Boolean
intDat(0) = Val("&H" + "F")
inRet = USBIO.uio_out(1, intDat(0), 0) 'L
End Sub

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Sending data setting
intDat(0) = Val("&H" + "00") 'L
intDat(1) = Val("&H" + "FF") 'H
'初期状態で出力OFFとするためにHを出力する
Dim inRet As Boolean
intDat(0) = Val("&H" + "FF")
inRet = USBIO.uio_out(1, intDat(0), 0) 'L

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim inRet As Boolean
intDat(0) = Val("&H" + "E")
inRet = USBIO.uio_out(1, intDat(0), 0) 'L

End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim inRet As Boolean
intDat(0) = Val("&H" + "B")
inRet = USBIO.uio_out(1, intDat(0), 0) 'L
' inRet = USBIO.uio_out(1, intDat(1), 0) 'H
End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Dim inRet As Boolean
intDat(0) = Val("&H" + "C")
inRet = USBIO.uio_out(1, intDat(0), 0) 'L
' inRet = USBIO.uio_out(1, intDat(1), 0) 'H
End Sub

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click
Dim inRet As Boolean
intDat(0) = Val("&H" + "9")
inRet = USBIO.uio_out(1, intDat(0), 0) 'L
' inRet = USBIO.uio_out(1, intDat(1), 0) 'H
End Sub

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click
Dim inRet As Boolean
intDat(0) = Val("&H" + "8")
inRet = USBIO.uio_out(1, intDat(0), 0) 'L
' inRet = USBIO.uio_out(1, intDat(1), 0) 'H
End Sub
End Class

モジュールにはパブリック変数を入れています。一個なのでもったいないですが、後々増えてゆきます。
Module Module1
Public intDat(3) As Integer
End Module

上記のプログラムで当初の設計どおりに出力をコントロールする制御ソフト部が出来ました。USB-I/Oの出力にLEDを取り付けての確認だけですが、制御上は問題無いと思います。尚フォーム上にはニューメリックカウンターによる周波数設定も配置はしてありますが、まだプログラミングはしてません。ハムログとのデータやり取りがうまくいってからプログラミングしようと思います。いつになるやら...?他写真添付しました。USBでつないで出力が制御できますから、応用はかなり出来ると思います。私もステッピングモータの制御でUSB-I/Oの出力をタイマーで制御にてプログラムしましたが、うまくいきました。パソコンの上記のような超簡単なプログラムで出力ON/OFF制御ができるので、無線で自作をしている人は、またはこれからする人は是非とも挑戦して欲しいと思います。値段も格安ですから超超お得だと思います。プログラム言語はマイクロソフトのフリーウェアのVisualBasic2008ExpressEditionです。今は新しいVisualBasic2010Expressになっています。インストールは別パソコンにしていますが、このプログラムは試してはいません。2010でも基本的に問題ないと思います。 つづく

730V-1 80mバンド改造用コイル作製

イメージ 1

イメージ 2

イメージ 3

イメージ 4

今日は天気が良かったので、現在進行中の730V-1の80mバンド用のコイルを製作した。CQ誌に載っている730V-1の3.5MHz用のコイルの径は48Φで巻き数12ターンであったが、私の場合はケースサイズからもそんなに径の大きなコイルは巻けない。このため手持ちの塩ビ(クリーム色)で32Φのものを使うことにした。コイル用線材は銅線の1Φを使うことにした。というより手持ちの都合である。実際の730V-1を仮設にし、巻いたコイルを取り付けf0を確認しながら巻き数をカットアンドトライで何とか巻き数をもとめた。コイルの巻き数は23.5ターンであった。3.7MHzと3.5MHzのタップは23.5ターン中の2ターン目で200KHzがシフトしうまくいきそうである。ただSWRに関しては水平ダイポールにしたためかインピーダンスが75Ω近辺であるため50ΩのバランではSWRが高く2以上となっている。インピーダンスのマッチングが必要である。メインパーツであるコイルとリレーのおおよその配置確認を行いました。その写真を添付しました。コイルの留めにはホットボンドを用いました。実際の配置にあわせてリレーの端子の配線図面を作りました。半田付けの際に使います。図面添付しました。短縮化で使用する高耐圧コンデンサも適当なものが無かったので4KV耐圧の472(4700pF)の4個直列で1175pFを2つ用意した。CQ誌での800pF2個では7MHzで+60kHzアップでしたので1175pFでは≒90KHzアップとなる換算である。730V-1は7.100MHzに寸法を合わせたのでもう1個シリーズにし(940pF)、少し小さくしたほうが(≒70KHzアップ)良いかも知れない?試してみて決めようと思う。つづく

730V-1の80mバンド改造とそのコントローラ

イメージ 1

イメージ 2

イメージ 3

イメージ 4

イメージ 5

イメージ 6

今までサブアンテナで使用していたCREATE社の730V-1のV型ダイポールを水平ダイポールに改良し、ついでに80mバンドを追加してタワートップに上げるアンテナを考えてみた。
まずは今まで使用していたためアルミの表面がだいぶ汚れてきているので磨きなおしを行った。使用したのは、金属磨きでよく使われるピカールである。古いアンテナコートを落してから磨いたが、丸1日かかった。おかげて、手の指が鍛えられて敏感になった。磨き上げ比較の写真を載せました。
730V-1の仕様可能バンドは7,14,21,28MHzの4バンドである。今回はローディングコイルでの3.5MHz追加と、7MHzの拡張バンドに対応すべくコンデンサに挿入によるf0(共振周波数)シフトUPの為のコントローラーを考えてみた。構想を書き出したので写真で添付した。内容について説明すると、730V-1の水平DPの給電部に切り替えコントロールボックスを置き、通常の730V-1(4バンドダイポール)と7.1MH帯切り替え、3.5M帯切り替え、3.5MH帯f0アップ切り替え、3.7M帯の切り替え3.7M帯f0アップ切り替えの6モードを4芯ケーブルを使い無線機側(実際はパソコン)で切り替えをコントロールする考えである。これらを2回路2接点のリレー3個を用いて考えてみた。添付写真にリレーの1,2,3それぞれに対する動作割り当てをもう一枚の添付写真図面にあるアンテナ切り替え回路について行った。モードとして6と8は設計上はダブるので、使わないことになる。また7MH帯でのf0アップのコンデンサを用いての3.5MH帯、3.7MH帯のf0アップとなるので、あまりf0アップは3.5、3.7MH帯では望めないかもしれない。
実際の切り替えのコントロールボックスを制御する側はパソコンで行う。パソコンのUSB端子を使うUSB I/Oコントロール基板を使いプログラムで制御する。USB I/Oの出力を3ポート使いリレーのオンオフをするだけのプログラムです。とてもプログラムとしては簡単すぎるが、簡単なのが一番よい。I/Oの出力をNPNトランジスタで受け12Vの電源をON/OFF制御し、電圧を4芯ケーブルを通してアンテナ給電部のリレーを切り替えるだけである。使用するモードは1、2、3、4、5,7の6モードでありそれぞれをリレーON/OFFに制御する。プログラムでのコントロールなので、もう少し機能をもたせて、フォーム上のボタンを押す前にボタンの横の周波数を使う周波数に合わせて置くとRS-232Cを通して繋いである無線機にデータを送り周波数が設定される機能をつける。同時にパソコン上の立ち上げてある電子ハムログ日誌の周波数欄にデータを転送書き込む事を行うようにする。と言うのは、RS-232Cは無線機の周波数設定制御で使うため、ハムログ日誌は周波数を読み取ることが出来ないのである。ハムログへのPCからの周波数データ書き込みに関しては現在資料を読みあさっている段階です。HAMLOGプログラム開発室の専用BBS上では可能なように書いてあるが?...現在VB2008EXPRESSでトライ確認中です。簡単なフォームの図を書いたが、構想なので実際のプログラム上は変わる可能性があります。
以上が設定ボタンを押すと自動で、その周波数のバンドにアンテナが切り替わり、かつトランシーバーも周波数が設定され(LSB、USB、CW、FM、RTTY、SSTVなどのモードは制御していませんが設定はコマンド送出のみで可能なので後でフォーム上に設定部を追加するかも)パソコン上の電子ハムログにもその周波数が設定されると言う機能が可能となります。つづく
アクセスカウンター
  • 今日:
  • 昨日:
  • 累計:

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