YOU
M5StackからのセンサーデータをPCに取り込むとき、
パソコンが変わるたびに、COMポートが変わるので、
毎回デバイスマネージャで調べるのが面倒。
けんろう
PythonのpySerialライブラリに、
有効なシリアルポートを調べるためのメソッドがあります。
今回は、PythonのライブラリpySerialで、アクティブなポートを探索する方法を紹介します。
アクティブなポートだけでなく、デバイス情報やメーカ情報等も入手できますので、種類の違うM5Stackを使えば、どのM5Stackが接続されているかもプログラム上で判別することもできます。
受講者満足度90%以上のプログラミングスクール【DMM WEBCAMP】今回作成するアプリ
M5Stack(シリーズ品)を繋ぎ、アクティブなシリアルポートとその情報を、コンソール上に表示する
構成
Windows PCに、複数台のM5Stack(シリーズ)をUSBで繋ぎます。
リンク
サンプルコード(Windows PC)
#!usr/bin/env python
# -*- coding: utf-8 -*-
import serial.tools.list_ports
ports = list(serial.tools.list_ports.comports())
for p in ports:
print(p)
print(p.device)
print(p.name)
print(p.description)
print(p.hwid)
print(p.vid)
print(p.pid)
print(p.serial_number)
print(p.location)
print(p.manufacturer)
print(p.product)
print(p.interface)
ports = list(serial.tools.list_ports.comports()) で取得できる情報は、以下となります。
Windows PCにつないだときの場合です。
例 M5ATOM Lite | 例 M5ATOM Matrix | 例 M5Stack Fire | ||
device | デバイス名と絶対パス。 | COM5(例) | ← | ← |
name | デバイス名 | None | ← | ← |
description | 説明文 | USB Serial Port (COM5) | ← | Silicon Labs CP210x USB to UART Bridge (COM6) |
hwid | 技術的な説明文 | USB VID:PID=0403:6001 | ← | USB VID:PID=10C4:EA60 SER=01DB5E91 LOCATION=1-1.4.1 |
vid | USBベンダーID(整数) | 1027 | ← | 4292 |
pid | USB製品ID | 24577 | ← | 60000 |
serial_number | USBシリアル番号(文字列) | None | ← | 01DB5E91 |
location | USBデバイスの場所(文字列) | None | ← | 1-1.4.1 |
manufactuturer | USBメーカ名(文字列) | FTDI | ← | Silicon Labs |
product | USB製品名(文字列) | None | ← | ← |
interface | インターフェースの説明 | None | ← | ← |
出力結果
COM3 - USB Serial Port (COM3)
COM3
None
USB Serial Port (COM3)
USB VID:PID=0403:6001 SER=A152E83A93A
1027
24577
A152E83A93A
None
FTDI
None
None
COM5 - USB Serial Port (COM5)
COM5
None
USB Serial Port (COM5)
USB VID:PID=0403:6001
1027
24577
None
None
FTDI
None
None
まとめ
今回は、Pythonで、M5Stackとつないでいるシリアルポートを調べる方法を紹介しました。
自走できるAI人材になるための6ヶ月長期コース【キカガク】
コメント