Schlagwort-Archiv: USB

Raspberry PI als USB-Server

Ich stand vor dem Problem, meinen Scanner und andere USB-Geräte für mehrere Rechner zugänglich zu machen ohne jedes mal die Geräte umstecken zu müssen. Für diesen Zweck gibt es bereits diverse LAN-USB-Server auf dem Markt.

Grundsätzlich funktionieren diese alle nach dem selben Prinzip: Ein (oder mehrere) USB-Geräte werden über diese kleinen Boxen über das Netzwerk freigegeben und können dann von anderen Rechnern wie ein lokale eingestecktes USB-Gerät eingebunden werden. Die Kosten für diese Konverter belaufen sich auf 30 – 100 Euro.

Wenn man sowieso bereits einen Raspberry Pi in seinem Netzwerk laufen hat, kann auch dieser als LAN-USB-Server arbeiten.

VirtualHere

Die Software “VirtualHere” besteht aus zwei Teilen. Einmal das Serverprogram welches auf dem Raspberry Pi läuft und die USB-Geräte im LAN freigibt. Als zweites die Client-Software welche die freigegebenen USB-Geräte auf den Rechnern einbindet.

Aktuell gibt es die Clients für die Betriebssysteme Windows und OSx.

Virtualhere OSX Client

Virtualhere OSX Client

 

Installation auf dem Server

Die “Installation” auf dem Raspberry ist relativ einfach. Dazu einfach folgenden Code kopieren und auf dem Raspberry im Terminal oder per SSH ausführen:

Hiermit wird das Serverprogram heruntergeladen und per chmod ausführbar gemacht.

Um den Server zu starten nun einfach folgenden Befehl ausführen:

Nun sollte der Server laufen :)

Installation auf den Clients

Die Clientsoftware findet man auf folgender Seite ganz unten:

http://www.virtualhere.com/usb_client_software

Auch hier muss die Software nicht installiert werden. Es reicht das heruntergeladene Programm zu starten. Nach dem start sollte der Server als “Raspberry Hub” angezeigt werden. Klappt man diesen auf sollten sämtliche am Raspberry angeschlossenen USB-Geräte angezeigt werden.

Mit einem Rechtsklick auf ein USB-Gerät öffnet sich ein neues Fenster:

VUSB Client

Mit einem Klick auf “use” wird das gewählte USB-Gerät dann eingebunden. Beim ersten mal wird das Programm allerdings noch die benötigten “Virtual USB” Treiber installieren.

Wenn man den Punkt “Auto-Use Device” wählt, wird das Programm das entsprechende Gerät bei jedem Programmstart automatisch einbinden.

Um das Client-Program bei jedem Systemstart automatisch auszuführen muss man dieses manuell einstellen: Windows – Autostart-Ordner, OSX – Anmeldeobjekte.

Die Software kommt alt “Shareware”. In der Kostenlosen Version kann wird immer nur ein USB-Gerät unterstützt. Aktuell kostet die Rapsberry-Version 29$ – Aber das ist es Wert!

Steuerung per Gamecontroller

Wie geht denn das?

In einem vorherigen Post habe ich bereits den Anschluss des USB-Host-Shields an einen Arduino Mega beschrieben. Ziel war es einen XBOX360-Controller zum Steuern des Roboters zu verwenden. Die Usb-Host-Library bringt einige Module für die Kommunikation mit verschiedenen USB-Geräten mit. Darunter auch eine Library für die XBOX-Controller. Die ausgelesenen Steuerdaten eines Steuerkreuzes werden dann mit einem APC220-Funkmodul an den Roboter geschickt und dort an den Motorcontroller weitergereicht.

Weiterlesen

Sparkfun USB-Host-Shield

USB Host Shield an Arduino Mega

Ich hatte ja bereits überlegt die Fernsteuerung durch einen anderen Controller zu ersetzen. Dazu muss der XBOX360-Controller irgendwie an einen Arduino angeschlossen werden. Sparkfun hat hierfür das “USB-Host-Shield” im Angebot.

 

Das Teil passt”gestapelt” auf einem normalen Arduino; der Arduino Mega hat die SPI-Pins allerdings an anderer Stelle. Da ich aber eh nicht vorhabe das Teil direkt auf den Arduino zu stecken, ist das Problem mit ein wenig Bastelei leicht zu lösen.

Heute kam die Lieferung von Watterott (mal wieder schweineschneller Versand, vielen Dank!). Also “nur mal schnell” das USB-Host-Shield an meinem Arduino Mega ausprobieren. Sollte angeblich ganz einfach sein. Auf der Produktseite von Sparkfun stand der Link zur “USB-Host-Library 2.0″, die Verkabelung war soweit bekannt, sollte also alles überhauptkgarkeinnicht Problem sein…

Nach 2 Stunden lagen die Nerven blank… Ich habe Blogs und Foren durchstöbert, Tips, Tricks und Voodoo versucht – Nüscht… Der Testcode hat sofort nach dem Booten einen Fehler geschmissen. SPI-Kommunikation gescheitert… Kackewurst! Support von Circuits@Home für deren Library war nicht zu erwarten da die selber ein eigenes USB-Shield verkaufen und andere nicht unterstützen. Version 1 ausprobiert, Kabel umgesteckt, externe Spannungsversorgung angeklemmt, um den Tisch getanzt…. NICHTS

Dann der entscheidene Hinweis:

 

Aha! Also schnell alles nach folgenden Pin-Mapping zusammengesteckt:

USB Shield Arduino MEGA Info
7 RESET
9 9
10 10
11 51 MOSI
12 50 MISO
13 52 SCK

Nun läufts :)

die Maus-Demo funktioniert super, den Rest werde ich mal weiter ausprobieren. GPS, Joysticks, Tastaturen, sogar teurere Kameras sollen sich komplett damit steuern lassen. Bei Circuits@Home gibt es weitere Projekte zu dem Thema!

 

Links