【Python入門】pySerialでシリアル通信を実行する方法を解説

この記事ではPythonでシリアル通信をする方法について解説をしたいと思います。

pySerialというパッケージを使えば簡単にシリアル通信をすることが出来ます。

PythonでArduinoなどとシリアル通信をしたい。
Pythonでシリアル通信の送受信をしたい。

今回の記事ではこのように思っている方に向けて、

【基礎】シリアル通信とは
【基礎】pySerialとは
【実践】pySerialの使い方(送受信)

について解説をしていきます。

Pythonでシリアル通信をしてみましょう。

シリアル通信とは

まずはシリアル通信とは何かについて知っておきましょう。

シリアル通信は接続されたコンピュータ同士で、1ビットずつデータを送る通信の方式です。

一本の通信回線を使うので、低コストで配線が簡単なことから電子工作の分野ではよく使われています。

また似た通信の方式にパラレル通信と呼ばれるものもあります。

パラレル通信はデータを複数のビットにまとめて送る通信の方式です。

シリアル通信とは逆に通信回線が多くなり、コストが掛かってしまいますがその分高速にデータを送ることが出来ます。

ちなみにシリアル通信の代表的なものにUSBがあります。

ArduinoとPCのシリアル通信ではUSBを使うことが一般的です。

pySerialとは

PythonとArduinoなどの機器との間でシリアル通信を実現させるのがpySerialというパッケージです。

pySerialを使えば通信の設定からオープン送受信からクローズまでを簡単に実行させることが出来ます。

標準でプリインストールされているパッケージではないのでpipを使ってインストールをしておきましょう。

pip install pyserial

pySerialの使い方

それでは早速pySerialを使ってみましょう。

シリアル通信を受信する

まずはシリアル通信を受信してみましょう。

こちらのコードをご覧ください。

import serial
 
ser = serial.Serial('/dev/tty.',9600,timeout=None)
line = ser.readline()
print(line) 
ser.close()     

このコードを実行することで、指定したデバイスから送信されたデータを受信して表示することが出来ます。

まずはデバイス名と通信速度(ボーレート)、タイムアウトの有無を指定しています。

そこでreadline関数で受信したデータをprint関数で表示しています。

最後はcloseすることを忘れないようにしましょう。

ここで出てくるデバイス名はそれぞれの環境で変わってくるので、このコマンドで確認しておきましょう。

ls -l /dev/tty.*

Macであればこのコマンドを、シリアル通信したい機器を接続する前とした後で実行させることで、その差分を確認してデバイス名を確認することが出来ます。

このコマンドでは/dev配下のtty.から始まるファイルをすべて表示させています。

シリアル通信を送信する

次はシリアル通信を送信してみましょう。

こちらのコードをご覧ください。

import serial
 
ser = serial.Serial('/dev/tty.',9600,timeout=None)
ser.write("test")
ser.close()

このコードを実行することで指定したデバイスにデータ(ここではtest)を送信することが出来ます。

基本的には受信するコードと同じようにデバイス名やボーレート、タイムアウトの有無を指定してインスタンスを作成します。

ここではwrite関数を使ってtestという文字列を送信しています。

最後にcloseする部分は同じですね。

まとめ

この記事ではシリアル通信とは何かから、pySerialを使ったシリアル通信の方法について解説してきました。

pySerialの基本的な使い方については分かっていただけたでしょうか?

デバイスの取得は少しだけ厄介ですが、紹介したコマンドを使えば簡単ですね。

PythonとArduinoの連携をしたい場合はぜひまたこの記事を読み返してみてください!

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

侍テック編集部

侍テック編集部

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。侍テック編集部では技術系コンテンツを中心に有用な情報を発信していきます。
サービスページはこちら
ツイッターはこちら
フェイスブックはこちら

おすすめコンテンツ

いまならレッスン期間が2週間延長!この秋、プログラミングを学ぼう

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー