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
 リモート制御プログラムを作成する予定です。




トップページヘもどる