ja1yaz’s diary

感動したいおやじの備忘録的ブログ 

RaspberrypiでUSBの計測機器の制御を行いたい

EthernetIPアドレスから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) 

 

GITHUB Python-USBTMC  V0.8

python-usbtmc · PyPI 

 

まず、初期化した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 

f:id:ja1yaz:20210815210808p:plain

USBTMC1

下記を入力 

# 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?")) 

 

f:id:ja1yaz:20210815210822p:plain

USBTMC_2


 

#print(usbtmc.list_resources())をコメントにしないとERRORとなってしまう。 

 

print(usbtmc.list_devices())とするとUSBのIDが表示されてERRORとはならない。 

いろいろ試してみた環境では、 print(usbtmc.list_resources())が通って 

USB::10893::923::INSTRが返ってくるのだが、初期化した、まっさらな環境では確認できていない 

しかし、当初の目的であるUSBTMCデバイスの制御には一歩前進したようだ。