Debian / PythonでUSBデバイスをプログラムする方法


29

Piは、主にPython用の教育用デバイスとして宣伝されています。これに沿って、PythonからGPIOにアクセスする人々のオンラインでの素晴らしい例がすでにいくつかあります。

ただし、ほとんどの市販の(自作ではなく)周辺機器にはUSBインターフェイスがあります。標準のDebian / Pythonカードを使用してこれらにアクセスするにはどうすればよいですか?Pythonライブラリはありますか?良いチュートリアルはありますか?


1
もっと具体的にする必要があると思います。USBを使って正確に何をしようとしていますか?
Jivings

これは非常に良い質問です。USBデバイスの作り方をいつも考えていました。
シェーンハドソン

1
私が念頭に置いている特定のアプリケーションは、モデルの鉄道DCCコントローラーインターフェイス(Digitrax PR3など)にアクセスするためのJMRIタイプのシステムです。しかし、それはこのサイトにはあまりにも具体的です!質問は、「PythonからUSB上のデバイスとどのように通信するか」という下位レベルを対象としています。プログラマーは、プログラミングしたいデバイスのプロトコルドキュメントを持っていると暗黙的に想定されています。
winwaed

この質問を注意深く見ていきます。RasPiで試してみたい、シンプルなASCIIコマンドセットとUSBインターフェイスを備えた2つのタッチパネルディスプレイを見ています。
レイデピュー

回答:


11

USBは本質的には単なるシリアル通信デバイスです。データの通信方法は標準ですが、そのデータの構成はデバイスに依存します。コントローラーの製造元は、「do this」または「this is happening」という形式のコマンドとメッセージで構成されるAPIを発明しました。

このAPIを知っていれば、通信できるはずです。2つの役立つリンクがあります

https://walac.github.io/pyusb/

https://web.archive.org/web/20130327005316/http://www.digitalmihailo.com/post/usb-programming-with-python-on-linux

貴重な情報源はUSB Completeです


ありがとう-はい、それが私の質問を目指していたレベルです。特定の周辺機器のプロトコル/製品APIは、他の質問、またはベンダーのドキュメントに関する問題です。
-winwaed

2

私が今日(2014年10月5日)に行ったバニートレイルの誰かにこれを貼り付けます。注:これは非常に経験の浅いPoVからのものであるため、多くの人にとってこれは明らかかもしれませんが、私にとってはそうではなく、理解するのに時間がかかりました。

単純なレーザーバーコードスキャナーをUSB経由でRaspberryPi B +に接続しようとしていますが、文字通りLinux / RBPiなどの経験はありません。最終的にGoogle検索でこのページに移動しました。

2012年6月15日にPyUSBのリファレンスを使ってDavid Sykesが提供した答えに到達し、そこから見つけました Microsoft Kinectのハッキングの一環としてADAFruitのInstalling Python&PyUSB

私のPCにあれば、すぐにそれを理解できたと思います。しかし、RaspberryPiを介してこれを行うと、本当にループが発生しました。このガイドを読むと、ダウンロードできないものや、ファイルなしで彼らが言うことを単純にマッシュできない場所で、私がやったのと同じ障害にぶつかるでしょう。それでは、ダウンロードできない場合、どのようにしてファイルを取得しますか?[これらのファイルをダウンロードする方法があるかもしれませんが、私のPiではソースフォージでエラー400が表示され続け、MidoriはTarまたはZipファイルをダウンロードしませんでした。]

WalacのPyUSBを参照するすると、最初にLXTerminalに入ってlibusbを取得できますが、次のコマンドでは、PyUSBのファイルがあり、ディレクトリからそれらを見つけることができると想定しています。

だから、ここにRaspberryPiにLibUSBとPyUSBをインストールするための私の変更された手順があります:

LXTerminalに入力したコマンドの順序:

sudo apt-get install python libusb-1.0

Yで確認

sudo apt-get install python-pip

それから

sudo pip install --upgrade pyusb

注:これの一部は、これまでに行ったことに応じてRBPiに既に存在する場合がありますが、コマンドを再度実行しても問題はありません。ファイルが最新であることがわかりました。

最後のコマンド「--upgrade pyusb」により、次のことがわかりました。

Downloading/unpacking pyusb
Downloading pyusb-1.0.0b1.tar.gz (44Kb): 44Kb downloaded
Running setup.py egg_info for package pyusb

Installing collected packages: pyusb
Running setup.py install for pyusb

Successfully installed pyusb
Cleaning up...

それで、私はそれがすべて良いと思うと私は私のチュートリアルに戻ることができます。

繰り返しますが、標準のNOOBSインストールであるRaspberryPi B +を使用しています。ほとんどがモデルBで作成されたADAFRUITのLEARNシステムなどのソースをほとんど参照しましたが、これまでに行ったことはすべてB +で動作しています。

うまくいけば、その情報がその同じ時点で立ち往生している他の誰にも役立つことを願っています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.