Pythonでシリアル通信のプログラムを作成した際、実際に指令を出せているか確認する方法として、仮想シリアル(COM) ポートドライバ「com0com」と「Tera Term」を用いる事が可能です。
ここでは、「com0com」のインストールと「Tera Term」の環境構築方法と使用例を紹介しています。
この記事の対象
com0comのインストール
はじめにこちらから「com0com」をインストールします。
「com0com」は仮想シリアル(COM) ポートドライバで有名なフリーソフトになります。
インストールして「コントロール パネル」→「ハードウェアとサウンド」→「デバイスマネージャー」で以下の通り認識していることを確認して下さい。エラー等が出ている場合はこちらのサイトに回避方法が紹介されているので、ご参照下さい。
com0comの設定
「com0com」を立ち上げます。任意のCOMを指定して「Apply」で適用させるだけです。上記はCOM3は送信側、COM4は受信側の仮想シリアルドライバを使ったシリアルポートになります。
Tera Termのインストール
「Tera Term」は、Windows上で動作するターミナルエミュレーターの一つです。主にネットワーク機器の設定や管理などで使われ、Telnet、SSH、シリアル接続などの通信プロトコルに対応しています。
上記のリンクから最新のTera Termをインストールします。
インストールしたら起動させます。ここでは、COM4が受信側なので立ち上げ時に指定します。
Pyserialの使用方法
「Pyserial」はPython用のシリアル通信ライブラリです。Pythonプログラムからシリアルポートを使用して、マイコンボードなどとの通信を行うことができます。Windows、Linux、Mac OSなどのOSで使用できます。
外部ライブラリなのでインストールする必要があります。
pip install pyserial
プログラム
文字列の書き込み
import serial
#1---open
ser = serial.Serial("COM3", 9600)
print(ser.name)
#2---データの送信
ser.write(b'test!!!!')
#3---close
ser.close()
上記のプログラムは接続先のシリアルポートを指定して文字列を書き込む内容になっています。
それでは解説になります。
#1---open
ser = serial.Serial("COM3", 9600)
1の部分ではシリアルポートと通信速度を指定しています。基本的な型としては「serial.Serial(port, baudrate)」になります。「port」には接続先のシリアルポートのデバイス名を指定します。Windowsでは、”COM1″や”COM2″のような形式、Linuxでは、”/dev/ttyACM0″などの形式になります。「baudrate」は通信速度を指定します。
#2---データの送信
ser.write(b'test!!!!')
2の部分では送信するデータを指定します。文字列を送信する場合は、「b'***'」
の形式でバイト列に変換してから送信する必要があります。
#3---close
ser.close()
3の部分では、シリアルポートをクローズしています。
【結果】