オシロスコープのメーカーに問い合わせをしたところ、RaspberryPiOSにドライバソフトがインストールできないのでUSB機器として認識することはできないとの回答だった。ほかのLINUX OSでは、インストールできるのだそうだ。
本当かなとは思いつつも、メーカーが言うのだから仕方がない。
USB接続はあきらめて、Ethernet経由での制御に切り替えることにした。
Python自体ほとんどはじめてに近いので、何もわからない中でのプログラミングとなる。RaspberryPiを購入したときに少しだけ、本の内容を打ち込んだ経験しかないのだ。
オシロスコープのデータをCSVに落とすところは、RaspberryPi 計測機器制御 CSV保存などのキーワードで検索すると参考になる部分が見つかった。
下記の様なプログラムを作って、信号発生器で出した80nsのパルス幅を10回計測してCSVデータとしてSAVEしてみた。
間違っているかもしれないが、これは何とかエラーが出ずに動くようだ。
Keysightのオシロスコープのコマンドは、Tektronixとは異なるコマンド形態なので勉強しなおす必要がありそうだ。
しかし、オシロスコープのマニュアルの例文にPythonがあるのは、助かる。気もする。
しかし、あまり参考にはならなかった。
import pyvisa as visa
import datetime
import csv
rm = visa.ResourceManager('@py')
address="TCPIP::192.168.1.1::inst0::INSTR"
inst = rm.open_resource(address)
print(inst.query("*idn?"))
inst.write("recall:setup 2")
inst.write(":WGEN:FREQuency 1000")
i=0
with open("/home/pi/log_test.csv", "w",newline='') as f:
writer=csv.writer(f)
writer.writerow(["Date","Pulse width"])
for i in range(10):
inst.write("sing")
inst.query("*OPC?")
inst.write("measure:source channel1")
time1=datetime.datetime.now()
PWIDTH=inst.query("MEASURE:PWIDTH?")
print(time1,PWIDTH)
data=[time1,PWIDTH]
writer.writerow(data)
inst.close()
rm.close()
下記のCSVファイルから、1kHzの信号で、1秒間に10回程度の取り込みができているようだ。
これで、長時間の電圧変化なども取り込んでデータにすることができそうだ。