使用Python直接向USB发送信号

2024-05-01 12:12:01 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用Python设置usb端口连接的高或低

这可用于定制usb设备

比如说,

考虑到我有一个LED连接到USB端口(数据线)。

现在通过代码我想闪烁它或控制它

现在,这可以很容易地实现使用任何微控制器,Arduino,覆盆子Pi

但我想用普通计算机和python实现这一点

[编辑]

我可以通过制作一个CC++API并制作一个包装器在Python中使用它来实现这一点吗。是的,那么实现这一目标的最佳方式是什么

注:

我的主要目标不是让一些LED灯闪烁。我只是举个例子

我希望能够直接控制USB端口

引用:https://www.cmd-ltd.com/advice-centre/usb-chargers-and-power-modules/usb-and-power-module-product-help/usb-data-transfer-guide/#:~:text=How%20is%20data%20sent%20across,amounts%20known%20as%20'packets'

Within the standard USB 2.0 connector you can see four metal strips. The outer two strips are the positive and ground of the power supply. The two central strips are dedicated to carrying data.

With the newer USB 3.0 connector, the data transfer speed is increased by the addition of extra data-carrying strips; four extra signalling wires help USB 3.0 achieve its super speed.

我想设置数据管脚的值

通过我说的高-低,请不要误解我想要将值设置为+5V和GND。但我的意思是通过我的代码直接控制它的值,而不需要计算机中存在任何外部驱动程序

我提到的只是为了使语言更简单,更容易理解


Tags: andthe端口代码目标dataconnectorled
2条回答

使用GPIO引脚控制Arduino和Raspberry Pi等设备的LED等组件。相比之下,USB是为数据传输而设计的,而不是为了保持更恒定的高或低信号,如GPIO。它消耗的电压和电流水平也与GPIO引脚不同,可能会损坏GPIO的组件

但是,您可以为此目的获得USB到GPIO适配器(有关这些选项的示例讨论,请参见here

就Python而言,您可以使用诸如PyUSBlibusbPython包装器之类的包来控制/传输数据/与USB设备(例如USB到GPIO适配器)通信。提供适配器的公司可能还设计了自己的易于使用的Python包,以封装较低级别的驱动程序(可能是用C编写的)。请将此USB controlled LED device作为具有自己的Python驱动程序的示例。驱动程序只是一种软件程序,它从用户那里接收相对简单的命令,以实现设备的功能。然后,它们封装了遵循协议将用户的意图传达给USB设备并在尽可能低的软件级别控制USB端口所需的较低级别的复杂性

由于以下几个原因,您无法实现这一目标:

  • USB端口有自己的连接协议。数据以包含起始位和结束位的数据包传输。协商和握手过程在芯片之间的硬件层完成。该过程还选择双向数据线中的通信速度。您必须直接访问pin(如GPIO)才能打开和关闭LED或创建自己的连接协议。这不能在USB中完成
  • 还有电压和电流限制。数据线不是+5和GND。数据线对于D+为2.8v,对于D-为0.3v,对于GND两者都是如此。数据的传输和接收是有差异的(D+相对于D-),并且在1s和0s内不会与GND进行比较

按钮行是你没有对USB的直接控制

相关问题 更多 >