Raspberry Piに接続したいUSBシリアルポートケーブルを備えたデバイスがあります。このUSB-シリアルケーブルのチップセットは、Prolific Technology、Inc.のPL-2303です。
Pythonを使用してこのデバイスのシリアル接続からデータを読み取るにはどうすればよいですか?
Raspberry Piに接続したいUSBシリアルポートケーブルを備えたデバイスがあります。このUSB-シリアルケーブルのチップセットは、Prolific Technology、Inc.のPL-2303です。
Pythonを使用してこのデバイスのシリアル接続からデータを読み取るにはどうすればよいですか?
回答:
Pythonを使用してシリアルデバイスと通信するには、pyserialモジュールを使用します。ディストリビューションで利用できない場合は、pyserialプロジェクトページからソースのコピーを取得し、「python setup.py install」を実行してインストールできます。
pyserialの簡単な使用例は、簡単な紹介にあります。
PL-2303のモジュールはデフォルトで利用可能です- ファームウェアGitHubリポジトリを参照してください-デバイスを接続すると、で起動するはず/var/log/messages
です。私はArduinoに接続しましたが、それは通信ポート/dev/ttyUSB0
(異なるデバイス、ドライバー、チップセットなどで、あなたの走行距離が異なる場合があります)で「機能しました」。
PL-2303は十分にサポートされており、として表示され/dev/ttyUSBx
ます。ドライバーは必要ありません。通常のシリアルポートと同じように読んでください。Pythonを使用したことはありませんが、C ++では、非ブロックモードでopen()し、select()で読み取りデータがあるかどうかを確認してから、read()を実行します。
pySerialのダウンロード(https://pypi.python.org/pypi/pyserial)
wget http://pypi.python.org/packages/source/p/pyserial/pyserial-2.7.tar.gz?raw=true -O pyserial-2.7.tar.gz
tar -xzf pyserial-2.7.tar.gz
cd pyserial-2.7
sudo python setup.py install
ttyUSBの可用性は次の行で確認できます
ls -ltr /dev|grep -i ttyUSB
シリアル出力を表示するには
tail -f /dev/ttyUSB<NUMBER FROM ABOVE>
crtl + cをブレークアウトするには
testserial.pyファイルを作成し、このコードを貼り付けます
#!/usr/bin/python
from time import sleep
import serial
# Establish the connection on a specific port
ser = serial.Serial('/dev/ttyUSB0', 9600)
x = 1 while True:
print ser.readline() # Read the newest output
x += 1
そのための素晴らしいチュートリアル:
http://www.digitalmihailo.com/post/usb-programming-with-python-on-linux
貴重な情報源はhttp://www.lvr.com/usbc.htm Completeです