エンジニアライフスタイルブログを運営しているミウラ(@miumiu06171)です。
普段はフリーランスでシステムエンジニアをしております。
今回は、Pythonで組み込み機器等とシリアル通信を行う際に知っておきたいCOMポート番号の確認方法を紹介していきます。
なお、本記事内のPythonソースコードは、Visual Studio Code (VS Code)で動作を確認しています。
同様に動作確認したい方はこちらの記事も参照し、まずはVS Codeの環境構築をおこなうとよいでしょう。
シリアル通信のCOMポート番号を確認する方法
シリアル通信のCOMポートは、デバイスマネージャーやTeraTermからも確認することが可能ですが、Pythonプログラムで確認することもできます。
Pythonプログラムでシリアル通信のCOMポート番号を確認するには、現在認識しているCOMポートを一覧表示すれば把握することができます。
COMポートを一覧表示するには、以下のソースコードを使用します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
import sys import glob import serial def serial_ports(): """ Lists serial port names :raises EnvironmentError: On unsupported or unknown platforms :returns: A list of the serial ports available on the system """ if sys.platform.startswith('win'): ports = ['COM%s' % (i + 1) for i in range(256)] elif sys.platform.startswith('linux') or sys.platform.startswith('cygwin'): # this excludes your current terminal "/dev/tty" ports = glob.glob('/dev/tty[A-Za-z]*') elif sys.platform.startswith('darwin'): ports = glob.glob('/dev/tty.*') else: raise EnvironmentError('Unsupported platform') result = [] for port in ports: try: s = serial.Serial(port) s.close() result.append(port) except (OSError, serial.SerialException): pass return result if __name__ == '__main__': print(serial_ports()) |
【実行結果】
上記の実行結果のように現在認識しているCOMポートをリストで出力してくれます。
上記の場合、COM11, COM12が表示されているので、COMポート番号は11と12ということがわかります。
シリアル通信ができなかった場合に、そもそもCOMポートを認識しているか、COMポート番号は正しいものを指定しているかなどデバッグするときに本Pythonプログラムを役立ててみてください。