Erster Schritt getan:
Grundüberlegung: Wie steuert man einen solchen Roboter?!
Aktuell nutze ich eine 8-Kanal Fernsteuerung auf 2.4GHz (Turnigy 9X). Standartsteuerung für (Flug-)Modelle, Steuerkreuz links, Steuerkreuz rechts, ein paar Schalter.
Bei meinen Streifzügen durch das Web habe ich gesehen das einige Bastler zur Steuerung ihrer Fahrzeuge/Roboter keine normalen Fernsteuerungen einsetzen, sondern XBOX360 oder Playstation-Controller.
So ein Controller hat für meinen Robot einige Vorteile:
Ersteinmal die Steuerung des kompletten Fahrzeugs: Derzeit steuer ich die Kiste im „Panzermodus“ mit einem Steuerkreuz der Fernsteuerung. Vorwärt/Rückwärts ist klar, bei Kurvenfahrt wird ein Rad beschleunigt und das andere gebremst. Diese Steuerung könnte ich bei einem XBOX-Controller schon einmal mit dem „Right Stick“ erschlagen. (ich benenne das jetzt so wie auf dem obigen Bild zu sehen ist).
Dann soll die Kiste noch eine Kamera bekommen die frei schwenk- und neigbar ist. Dazu brauche ich also ein zweites „Steuerkreuz“. Mit der aktuellen Steuerung auch kein Problem, ist ja noch eines frei. Am XBOX-Controller würde ich wohl den „Left Stick“ nehmen.
Sollten noch weitere schaltbare „Schweinereien“ wie Blinker, Notaus, Streuwagen, Fegebürste, Hund, Katze, Maus kommen wäre das auch noch mit der aktuellen Steuerung lösbar (sind ja nur Schaltvorgänge). Wenn ich aber noch ein Steuerkreuz brauche wird das ganze ohne Doppelbelegung eng. Bei der XBOX-Steuerung wäre noch das „Directional pad“ über.
Ein weiterer Vorteil des Controllers gegenüber der aktuellen Steuerung: Das Teil liegt verdammt besser in der Hand 😉
Allerdings bringt das alles auch Probleme:
Kaum ein Problem ohne Lösungen:
Der Robot sollte von Anfang an eine „Basis-Station“ bekommen. Darin der Videomonitor für die Kamera und ein LCD-Display für die Telemetriedaten. Für die Telemetriedaten ist eine 2,4GHz Funkstrecke über zwei XBEE-Module vorgesehen. Um diese Basis-Station zu realisieren wird dort auch ein Arduino-Kontroller benötigt. Die XBEE-Funkstrecke ist bidirektional, das bedeutet ich bekomme nicht nur die Daten vom Robot, sondern sie kann auch die Steuersignale zum Robot schicken.
Problem 1 – Controler an die Basisstation verbinden: Dazu gibt es „USB-Host-Adapter“ z.B. von Sparkfun. Mit der passenden Software können dort USB-Sticks, Kameras, Festplatten, und – Gamecontroller angeschlossen werden. Für den Adapter gibt es eine Arduino Softwarelibrary die so ziemliche alle erdenklichen Geräte ansteuern oder auslesen kann. Die Library unterstützt auch direkt den XBOX360-Controller. Perfekt! 😉
Problem 2 – Übertragung: Wie oben angerissen können die Steuersignale über die XBEE-Verbindung an den Robot übertragen werden. Allerdings muss ich da noch nach einer Failsafe Lösung suchen! Diese Rollstuhlantriebe haben massiv Kraft und die Kiste kann erheblichen Schaden anrichten. Die aktuelle Steuerung hat einen eingebauten Lösung. Dazu wird im Empfänger eine „Failsafe-Stellung“ programmiert, welche ausgelöst wird wenn der Kontakt zum Sender unterbrochen wird.
Update
Offenbar kommt bald der „Arduino Esplora“, eine Art programmierbarer Controller mit diversen kleinen Gizmos.
Hier gibt es weitere Details: http://arduino.cc/en/Main/ArduinoBoardEsplora
USB-Host-Shield kaufen: http://www.watterott.com/de/SparkFun-USB-Host-Shield
USB-Host-Library: http://www.circuitsathome.com/arduino_usb_host_shield_projects