如何使用Debian / Python对USB设备进行编程


29

Pi正被推广为主要用于Python的教育设备。与此相关,在线上已经有一些很棒的例子,说明人们从Python访问GPIO。

但是,大多数现成的(而不是家用的)外设都具有USB接口。如何使用标准Debian / Python卡访问这些文件?是否有可用的Python库和良好的教程?


1
我认为这需要更具体。您到底想使用USB做什么?
Jivings 2012年

这是一个非常好的问题,我一直想知道如何制作USB设备。
Shane Hudson

1
我想到的特定应用是用于访问模型铁路DCC控制器接口(例如Digitrax PR3)的JMRI类型的系统。但这对这个网站来说太具体了!该问题针对较低级别的“我如何通过Python与USB上的任何设备进行通讯”-隐含地假定程序员拥有他们希望编程的设备的协议文档。
winwaed 2012年

我将仔细观察这个问题。我正在看两个触摸屏显示器,它们都带有简单的ASCII命令集和USB接口,我想尝试使用RasPi。
Ray Depew 2012年

Answers:


11

USB本质上只是一个串行通信设备。数据的通信方式是标准的,但数据的组成取决于设备。您的控制器制造商将发明一种api,其中包含“执行此操作”或“此操作正在发生”形式的命令和消息

如果您知道此api,则应该可以进行交流。两个可能有用的链接是

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 2012年

2

将其粘贴到我今天(2014年10月5日)的兔子路上的其他任何人。注意:这是从一个非常缺乏经验的PoV中获得的,因此,对于许多人来说这可能是显而易见的,但这并不是我的事,所以花了一些时间才弄清楚。

我试图通过USB将简单的激光条形码扫描仪连接到RaspberryPi B +,实际上没有使用Linux / RBPi等的经验。最终Google搜索将我带到了此页面。

我得到了David Sykes在2012年6月15日提供的关于PyUSB参考的答案,从那里我发现了ADAFruit的Installation Python&PyUSB,这是他们入侵Microsoft Kinect的一部分。

我觉得如果只是在我的PC上,我可能很快就能解决它。但是通过RaspberryPi这样做确实让我陷入困境。如果您通读了该指南,将会遇到与我相同的障碍,即无法下载内容,也无法简单地将他们所说的内容混入文件中。那么,如果您无法下载文件,该如何获取呢?[也许有一种下载这些文件的方法,但是在我的Pi上,我一直在源伪造上得到Error 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...

所以,我认为现在一切都很好,我可以返回我的教程。

再说一次,我使用的是RaspberryPi B +,标准的NOOBS安装。我主要参考了诸如ADAFRUIT的LEARN系统之类的资源,这些系统主要由Model B制成,但是到目前为止,我所做的一切都在B +上进行。

希望这些信息可以帮助其他在同一时间陷入困境的人。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.