Make

Raspberry Piでシリアル通信(他のデバイスと)

Make
スポンサーリンク

はい、Reveの技術担当です。
もうネタが尽き始めて困り始めたところなのですが、今日はとりあえずタイトルの通りです。
Raspberry Piでシリアル通信するための記事を書こうかと。
ちなみに、ここでいうシリアル通信とは、いわゆるRS 232C通信を意味します。
詳しくは、こちらの記事を参照していただければ。
(注意)
この記事では、Raspberry PiのOSインストールは済ませているものとします。
また、シリアルコンソールでのログインは使用できません(ログインに必要なピンを使用するため)。
(シリアル通信の方法)
それでは早速はじめましょう。
まずはRaspberry Piを起動してください。ログインが済んだあとは、以下の手順で設定します。
1.Raspberry Pi 内のcmdline.txtを編集ツールで開きます。
$ sudo nano /boot/cmdline.txt
2.ファイル内容を全て消去し、以下の内容に書き換えます(実際は改行しないほうが良いらしいです(未確認))。

3.Raspberry Pi のコンフィギュレーション設定を起動します
$ sudo raspi-config
4.項目「8 Advanced setting」の中にある
raspi-config.png
「A7. Serial」を選択して
Serial-A7.png
NO(使用不可)に設定します。
Serial-A7-select.png
こうすることで、シリアルコンソールによるログインを無効化します。
5.Pythonでシリアル通信をするためのパッケージをインストールします。
$ sudo apt-get install python-serial
もし、インストールが失敗した場合は、$ sudo apt-get update および $ sudo apt-get upgrade を実行してみてください。
6.再起動します。
ここまでの流れでシリアル通信の設定は完了です。
(デバイスのつなぎ方)
まずは図に表わしてみます。
RaspberryPi_Serial1.jpg
Raspberry Pi の8番ピンが送信用10番ピンが受信用のピンになります。また、GNDは6番ピンに当たるため、これらのピンを向こう側の対応するピンに接続することで(互いのTx、Rxピンはクロスさせて接続、つまり互いに逆のピンをつなぐ)通信ができるようになります。
また、電源供給ができるピンもあるため、必要に応じて利用すると良いでしょう。
(プログラム)
続いて、Raspberry Piのプログラムを記載します。
このプログラムでは、送られてきた文字列を画面に表示する処理を行っています。

では、それぞれの解説に入ります。
まず、必要なパッケージをインポートします。シリアル通信にはserialというパッケージが必要となります。

続いて、シリアル通信の初期設定を行います。
Raspberry Pi では、”/dev/ttyAMA0″というポートでシリアル通信を行うため、このポートに接続すると宣言します。
今回は、通信速度を9600bps、タイムアウトを10秒にしました。

そして、データの送信、および受信はそれぞれreadlineメソッド、writeメソッドを使用します(writeメソッドはコメントアウト)。
readlineメソッドは改行が来るまでのデータを一度に読み取る処理を行います。
ちなみに、ここではwhile文で無限ループをかけています。

以上でプログラムの解説は終了です。
シリアル通信はArduinoなどのマイコン(ボード)をはじめ、様々なデバイスで搭載されているため、通信ができるようになれば制作の幅も広がってきます。ぜひお試しください。

コメント

タイトルとURLをコピーしました