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

ryo
書いた人 ryo

この記事では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の連携をしたい場合はぜひまたこの記事を読み返してみてください!

おすすめのコンテンツ

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

「何の言語から勉強すればいいかわからない・・・」そんなあなたに質問に答えていくだけで、何の言語を学べば良いのか診断いたします!未経験から6ヶ月でプログラミング習得に向けた学習プランが1分で分かる!

最短でプログラミングを習得したい方へ

元々ITリテラシーのある方やプログラムの学び方がわかっている方は独学で習得することも可能でしょう。

ただし、実際の学習期間中はつまづいている時間がほとんどです。

「もう挫折したくない」
「本業と両立しながら、好きな時間で自分のペースで勉強を続けていきたい。」
「自分だけのカリキュラムで効率的に勉強したい」

そんな方はお気軽に侍エンジニア塾までご相談ください。

弊社では、

  • プログラミング基礎学習
  • オリジナルアプリ開発
  • 仕事獲得

までをひと通り学習できます。

まずは無料体験レッスンで、弊社のコンサルタントと一緒にあなた専用の学習方法やカリキュラムを考えてみませんか?

挫折しない学び方や、通常1000時間以上かかる学習時間を1/3にする方法などより具体的なアドバイスもさせていただいています。

詳しくは下の画像をクリックして弊社サービス内容をご確認ください。

cta1

非常識な結果を出す卒業生多数!

エンジニアキャリア戦略

人気記事セレクション

3000名以上来場の人気セミナーが開催決定

18歳で時給6000円だった侍エンジニア塾代表の木内より、『プログラミングで人生を変える』ための学習方法をお教えます。

0からプログラミングを習得し、フリーランスエンジニアになる方法プログラミング学習の効率を劇的に上げる学習メソッドを解説しますので、奮ってご参加ください。

  • 日付:3/30(日)
  • 時間:14:00〜17:00終了予定
  • 場所:当社 道玄坂オフィス
  • 住所:〒150-0043 東京都渋谷区道玄坂2丁目11-1 Gスクエア渋谷道玄坂 4F *Googleマップでは「東京都渋谷区道玄坂2丁目11-1」で検索してください。近隣にスクエア渋谷という別のビルがあるためご留意ください。
  • 参加費:無料
  • URL:https://seminar.sejuku.net/
詳しくは下の画像をクリックして弊社セミナー内容をご確認ください。

LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

ryo

ryo

大学生です。主にPythonの記事を書いています。