ガンバラナイ

Pythonでシリアルポートの一覧取得(Windows)

Pythonでシリアルポートの一覧取得(Windows)

Pythonでシリアルポート通信をやってみようと思います。
まずは、シリアルポートの一覧を取得できるようにしてみます。
Windows環境でやってみます。

pythonインストール

Pythonの開発環境を用意しよう!(Windows) | プログラミングの入門なら基礎から学べるProgate[プロゲート]

このあたりを参考にpythonをインストールしました。

pySerialインストール

pythonでシリアル通信を行う場合、pySerialというライブラリを使うのが良さそうです。

【TIPS】Pythonでシリアル通信するpyserialの使い方と動作確認方法[Windows版]|エンジニアライフスタイルブログ

このあたりを参考に、pySerialをインストールしました。

自分はArduinoをつなぎましたが、適当なシリアルポートがない場合は、上記サイトにあるようにcom0comという仮想シリアルドライバを入れるとよさそうです。

シリアルポート取得

pySerialライブラリには、シリアルポートの一覧を取得するメソッドがあるようなのでこちらを使ってみます。

pySerial_listPorts.py
import serial.tools.list_ports

ports = list(serial.tools.list_ports.comports())
for p in ports:
    print(p)
    print(" device       :", p.device)
    print(" name         :", p.name)
    print(" description  :", p.description)
    print(" hwid         :", p.hwid)
    print(" vid          :", p.vid)
    print(" pid          :", p.pid)
    print(" serial_number:", p.serial_number)
    print(" location     :", p.location)
    print(" manufactuer  :", p.manufacturer)
    print(" product      :", p.product)
    print(" interface    :", p.interface)
    print("")

実行結果

>python pySerial_listPorts.py
COM3 - USB シリアル デバイス (COM3)
 device       : COM3
 name         : COM3
 description  : USB シリアル デバイス (COM3)
 hwid         : USB VID:PID=2341:0042 SER=85734323331351C0F1A0 LOCATION=1-2
 vid          : 9025
 pid          : 66
 serial_number: 85734323331351C0F1A0
 location     : 1-2
 manufactuer  : Microsoft
 product      : None
 interface    : None

COM7 - com0com - serial port emulator (COM7)
 device       : COM7
 name         : COM7
 description  : com0com - serial port emulator (COM7)
 hwid         : COM0COM\PORT\CNCA0
 vid          : None
 pid          : None
 serial_number: None
 location     : None
 manufactuer  : Vyacheslav Frolov
 product      : None
 interface    : None

COM8 - com0com - serial port emulator (COM8)
 device       : COM8
 name         : COM8
 description  : com0com - serial port emulator (COM8)
 hwid         : COM0COM\PORT\CNCB0
 vid          : None
 pid          : None
 serial_number: None
 location     : None
 manufactuer  : Vyacheslav Frolov
 product      : None
 interface    : None

COM3が、Arduino
COM7,COM8が、仮想シリアルドライバー
です。

pythonでのシリアルポート一覧ができました。
WSL環境(Ubuntu)では、どのような結果になるかも試してみようと思います。