2010-09-29 17 views
7

Ich möchte ein RC-Modell über USB von meinem Computer steuern. Ich brauche keine echte Funksteuerung, daher reicht es aus, die Servos direkt über Kabel zu steuern (ja, es wird Kabel zwischen dem Modell und der Steuereinheit geben). Ich dachte, ich würde ein Mikrocontroller-basiertes Gerät bauen, das über USB mit dem Computer verbunden wäre und die Servos würden an dieses Gerät angeschlossen werden.Erstellen eines USB-Peripherie

Ich frage nach einem Hinweis, wo ich anfangen soll. Ich weiß, wie Servos gesteuert werden und wie ich schließlich den Mikrocontroller programmieren sollte, um die Servos zu steuern, aber die Sache, über die ich wirklich nicht viel weiß, ist die USB-Kommunikation weder auf der Geräteseite noch auf der Computerseite (die Linux sein wird).

Ich möchte die Programmierung in C (vielleicht Assembler für den Mikrocontroller) tun.

Danke für jeden Hinweis.

Antwort

6

Sie könnten mit etwas wie einem Arduino beginnen, das ist ein Mikrocontroller auf einer separaten Platine, mit der Sie über USB sprechen können. Es gibt großartige Entwicklungsumgebungen und eine Community für Arduino-Projekte.

Wenn Sie nur einen FTDI-Chip verwenden, benötigen Sie immer noch etwas, um die seriellen RS232-Anweisungen vom Computer zu verstehen und die Servoleitungen zu steuern. Dies ist, wo der Arduino wirklich hilfreich sein wird.

+0

... und Sie können sogar das Arduino in C programmieren. – caf

+0

Ich bin ein wenig unsicher über das Arduino - Kann ich über USB mit ihm reden und Servos direkt an Arduino Board angeschlossen haben? Muss ich die Platine für die USB-Kommunikation programmieren (und einen Treiber für den Computer schreiben)? – zegkljan

+1

Sie können Servos direkt an den Arduino anschließen. Sie können Ihre Software schreiben (solange sie klein genug ist), um eigenständig auf dem Arduino auszuführen, oder Sie können Ihren Computer mit dem Arduino live über eine serielle Schnittstelle kommunizieren lassen. Das Arduino wird als normaler serieller Port am Computer angezeigt, es sind keine speziellen PC-Treiber erforderlich, wenn Sie diesen Weg gehen möchten. –

7

Der einfachste Weg ist die Verwendung einer RS232-zu-USB-Brücke, wie die von FTDI angebotenen Chipsätze. Dies vereinfacht sowohl die Hardware- als auch die PC-Software (kein USB-Treiber erforderlich). Die meisten Mikrocontroller verfügen über mindestens einen RS232-Anschluss zum Herstellen einer Verbindung.

Einige Mikrocontroller bieten USB-Unterstützung. In diesem Fall müssten Sie einige USB-Programmierung in ihnen machen und libusb auf der PC-Seite verwenden.

+1

+1 Der FTDI-Chip ist genau das, was ich empfehlen würde. – Kevin

+0

Einige der FTDI-Chips haben einige GPIO-Pins, die für die Steuerung verwendet werden können. Einige können so konfiguriert werden, dass sie einen einfachen Adress/Daten/Steuerungs-Hardware-Bus bereitstellen. Beide können die Notwendigkeit für einen Mikrocontroller ebenso vermeiden. Aber ein FTDI plus ein PIC oder ATTiny, um die Servo-PWM-Steuerung zu machen, kann der einfachste Ansatz sein. – RBerteig

+0

Denken Sie daran, "sudo apt-Get Purge Brltty" auf Ubuntu .. wenn Sie Ubuntu verwenden. Das ist das Braille-Terminal, das standardmäßig installiert ist und davon ausgeht, dass alle FTDI-Chips im Universum mit Braille-Terminals verbunden sind. – slebetman

2

USB ist ein ziemlich kompliziertes zu verwaltendes System, und viele Leute entscheiden sich für einen vorhandenen Seriell-über-USB-Chip, um OS-Treiber zu schreiben und die Komplexität der Programmierung der Gadgetseite von USB zu vermeiden. Wenn Sie sich für Roboter interessieren und USB noch nicht kennen, ist dies wahrscheinlich der beste Weg.