リグ制御プログラムをpySerialで(CWフィルターの特性)

信号発生器を用いて、あなたはあなたのIFフィルターの特性を測定することができます。

信号発生器の出力(7015kHzのCW)は、IC-7410に軽く結合されます。そして、信号強度が、受信部を7014kHzから7016.5kHzまで100Hz毎にチューニングされながら測定されます。

import sys
import numpy as numpy
import matplotlib.pyplot as plt
import serial

ser = serial.Serial('/dev/ttyUSB0', 19200, timeout=1)

xvalue = []
yvalue = []

for freq_10hz in range(701400, 701650, 1):
	hz10   = freq_10hz           % 10
	hz100  = freq_10hz //     10 % 10
	khz    = freq_10hz //    100 % 10
	khz10  = freq_10hz //   1000 % 10
	khz100 = freq_10hz //  10000 % 10
	mhz    = freq_10hz // 100000 % 10

	set_freq = b'\xfe\xfe\x80\xe0\x05'     \
			+bytes([16*hz10        ])      \
			+bytes([16*khz   +hz100])      \
			+bytes([16*khz100+khz10])      \
			+bytes([          mhz  ])      \
			+b'\x00\xfd'
	ser.write(set_freq)
	data1 = ser.read(18) # not 17 to raise timeout
	
	get_Smeter = b'\xfe\xfe\x80\xe0\x15\x02\xfd'
	ser.write(get_Smeter)
	data2 = ser.read(16)
	signal = int( data2.hex()[26:30] )
	freq = freq_10hz/100.0
	xvalue.append(freq)
	yvalue.append(signal)
	print(freq, signal)

ser.close()

plt.figure(1, figsize=(8,8))
plt.subplot(111)
plt.grid(True)
plt.plot(xvalue, yvalue, color='red', linewidth=3)
plt.show()

受信部は、それぞれがプリセット可能な3種類のディジタルIFフィルターを備えています。グラフは、私の現在の設定を示しています。

リグ制御プログラムをpySerialで

リグを制御するプログラムをpySerialを用いて書いてみましょう。

import serial
ser = serial.Serial('/dev/ttyUSB0', 19200, timeout=1)

for freq_khz in range(567,1449,3):
	khz    = freq_khz         % 10
	khz10  = freq_khz //   10 % 10
	khz100 = freq_khz //  100 % 10
	mhz    = freq_khz // 1000 % 10

	set_freq = b'\xfe\xfe\x80\xe0\x05\x00' \
			+bytes([16*khz         ])      \
			+bytes([16*khz100+khz10])      \
			+bytes([          mhz  ])      \
			+b'\x00\xfd'
	ser.write(set_freq)
	data1 = ser.read(18) # not 17 to raise timeout
	
	get_Smeter = b'\xfe\xfe\x80\xe0\x15\x02\xfd'
	ser.write(get_Smeter)
	data2 = ser.read(16)

	print(freq_khz, int( data2.hex()[26:30] ))
ser.close()

簡単なプログラムで、AMバンドをスキャンして信号強度を記録します。

放送局は、左から右へ、NHK-1, NHK-2, AFN, TBSです。