7.2.1 AR8600MK2(広帯域受信機)リモート制御の実験
1.作成時期
2007/3/中旬 2.作成日数 2日間 3.実験,作成 1.AR8600MK2(広帯域受信機)について AR8600MK2はAORの広帯域受信機(100kHz〜3000MHz)で背面にリモート端子を搭載しています。 AR8600MK2は機能が多く、前面パネルの少ない操作キーでは操作に非常に無理がある為、補助的にパソコンから リモート制御を行なうソフトを作成します。 以下の1枚目の写真はAR8600MK2の前面で、2枚目の写真はAR8600MK2の背面です。背面のシリアルケーブルで パソコンと接続しています。,3枚目の写真は室内ループアンテナ(ApexRadio 500SL:30kHz〜180MHz)でAR8600MK2に 接続しています。 ![]() ![]() ![]() 2.プログラミングツールについて プログラミングツールは、WindowsVista上のVisualStudio2005 StandardEditionのVisualBasic2005を 使用して、通常よく使うAR8600MK2機能のリモート制御ソフトを作成します。 以下はプログラミング中のパソコン画面です。 ![]() ![]() 3.AR8600MK2リモート制御ソフトの作成 今回は通常よく使うAR8600MK2の受信モード切替え部分の簡単なテストプログラムを作成します。 まず、VisualBasicのフォームに8つのラジオボタンとSerialPortコンポーネントとTimerコンポーネントを1つ追加します。 SerialPortコンポーネントの変更箇所(2箇所)は、PortNameをCOM3,StopBitzをTWOに変更します。 Timerコンポーネントの変更箇所はありません。Intervalは規定値の100ミリ秒のままにしておきます。 ラジオボタンの変更箇所は表示名称のみで、それぞれTextを変更(オートモード,・・・,NUM)します。 その後、以下のプログラムコードを記述します。 ○以下のプログラムについて 以下のプログラムで使用するAR8600MK2のターミナルコマンドは、以下のAUn,MDn,EXの3つです。 プログラム起動時にAR8600の受信モードを受信し、その後はモード設定(送信)を行なうだけです。 通信設定等はSerialPortコンポーネントの設定値を使用しています。 1.AU(オートモード/マニュアルモード) ・AU:受信文字列から現在の受信モードを確認する。(受信文字列(7文字):(例)AU0 MD7) ・AU0:マニュアルモードに設定 ・AU1:オートモードに設定 2.MD(受信モード) ・MD:受信文字列から現在の受信モードを確認する。(受信文字列(3文字):(例)MD7) ・MD0:WFMモードに設定 ・MD1:NFMモードに設定 ・MD2:AMモードに設定 ・MD3:USBモードに設定 ・MD4:LSBモードに設定 ・MD5:CWモードに設定 ・MD6:SFMモードに設定 ・MD7:WAMモードに設定 ・MD8:NAMモードに設定 3.EX(EXIT) REMOTOモードから抜ける。(モード設定後に実行する。) ○VB2005プログラムリスト(青色の箇所が記述追加箇所です。) Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles MyBase.Load Dim ReceiveMode As String Dim StringEnd As String Dim Mode_AU As String Dim Mode_MD As String ReceiveMode = "" StringEnd = Chr(13) & Chr(10) 'COMポートオープン SerialPort1.Open() 'AR8600 現在モード受信 SerialPort1.Write("AU" & Chr(13) & Chr(10)) ReceiveMode = SerialPort1.ReadTo(StringEnd) Mode_AU = Mid(ReceiveMode, 1, 3) 'AU0:MANモード,AU1:AUTOモード Mode_MD = Mid(ReceiveMode, 5, 7) 'MD0〜MD8:受信モード 'AR8600 現在モードをダイアログへ反映 If Mode_AU = "AU1" Then RadioButton1.Checked = True Else If Mode_MD = "MD0" Then RadioButton2.Checked = True End If If Mode_MD = "MD1" Then RadioButton3.Checked = True End If If Mode_MD = "MD2" Then RadioButton4.Checked = True End If If Mode_MD = "MD3" Then RadioButton5.Checked = True End If If Mode_MD = "MD4" Then RadioButton6.Checked = True End If If Mode_MD = "MD5" Then RadioButton7.Checked = True End If If Mode_MD = "MD6" Then RadioButton8.Checked = True End If If Mode_MD = "MD7" Then RadioButton9.Checked = True End If If Mode_MD = "MD8" Then RadioButton10.Checked = True End If End If End Sub Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged 'AUTOモード送信 SerialPort1.Write("AU1" & Chr(13) & Chr(10)) Timer1.Enabled = True End Sub Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged 'WFMモード送信 SerialPort1.Write("MD0" & Chr(13) & Chr(10)) Timer1.Enabled = True End Sub Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged 'NFMモード送信 SerialPort1.Write("MD1" & Chr(13) & Chr(10)) Timer1.Enabled = True End Sub Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged 'AMモード送信 SerialPort1.Write("MD2" & Chr(13) & Chr(10)) Timer1.Enabled = True End Sub Private Sub RadioButton5_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton5.CheckedChanged 'USBモード送信 SerialPort1.Write("MD3" & Chr(13) & Chr(10)) Timer1.Enabled = True End Sub Private Sub RadioButton6_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton6.CheckedChanged 'LSBモード送信 SerialPort1.Write("MD4" & Chr(13) & Chr(10)) Timer1.Enabled = True End Sub Private Sub RadioButton7_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton7.CheckedChanged 'CWモード送信 SerialPort1.Write("MD5" & Chr(13) & Chr(10)) Timer1.Enabled = True End Sub Private Sub RadioButton8_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton8.CheckedChanged 'SFMモード送信 SerialPort1.Write("MD6" & Chr(13) & Chr(10)) Timer1.Enabled = True End Sub Private Sub RadioButton9_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton9.CheckedChanged 'WAMモード送信 SerialPort1.Write("MD7" & Chr(13) & Chr(10)) Timer1.Enabled = True End Sub Private Sub RadioButton10_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton10.CheckedChanged 'NAMモード送信 SerialPort1.Write("MD8" & Chr(13) & Chr(10)) Timer1.Enabled = True End Sub Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Timer1.Enabled = False SerialPort1.Write("EX" & Chr(13) & Chr(10)) End Sub End Class 4.以下の写真等について 1枚目について、ハイパーターミナルはすでにWindowsVistaには実装されなくなった為、ターミナルツールは フリーソフトのTeraTermProを使用します。 2,3枚目はリモート制御テストプログラムの実験中の状態です。特に問題なく動作しています。 ![]() ![]() ![]() 5.感想 今回は、AR8600MK2のリモート制御プログラムのテスト,実験を行いました。次回は、実用的なAR8600MK2 リモート制御プログラムを作成する予定です。 トップページヘもどる |