これは自分のためのメモです。
この備忘録を見られて真似されても結構ですが、動作の保証は出来かねます。
また、真似られたことで不測の不具合が発生しましても、私は一切の責任を負いません。
[pip pip3 インストール]
$sudo apt install pip -y
[pyvisa インストール]
※いろいろと先人のご苦労を拝見しては真似てやりましたが、バージョンによって少し違うみたいで、なかなか上手くできません。
一応、以下の方法は自分自身で3回構築しなおして再現性あるので大丈夫のはずです。
pip3 install pyvisa pip3 install pyvisa-py
[USB関連インストール]
pip3 install pyusb
[usbデバイスのルール設定]
① usb アドレス確認
pi@raspberrypi:~$ lsusb
Bus 001 Device 005: ID 0bda:8152 Realtek Semiconductor Corp. RTL8152 Fast Ethernet Adapter
Bus 001 Device 004: ID 1ab1:044d Rigol Technologies DHO802
Bus 001 Device 003: ID 6656:0834 uni-trend UTG900E
Bus 001 Device 002: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
pi@raspberrypi:~$
※ Device 003: ID 6656:0834 uni-trend UTG900E と判明する
※ Device 004: ID 1ab1:044d Rigol Technologies DHO802 と判明する
② sudo vi /etc/udev/rules.d/99-com.rules の1行目に追加する
先の6656:0834と1ab1:0443が重要
#UNI-T Funcrion Arvitrary Waveform Generator UTG900
SUBSYSTEMS=="usb",ACTION=="add",ATTRS{idVendor}=="6656",ATTRS{idProduct}=="0834",GROUP="usbtmc",MODE="0660"
#Rigol Technologies DHO802 Oscilloscope
SUBSYSTEMS=="usb",ACTION=="add",ATTRS{idVendor}=="1ab1",ATTRS{idProduct}=="044d",GROUP="usbtmc",MODE="0660"
③ tcbtmcの権限設定する
sudo groupadd usbtmc
sudo usermod -aG usbtmc pi
④ 必ずrebootする
sudo reboot
[]
・visaアドレス確認
pi@raspberrypi:~$ python
Python 3.7.3 (default, Jul 25 2020, 13:03:44)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyvisa as visa
>>> r = visa.ResourceManager()
>>> print(r.list_resources())
('USB0::6833::1101::DHOxxxxxxxx::0::INSTR','USB0::26198::2100::89xxxxxx::0::INSTR')
・scpiコマンド *IDN? 実行
① test.pyを作る
pi@raspberrypi:~$ vi test.py
#! /usr/bin/python3
import pyvisa as visa
awgAddr = 'USB0::26198::2100::89xxxxxxx::0::INSTR'
dsoAddr = 'USB0::6833::1101::DHOxxxxxxx::0::INSTR'
rm = visa.ResourceManager()
instr = rm.open_resource(awgAddr)
st_q = instr.query("*IDN?")
print("AWG *IDN? = " + st_q)
instr = rm.open_resource(dsoAddr)
st_q = instr.query("*IDN?")
print("dso *IDN? = " + st_q)
②実行権限を与える
pi@raspberrypi:~$ chmod +x test.py
③実行する
pi@raspberrypi:~$./test.py
awg *IDN? = UNI-T Technologies,UTG900E,89xxxxxxx,1.09
dso *IDN? = RIGOL TECHNOLOGIES,DHO802,DHOxxxxxxx,00.01.00