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

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

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

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

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

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

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

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

シリアル通信とは

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

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

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

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

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

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

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

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

pySerialとは

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

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

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

pySerialの使い方

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

シリアル通信を受信する

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

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

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

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

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

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

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

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

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

シリアル通信を送信する

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

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

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

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

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

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

まとめ

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

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

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

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

未経験者でも安心の徹底サポート!まずは完全無料の体験レッスン!

「プログラミングに興味があるけど未経験だし、、、」とお悩みの方はご安心ください。

  • 24時間質問し放題
  • あなただけのオーダーメイドカリキュラムで学習の効率化
  • 仕事獲得方法からオリジナルアプリ開発方法

侍エンジニア塾では徹底したサポートによる「オーダーメイドカリキュラム」を作成しています。

まずは無料体験レッスンで、「挫折しない学習方法」や「あなただけの学習ロードマップ」を知り、学習の効率化をしましょう。独学の難点である「オリジナルアプリの作り方やエラーの対処法」についてもアドバイスさせていただきます。

詳しいサービス内容は、下記よりご参照ください。

cta_mtm1

LINEで送る
Pocket

書いた人

ryo

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説