ラズパイを使って、古いwindows用のUSB-シリアル変換装置を使ったら、案外簡単だったのでメモしておく。
用意する主なモノ
・ラズパイ
・USB-シリアル変換装置
変換装置のチップは案外幅広く対応しているのかもしれません。
windowsだと、OSのアップデートで古い変換装置が使えなくなったりする。
Linux系だとドライバ不要で利用できる。
参考
ラズパイとUSB-シリアル変換装置を接続
たいていドライバ不要なので、接続するだけ。
以下のコマンドでどこに接続されたか探してみる。
ls /dev | grep USB
複数台変換装置があると、接続順でttyUSB0が先で、次にttyUSB1が出来るようだ。
実装環境
pyserialが入っていなければ
pip install pyserial
名前はpyserialなんだけど、importするときはserialなので注意。
プログラム
稀な凡ミスですが、同一フォルダに serial.py などの名前でサンプルプログラムを書くと、importがpyserialではなくサンプルプログラムがインポートされてserial.Serialが無いって言われます。
import serial # pyserialを読むけど、名前はserial
dev = "/dev/ttyUSB0"
rate = 9600
ser = serial.Serial(dev, rate, timeout=2)
def write_and_read(send):
string = send
string = string + "\r\n" # LR+LFの意味
string = string.encode('ascii') # 括弧内は空白でも良いかも
ser.write(string)
res = ser.readline()
res = res.decode()
print (res)
# return res
# 以下は今回利用したテスターのデータ要求コマンド
write_and_read(":FETCCNT?")
write_and_read(":FETCCNT2?")
デフォルトの設定は以下のとおりで、レート9600、8ビット、パリティなし、ストップビット1,タイムアウトなし、制御無しなどとなっている。
https://pyserial.readthedocs.io/en/latest/pyserial_api.html
ドライバが無いと諦めていたUSB-シリアル変換装置や、測定機器が使えました。