USBシリアルデバイスに接続するにはどうすればよいですか?


12

Raspberry Piに接続したいUSBシリアルポートケーブルを備えたデバイスがあります。このUSB-シリアルケーブルのチップセットは、Prolific Technology、Inc.のPL-2303です。

Pythonを使用してこのデバイスのシリアル接続からデータを読み取るにはどうすればよいですか?


1
興味深い質問。これはUSBパーツの助けになるかもしれません:raspberrypi.stackexchange.com/questions/258/…–
Jivings

1
これは2つの質問ですか?具体的には、「シリアルデバイスのドライバーをどのようにインストールできますか?」「Python内でシリアルデバイスに接続するにはどうすればよいですか?」このサイトでは、ドライバーに関する質問が長くなります。ただし、Pythonの質問は、StackOverflowのようなサイトにより固有の場合があります。Linuxベースのアーキテクチャやインストールメカニズムに関係なく、Pythonのシリアルデバイスとの通信は同じであると思います。
RLH

オンボードシリアルポート(UARTピン)とUSBシリアルポートとの通信に違いはないはずです。
アレックスチェンバレン

この質問は次のとおりです:[Configuration to Litmus test for PL2303 TTL to Serial](raspberrypi.stackexchange.com/questions/41553/…)を開始するにはどうすればよいですか?ハードウェアが確認されると、その後、1シリアルポートからプルデータへpyserialを実行することができます楽しま
gatorback

回答:


7

Pythonを使用してシリアルデバイスと通信するには、pyserialモジュールを使用します。ディストリビューションで利用できない場合は、pyserialプロジェクトページからソースのコピーを取得し、「python setup.py install」を実行してインストールできます。

pyserialの簡単な使用例は、簡単な紹介にあります。

PL-2303のモジュールはデフォルトで利用可能です- ファームウェアGitHubリポジトリを参照してください-デバイスを接続すると、で起動するはず/var/log/messagesです。私はArduinoに接続しましたが、それは通信ポート/dev/ttyUSB0(異なるデバイス、ドライバー、チップセットなどで、あなたの走行距離が異なる場合があります)で「機能しました」。


デバイスを接続すると、/ dev / ttyUSB0が表示されるので、「正常に動作する」可能性が高いようです。
スウィンダーズ

pyserialがインストールされ、サンプルのミニタームを使用すると、デバイスからのデータを見ることができます:)
Swinders

4

PL-2303は十分にサポートされており、として表示され/dev/ttyUSBxます。ドライバーは必要ありません。通常のシリアルポートと同じように読んでください。Pythonを使用したことはありませんが、C ++では、非ブロックモードでopen()し、select()で読み取りデータがあるかどうかを確認してから、read()を実行します。


4

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

-3

そのための素晴らしいチュートリアル:

http://www.digitalmihailo.com/post/usb-programming-with-python-on-linux

貴重な情報源はhttp://www.lvr.com/usbc.htm Completeです


1
これは理論的には質問に回答するかもしれませんが、回答の重要な部分をここに含め、参照用のリンクを提供することが望ましいでしょう。また、2番目のリンクが壊れています。
スティーブロビラード
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.