Wie würde ich die Leistung der Stromversorgung in USB-Ports in Linux steuern?

8

Ich habe einen Roboter von einem Thin-Client-PC (kann Windows CE oder Linux ausführen) und zwei Servomotoren gebaut. Ich setze USB-Enden auf die Servomotoren, so dass sie, wenn sie an den Thin Client angeschlossen werden, kontinuierlich laufen. Wie kann ich unter Linux die Stromstärke oder Spannung von den USB-Ports zu den Servomotoren einstellen? Kann ich ein Shell-Skript ausführen, um die Leistung eines bestimmten USB-Anschlusses einzustellen, um einen Motor zu verlangsamen oder zu stoppen? Wenn dies nicht durch Software möglich ist, was ist der einfachste Weg, dies über Hardware zu tun, ohne zu viel kaufen zu müssen?

    
Chris Galzerano 07.09.2011, 00:32
quelle

6 Antworten

6

Die USB-Spannung ist auf nominal 5 Volt festgelegt und kann nicht gesteuert werden.

Das Verhalten von USB-Geräten hinsichtlich ihrer Stromaufnahme ist in den USB-Spezifikationen gut definiert. USB-Geräte sollten bis zu 1 Einheit laden (100 mA), es sei denn, sie haben eine höhere Last vom USB-Host ausgehandelt. Es ist sehr wahrscheinlich, dass die Servomotoren, die Sie haben, höhere Ströme benötigen und nicht in der Lage wären, diese anzufordern, ohne ein USB-Gerät zu sein und mit dem Host zu verhandeln.

Je nach Servomotor, den Sie steuern möchten, ist es wahrscheinlich, dass Sie entweder ein PWM-Signal oder eine analoge Spannung zur Steuerung der Motorposition bereitstellen müssen. USB-Hosts sind nicht dazu vorgesehen, beides bereitzustellen.

Ihre besten Möglichkeiten, Ihren Motor von Ihrem PC aus zu fahren, sind:

  1. Holen Sie sich einen dedizierten USB-Controller für Ihren Servomotor (falls vorhanden)
  2. Machen Sie Ihre eigenen, basierend auf einem kleinen Mikroprozessor (z. B. mit einem Arduino)
  3. Wählen Sie einen anderen Port auf dem PC. Falls verfügbar, können parallele PC-Anschlüsse gesteuert werden, um die Motortreiber zu steuern.
Andrew Edgecombe 07.09.2011, 02:31
quelle
3

Die Antworten hier scheinen zu sagen, dass es sich um ein Hardware-Problem handelt, aber ich denke, das ist ein Softwareproblem. ASUS hat Ai Charge, die die Volt zum Laden von Apple Produkten von einem Standard 2.0 USB Port mehr als verdoppelt.

  

USB 1.0, 2.0 und 3.0 Spezifikationen (Alle bei 5 Volt) 4 Drähte (2 Daten und 2   dedizierte Macht)

     

Spannungsausfall: USB 1.0 und USB 2.0 = 0.5A oder 500 mA = 2.5 Volt   USB 3.0 = 0.9A oder 900mA = 4.5 Volt Wandwarze = 1.5A oder 1500 mA = 7.5   Volt Ai Ladung = 1,2A oder 1200mA = 6 Volt

Ai Charge funktioniert auf ASUS- und Nicht-ASUS-Motherboards und ist ein Programm, das Sie in Windows installieren können.

Persönlich hasse ich Apple, also möchte ich herausfinden, wie ich diesen 1.2A USB 2.0 Ausgabetrick für mein Netbook machen kann, während ich Linux benutze.

    
mtelesha 20.06.2012 19:00
quelle
2

Ich glaube nicht, dass es möglich ist, die USB-Spannungen direkt zu manipulieren. Sie sind so ausgelegt, dass sie jederzeit eine Ausgangsspannung von +5 V liefern, es sei denn, die Leistung wird mit anderen Hubs verringert.

Vielleicht ist es besser, wenn Sie diese Frage auf Ссылка

veröffentlichen     
Nate 07.09.2011 00:37
quelle
2

Sie müssen PWM verwenden, um die Motorgeschwindigkeit zu steuern, dazu benötigen Sie einen Mikrocontroller, die PIC18F-Serie unterstützt die USB-Kommunikation, es gibt viele Codebeispiele im Internet wie Sie USB in der PIC18F-Serie verwenden, außerdem benötigen Sie ein Transistor-Array oder H-Brücke zur Kontrolle von Leichen von PIC.

Am einfachsten kommunizieren Sie mit einer seriellen USB-Schnittstelle im PIC18F-Mikrocontroller, und wenn Sie diesen 18F an Ihren Computer anschließen, erkennt er den seriellen USB-Anschluss, sodass Sie die Befehle zur Steuerung an die serielle Schnittstelle senden können / p>     

user1479203 20.09.2012 03:57
quelle
1

Ich denke nicht, dass es möglich ist, und selbst wenn es war, bedenken Sie Folgendes: Der USB-Anschluss ist nicht für Motoren geeignet, da Sie den USB-Anschluss brennen können. USB ist begrenzt auf 500mA (oder da) und jedes Stromgerät wie ein Motor kann möglicherweise mehr als das erfordern.

Eine andere Sache ist, dass Servos mit konstanter Spannung angetrieben werden sollten, und die Geschwindigkeit wird durch Zeitimpulse auf der Steuerleitung gesteuert. Ссылка

Sie sollten einen Treiber (Hardware) verwenden, um den Motor mit einer externen Stromquelle zu versorgen.

    
MaxSantos 07.09.2011 00:43
quelle
0

Dies ist der Zweck des Transistors, oder versuchen Sie es mit einem Potentiometer

    
BlackBear 07.09.2011 00:37
quelle

Tags und Links