google-site-verification: google3bd66dd162ef54c7.html
fc2ブログ

Raspberry Piでシリアルデータ受信

 久しぶりにうちのPaspberry Piを引っ張り出してきてシリアルのデータの読み取りをやってみました。

 私が好きな測定では、ハードに密着した部分はArduinoで処理した方がやり易いと思います。でも、人間とのインターフェイスはラズパイを使った方が断然有利になるはずです。うまくやればかっこいいグラフをWebサーバー経由で表示とかが簡単に出来ちゃうような気がします。

 ということで、ラズパイを使ったデーター加工の勉強を始めます。

 なお、以下の記事は、Chick Labさんの Raspberry Piでシリアル通信を参考、というかほとんどそのまま追試したものです。

 まずはUSBシリアル変換アダプタを使う方法。

 おなじみFDTIのUSBシリアル変換アダプタをRaspberry PiのUSBポートに接続してpythonで以下のプログラムを実行します。

import serial
import time

def main():
# USB:ttyUSB0
# GPIO:ttyAMA0
con=serial.Serial('/dev/ttyUSB0', 9600, timeout=10)
# con=serial.Serial('/dev/ttyAMA0', 19200, timeout=10)
print con.portstr
while 1:
str=con.readline()
print str
con.write(str)

if __name__ == '__main__':
main()

▼実行結果。プログラム名はusbSerialRead.pyです。
USBの仮想COMポートから受信
 このデーターは自作のグリッドタイインバーターが1秒間隔で吐き出しているもの。MPPTのレベルや電圧、電流などのデーターがだらだらと流れています。

 USBシリアルのアダプタが必要になりますが、コネクタを刺すだけで出来るのでお手軽な方法です。

 で次にやったのはGPIOコネクタのUART端子を使う方法。

 ラズパイの機能をちゃんと使うならこっちのやり方が王道なのでしょう。但し、この場合は配線する必要があります。Raspberry PiとArduinoでは信号のレベルが違うので抵抗でレベル変換も必要になります。

▼接続回路図(クリックで別窓に拡大)
raspberry pi でArduinokaranoシリアルを受信する回路
 こういう状態を説明するのには、回路図が一番だと思います。

▼Raspberry PiのGPIOコネクタ
Raspberry PiのGPIOコネクタへ配線
 熱収縮チューブの中にレベル変換回路の抵抗を入れています。

▼相手側
気圧高度計からシリアル出力
 これはこのあいだ作った高度計。

Pythonのプログラム

mport serial
import time

def main():
con=serial.Serial('/dev/ttyAMA0', 9600, timeout=10)
print con.portstr
while 1:
str=con.readline()
print str
con.write(str)

if __name__ == '__main__':
main()

▼実行結果 プログラム名は gpSerialRead.pyです
GPIOのURARTで受信
 気圧や標高などのデータが流れています。

 説明が後になりましたが、Raspberry PiはSSH経由のキャラクタベースで動かしています。また、シリアルポートはそのままではコンソールとして動作してしまうので修正が必要です。そのためにはこの記事に書いた以外にいろんな修正が必要になります。

 そのあたりは以下のWebを参考にさせていただきました。ありがとうございます。
Raspberry PiとArduinoでシリアル通信 (with Python)
Raspberry PiでUART、シリアル通信
カレンダー
03 | 2014/04 | 05
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 - - -
プロフィール

ラジオペンチ

Author:ラジオペンチ
電子工作を中心としたブログです。たまに近所(東京都稲城市)の話題など。60過ぎて視力や器用さの衰えを感じつつ日々挑戦!
コメントを入れる時にメールアドレスの記入は不要です。なお、非公開コメントは受け付けていません。
記事の内容のご利用は読者の自己責任でお願いします。

記事が気に入ったらクリックを!
最新記事
カテゴリ
最新コメント
リンク
FC2カウンター
検索フォーム
月別アーカイブ
RSSリンクの表示
QRコード
QRコード