IoTで使うPython入門Step3-番外編 小型PCのセットアップ

 ラズパイの特徴は、小さい、静か、でもいろいろなデバイスをつなげられます。

 Windowsのvisaドライバしか用意されていない自体に遭遇しました。ラズパイと同じくらい小さいPCが用意できたらと、Webを検索して下記のパーツを購入してセットアップしました。

小型のPC

 第8世代Celeronプロセッサ J4005を搭載した Intel NUCキットBOXNUC7CJYHをアマゾンで購入しました。マニュアルをWebで検索しましたが、見つかりませんでした。ちょっと困った状況です。CPUは取り付けてあるようですが、ファンがあるのか不明です。メモリはSO-DIMMと書かれていたので、4Gバイト1枚を入手しました。SATAのインターフェースが一つあると書かれていたので、SSD 240Gバイトを入手しました。

 電源は付属するとは書かれていませんが、なぜか、電源ケーブルは付属していないという情報があったので、ケーブルも購入しました。

 今までPCを組み立てた経験から、メモリは2Gバイトでは容量が少なすぎて、何もしなくてもスワップが続きます。ハードディスクの容量が32GバイトではWindows updateが完了しません。

 おもったよりコンパクトです。

 ゴム足のネジを4本外して、裏ブタを開けました。

  SO-DIMMを二つあるスロットの下側に挿しこみました。

 メモリを下に押すと、カチッとロックされました。

 裏ぶたにSSDを挿しこみます。アルミの外枠に白い粉が吹いていました。相当悪い環境に保存されていたようです。

 裏ブタを元に戻してねじを締めて閉じます。

 電源ユニットは入っていました。国ごとに異なるAC100VやAC200Vのプラグの形状に対応するケーブルは購入者という立場のようです。

Windows 10のセットアップ

 Windows 10のライセンス認証は30日以内に行えばよいので、動くかどうかわからないハードを利用するときにはとりあえずのインストールができます。
 マイクロソフトのサイトからUSBメモリに、ダウンロードしながら書き込みます。NCUのUSBスロットに挿し込んで電源を入れます。
 Windowsのセットアップが始まります。

 終了したら、Windows Updateを実行して最新状態にします。昔のCore2より少し遅いぐらいで、ストレスはそれほど感じませんでした。

 Keysight IO Libraries suiteをダウンロードし、インストールします。

  ディジタル・マルチ・メータの34461AのLANとUSB、電源のE3631AのGPIBをGPIB-USB変換器Agilent 82357Bをつなぎました。Keysight IO Libraries suiteを動かすと、いずれも認識しました。

Python3をインストール

 第3回のときと同じく、Python3.7をインストールします。
 Python3はインストールしたらすぐに動きますが、pipは認識されていないので、一度再起動します。コマンド・プロンプトで、ライブラリをインストールします。

pip install pyusb
pip install pyvisa
pip install pyvisa-py

電源E3631AのGPIB

import visa
r = visa.ResourceManager()
k = r.get_instrument("GPIB0::8::INSTR")
print(k.query("*IDN?"))
print(k.query("CURR?"))

 実行結果です。

DMMの34461AのUSB

import visa
from time import sleep

visaAddr = "USB0::0x2A8D::0x1301::MY53216054::0::INSTR"

r = visa.ResourceManager()
instr = r.get_instrument(visaAddr)

print(instr.query("*IDN?"))

data = instr.query("MEAS:DC?")
print("DC: ", float(data))

instr.write("CONF:VOLT:AC\n")
sleep(0.5)
data = instr.query("MEAS:AC?")
print("AC: ", float(data))

 実行結果です。

DMMの34461AのTCP/IP

import visa

visaAddr = "TCPIP0::192.168.111.105::hislip0::INSTR"

r = visa.ResourceManager()
instr = r.get_instrument(visaAddr)
print(instr.query("*IDN?"))

data = instr.query("MEAS:DC?")
print("DC: ", float(data))
instr.write("CONF:VOLT:AC\n")
data = instr.query("MEAS:AC?")
print("AC: ", float(data))

 実行結果です。

(※)このハードウェアにCentOS7をインストールしました。しかし、液晶画面の同期がおかしくなり、インストール中に画面がふらついて設定がほとんど不可能です。どの部分を設定したりクリックすればわかっていればインストールはできます。最終的にOSのインストールが終わり、画面の設定で30Hzを指定すると、普通に使えるようになりました。