如何控制Linux中USB端口的电源输出?

时间:2011-09-07 00:32:19

标签: linux usb

我使用瘦客户端PC(可以运行Windows CE或Linux)和两个伺服电机构建了一个机器人。我把USB端放在伺服电机上,所以当它们插入瘦客户机时,它们会连续运行。在Linux中,如何设置从USB端口到伺服电机的电流或电压量?我是否可以运行shell脚本来设置某个USB端口的功率以减慢电机速度或停止电机?如果无法通过软件实现这一点,那么通过硬件实现这一目标的最简单方法是什么,而不必购买太多?

6 个答案:

答案 0 :(得分:7)

USB电压固定为标称的5伏电压,无法控制。

USB设备中关于其电流消耗的行为在USB规范中有明确定义。 USB设备应该最多可以消耗1个单位负载(100mA),除非他们已经协商了USB主机的更高负载。您拥有的伺服电机很可能需要吸取更高的电流,如果没有USB设备并与主机协商,则无法请求它。

根据您试图控制的伺服电机,您可能需要提供PWM信号或模拟电压来控制电机位置。 USB主机无意提供其中任何一种。

从PC上驱动电机的最佳选择是:

  1. 为伺服电机(如果有)提供专用USB控制器
  2. 基于小型微处理器(例如使用arduino)创建自己的
  3. 在PC上选择其他端口。如果可用,可以控制PC并行端口以控制电机驱动器。

答案 1 :(得分:3)

这里的答案似乎表明这是一个硬件问题,但我认为这是一个软件问题。华硕拥有Ai Charge,可以将伏特的电压提高一倍,从标准的2.0 usb端口向苹果产品充电。

  

USB 1.0,2.0和3.0规格(全部为5伏)4线(2个数据和2个   专用权力)

     

电压击穿:USB 1.0和USB 2.0 = 0.5A或500 mA = 2.5瓦   USB 3.0 = 0.9A或900mA = 4.5瓦壁瓦特= 1.5A或1500毫安= 7.5   瓦特Ai充电= 1.2A或1200mA = 6瓦

Ai Charge适用于华硕和非华硕主板,是一款可在Windows上安装的程序。

就我个人而言,我讨厌Apple,所以我想找到一种方法在运行Linux时为我的上网本做1.2A usb 2.0输出技巧。

答案 2 :(得分:2)

我认为不可能直接操纵USB电压。它们被设计为始终提供+ 5V输出,除非其他集线器的功率减小。

http://electronics.stackexchange.com

上发布此问题可能会更好

答案 3 :(得分:2)

你需要用PWM来控制电机的速度,为此你需要一个微控制器,PIC18F系列支持USB通讯,有很多代码样品可供互联网如何在PIC​​18F系列中使用USB,你还需要一个晶体管阵列或H-Bridge控制PIC的死亡人员。

最简单的通信方式是在PIC18F微控制器中编程USB串口,当您将18F插入计算机时,它会检测USB串口,因此您可以将命令发送到串口来控制速度。 / p>

答案 4 :(得分:1)

我认为不可能,即使是这样,也要考虑这个问题:USB端口不能用于动力马达,因为你可以刻录USB端口。 USB限制在500mA(或大约),任何像电机这样的电源设备都可能需要更多。

另一件事是伺服电机应该用恒定电压驱动,速度由控制线上的定时脉冲控制。 http://en.wikipedia.org/wiki/Pulse-width_modulation

您应该使用驱动器(硬件)为外部电源供电。

答案 5 :(得分:-1)

这是晶体管的目的,或尝试使用电位计