Kategorie-Archiv: Libraries

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

Arduino Library für den Grove Led Bar

Ich habe den durchgeknallten Democode für die Grove Led Bar mal in eine saubere Arduino Library verpackt.

Für die Ansteuerung werden zwei Pins des Arduino benötigt. Einer für Data und einer für Clock.

Sweepdemo

Der Methode sendLED wird ein 16Bit-Wert zwischen 0 (alle aus) und 1023 (alle an) übergeben. Die einzelnen Bitwerte entsprechen den einzelnen LEDs.

Weiterlesen