2
0

ラズパイでRS232C通信

Last updated at Posted at 2024-05-02

ラズパイを使って、古いwindows用のUSB-シリアル変換装置を使ったら、案外簡単だったのでメモしておく。

用意する主なモノ
・ラズパイ
・USB-シリアル変換装置
変換装置のチップは案外幅広く対応しているのかもしれません。
image.png

windowsだと、OSのアップデートで古い変換装置が使えなくなったりする。
Linux系だとドライバ不要で利用できる。

参考

ラズパイとUSB-シリアル変換装置を接続

たいていドライバ不要なので、接続するだけ。
以下のコマンドでどこに接続されたか探してみる。

ls /dev | grep USB

image.png
複数台変換装置があると、接続順でttyUSB0が先で、次にttyUSB1が出来るようだ。

実装環境

python 3.11 と pyserial
image.png

pyserialが入っていなければ

pip install pyserial

名前はpyserialなんだけど、importするときはserialなので注意。

プログラム

稀な凡ミスですが、同一フォルダに serial.py などの名前でサンプルプログラムを書くと、importがpyserialではなくサンプルプログラムがインポートされてserial.Serialが無いって言われます。

test.py
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,タイムアウトなし、制御無しなどとなっている。
image.png
https://pyserial.readthedocs.io/en/latest/pyserial_api.html

ドライバが無いと諦めていたUSB-シリアル変換装置や、測定機器が使えました。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0