EthernetのIPアドレスからPyvisaを介して手持ちのオシロスコープEDUX1052Gを制御できることは、確認していたが、USBを介しての制御はとん挫していた。
オシロスコープのメーカーに問い合わせても、自社(Keysight)のVISAをインストールしないとできないと言われていた。しかし、自分はRaspberrypiでの制御にこだわっているため、メーカーのVISAにLinux対応がないためにできない。VISAについてググっているとNI-VISAがLinux版があるとの記載があったが、NI製品を使用しないとライセンスがないため、別途ライセンスを購入する必要があるようだ。これは、自分の方針に反するので、あくまで無料で何とかなる範囲で構築をしたいと考えていた。
2021年のこの夏休みに何とかするためいろいろ試したところ、USB経由でのID 取得までこぎつけたのでその経緯を書き留めておく。
とはいえ、例によって人任せのWebチェックから始まる。
参考になったURL:
IoTで使うPython入門Step3-計測 (2) DMM 34461A-②
IoTで使うPython入門Step3-計測 (2) DMM 34461A-② | 電子工作の環境向上 (denshi.club)
まず、初期化したNOOBSLite_V3.6をSDカードにコピーしてスタートする。(要約90分)
最近はやりのRaspberrypi OS Imager for Windowsが私のPCにはインストールできなかったからだ。エラーが出てしまい使用できないようだ。
EeePC1052(Windows7)をWindows10 Starter(メモリ2GBへ増設した32ビット版)に無理やりしたPCだからかもしれない。
pip3 install pyvisa (これを忘れていました)
Pip3 install pyusb
Pip3 install python-usbtmc
sudo nano /etc/udev/rules.d/usbtmc.rules
下記を入力
# USBTMC Instruments
# Keysight EDUX1052G
SUBSYSTEMS=="usb",ACTION=="add",ATTRS{idVendor}=="2a8d",ATTRS{idProduct}=="039b",GROUP="usbtmc",MODE="0660"
# Devices
KERNEL=="usbtmc/*", MODE="0660",GROUP="usbtmc"
KERNEL=="usbtmc[0-9]*", MODE="0660",GROUP="usbtmc"
CTRL^O >enter>CTRL^XにてEdit終了
sudo groupadd usbtmc
Sudo usermod -a -G usbtmc pi
こでReboot
忘れがちかつ、大事なことだが、オシロスコープも電源OFF/ON
(ここが結構肝だった。正直半日これだけで悩んだ。)
Programming>Tonny Python IDEを実行
下記プログラムを実行
import usbtmc
#print(usbtmc.list_resources())
instr = usbtmc.Instrument(10893,923)
print(instr.ask("*IDN?"))
#print(usbtmc.list_resources())をコメントにしないとERRORとなってしまう。
print(usbtmc.list_devices())とするとUSBのIDが表示されてERRORとはならない。
いろいろ試してみた環境では、 print(usbtmc.list_resources())が通って
USB::10893::923::INSTRが返ってくるのだが、初期化した、まっさらな環境では確認できていない。
しかし、当初の目的であるUSBTMCデバイスの制御には一歩前進したようだ。