最新版はこちら。 突っ込みは各日付の BBS エントリのほか、 メール (nakano@st.seikei.ac.jp) や フォーム からどうぞ。 なおスパム除けのため、BBS 機能には 緩い認証を入れて います。 検索エンジンから来た方は、エンジンの方のキャッシュを見るか、 下の簡易検索を試してみてください。
|
Namazu for hns による簡易全文検索 詳しくは 詳細指定/ヘルプを参照して下さい |
||||||||||||||||||||||||||||||||||||||||||||||||
import os print(f"{os.getcws()}")でわかる。自分は C:\Users\nakano だった。
jupyter nbconvert --to python .\hoge.jpynb
#!/usr/bin/env python # coding: utf-8 # In[1]: import serial import time import sys import matplotlib.pyplot as plt # In[2]: class Spe: def __init__(self, port): try: self.spe = serial.Serial(port, 115200, timeout=None) except: print(f"{port} の機器を認識できません") self.spe.close() sys.exit() self.spe.write('*idn?\r\n'.encode()) line = self.spe.readline() idArray = line.decode().rstrip().split(',') print(f"{idArray[1]} is ready\n") self.setV(0.0) self.setI(0.0) self.setVL(5.0) self.setIL(0.1) def __del__(self): self.outOff() self.setV(0.0) self.setI(0.0) self.setVL(5.0) self.setIL(0.1) self.spe.close() def setVL(self, vlimit): self.spe.write(f"VOLT:LIM {vlimit}\r\n".encode()) def setV(self, voltage): self.spe.write(f"VOLT {voltage}\r\n".encode()) def setIL(self, climit): self.spe.write(f"CURR:LIM {climit}\r\n".encode()) def setI(self, current): self.spe.write(f"CURR {current}\r\n".encode()) def outOn(self): self.spe.write('OUTP ON\r\n'.encode()) def outOff(self): self.spe.write('OUTP OFF\r\n'.encode()) def getV(self): self.spe.write("MEAS:VOLT?\r\n".encode()) line = self.spe.readline() return float(line.decode().rstrip()) def getI(self): self.spe.write("MEAS:CURR?\r\n".encode()) line = self.spe.readline() return float(line.decode().rstrip()) # In[3]: spe6102 = Spe("COM4") spe6102.setVL(12.0) spe6102.setIL(0.5) # In[4]: spe6102.setV(12) spe6102.outOn() voltage_data = [] current_data = [] for n in range(11): current = 0.01 * n spe6102.setI(current) time.sleep(1.5) voltage = spe6102.getV() current = spe6102.getI() voltage_data.append(voltage) current_data.append(current) print(f"{voltage},{current}") spe6102.outOff() del spe6102 # In[5]: plt.figure(figsize=(8,6)) plt.plot(voltage_data, current_data, marker = 'o', linestyle = '', label = '100 ohm') plt.xlabel('Voltage [V]') plt.ylabel('Current [A]') plot.savefig('SerialTest.jpg') plt.show()ChatGPT さんに添削してもらったら、del spe6102 するんじゃなくて
with Spe("COM4") as spe6102: ....するほうがええで、と教えてもらった。まあそうだけど、このあと複数の機器を使うことになるので、今回は一応このままに。