これは自分のためのメモです。
この備忘録を見られて真似されても結構ですが、動作の保証は出来かねます。
また、真似られたことで不測の不具合が発生しましても、私は一切の責任を負いません。
[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