Joystick Modellfernsteuerung mit Spektrum DXe

Überblick

In diesem Beitrag wird dargestellt, wie ein Spektrum DXe Fernsteuersender mit Hilfe eines USB2PPM Adapters und eines Notebooks genutzt werden kann, um einen Quadrocopter mit einem Joystick zu fliegen. Diese Anwendung ist insofern besonders interessant, weil so die fast verzögerungsfreie Kommandobearbeitung überprüft werden kann. 

Das Projekt umfasst folgende Schritte:

  • Vorbereitung des Fernsteuersenders
  • Aufbau des USB2PPM Adapters
  • Download des Joystick2PPM Programms
  • Einstellungen und Inbetriebnahme

Zusätzlich zum Fernsteuersender, PC oder Notebook mit Windows 10, USB2PPM-Adapter und dem Joystick wird noch ein Trainerkabel zur Verbindung des Fernsteuersenders mit dem USB2PMM sowie ein USB-Kabel benötigt.

Vorbereitung des Fernsteuersenders

Die Ansteuerung des Spektrum DXe Fernsteuersenders erfolgt drahtgebunden über die Lehrer-/Schülerbuchse auf der Rückseite des Senders. An dieser Buchse kann ein fremdes PPM-Signal eingespeist werden – in der Regel von einem zweiten Sender, dem Schülersender. Bei der Buchse handelt es sich um eine 3,5 mm Standard-Klinkenbuchse und die Kabelverbindung wird über ein entsprechendes Mono-Aux-Kabel hergestellt. 

Damit der Lehrer jederzeit schnell die Kontrolle übernehmen kann, wird das Signal des Schülers nur übermittelt, solange der Lehrer den Bindeknopf / Panikbutton gedrückt hält. Diese praktische Umsetzung des Lehrer – Schülerbetriebs erschwert natürlich eine dauerhafte Übernahme des Senders, da man den Taster ja wahrscheinlich nicht die ganze Zeit gedrückt halten kann oder will.

Von daher habe ich in meinen Spektrum DXe einen zusätzlichen Schalter eingebaut, um den Fernsteuersender dauerhaft auf Schülerbetrieb umstellen zu können. Obwohl der Einbau einfach ist, sollte man diesen nur in Erwägung ziehen, wenn man den Verlust der Gewährleistung in Kauf nimmt.

Einbau des Zusatzschalters für den permanenten Schülerbetrieb

Das Gehäuse wird wie in der Betriebsanleitung beschrieben geöffnet. In der Rückseite befindet sich schon eine Bohrung an der idealen Position, die von außen durch einen Aufkleber überdeckt ist (s. roten Pfeil im Bild). 

Die Bohrung wird freigelegt und der zusätzliche Schalter eingesetzt (s. Details).

Die Verdrahtung erfolgt so, dass der Bind/Panik/Trainer-Taster überbrückt wird (s. Bild). Hierzu wird ein kurzes Drahtstück an der kleinen Leiterplatte angelötet.

Ich habe dann noch außen einen kleinen Pfeil angebracht, damit ich immer weiß, in welcher Betriebsart sich der Sender befindet (s. Bild).

Aufbau des USB2PPM Adapters

Der USB2PPM wird gemäß der Bauanleitung realisiert, allerdings entfällt der letzte Schritt (einlöten der dreipoligen PIN-Leiste für das PPM Signal). Stattdessen wird zum Anschluss an den Spektrum DXe eine 3,5 mm Klinkenbuchse im Experimentierfeld der Leiterplatte untergebracht (s. Bild).

Adaption USB2PPM for Spektrum DXe

Damit liegen dann alle Hardwarevoraussetzungen für den Aufbau der Fernsteuerung vor.

Download des Joystick2PPM Programms

Das Joystick2PPM Programm übernimmt die Auswertung der Joystick-Positionen und die Umsetzung in entsprechende Kommandos an den USB2PPM. Dieser wiederum erzeugt den PPM-Impulsrahmen als Eingangssignal für den Fernsteuersender. 

Das Joystick2PPM-Programm ist Open Source und kann von der USB2PPM – Controller Seite heruntergeladen werden. Es handelt sich um ein Java-Programm, das nur extrahiert werden muss; eine Installation ist nicht erforderlich. In Einzelfällen kann es jedoch sein, dass noch die Java-Laufzeitumgebung installiert werden muss.

Einstellungen und Inbetriebnahme

Verbinden Sie nun den USB2PPM Adapter und den Joystick mit Ihrem PC. Bei der erstmaligen Verbindung wird Windows 10 automatisch Treiber installieren und den Adapter einer COM-Schnittstelle zuordnen. Nach Abschluss der Treiberinstallation starten Sie das Programm Joystick2PPM  durch Aufruf des Start-Windows Batch File (start x64.bat bei einem 64 Bit System bzw. start x86.bat bei 32 bit).

Als nächstes konfigurieren Sie nun den Joystick und ordnen den einzelnen Bedienelementen Kanäle der Fernsteuerung zu. Wechseln Sie hierzu in den Reiter mit der Bezeichnung Ihres Joysticks.

Zunächst ordnen Sie sinnvollerweise „Throttle“ dem „Slider“ zu. Hierzu klicken Sie auf den „+ Button“ vor Slider und es erscheint ein Auswahlfenster. Bitte bestätigen Sie die Zuordnung.

Die Zuordnung der weiteren Kanäle erfolgt dann analog durch Anwahl der + Taste. In meinem Fall habe ich die Y-Achse auf Kanal 2, die X-Achse auf Kanal 3 und die Rotation auf Kanal 4 gelegt. 

Wählen Sie die COM-Schnittstelle für den USB2PMM unter „Port Settings“ nun aus und klicken auf den „Connect“-Button. Wenn Sie das Command-Fenster noch offen haben, dann sehen Sie die Kommandos, die zyklisch an den USB2PPM-Adapter übertragen werden.

Nun schalten Sie Ihre Fernsteuerung ein und stellen sicher, dass der Sender mit dem Fernsteuermodell „gepaired“ ist (Trainerschalter auf „aus“). Verbinden Sie nun, ohne den Fernsteuersender auszuschalten, den USB2PPM-Adapter mit dem Trainingskabel mit dem Fernsteuersender. Sobald Sie dann den Trainerschalter einschalten, können Sie Ihr Modell mit dem Joystick fernsteuern. Die Trimmung für die einzelnen Kanäle und eine eventuelle Servo-Richtungsumkehr nehmen Sie bei Bedarf am PC vor.

 

WLAN Modellfernsteuerung mit Arduino

Der Open Source Arduino Sketch arduinodtx implementiert die Bedieneroberfläche und die Bedienelemente für einen leistungsfähigen Modellfernsteuerungssender mit einem seriellen Kommandoausgang (PiKoder/SSC bzw. PiKoder/PPM kompatibel). Für die Kommandoübertragung zum PiKoder wird ein transparenter serieller Kommunikationskanal benötigt.

Soll WLAN als Übertragungsweg genutzt werden, dann kann ein solcher Kanal senderseitig mit einem ESP8266-01 Modul realisiert werden; als Empfänger kommt ein PiKoder/SSC wRX zum Einsatz.

In diesem Fall werden neben den Basiskomponenten wie Steuerknüppeln, Schalter, etc., die zum Aufbau des arduinodtx-basierten Fernsteuersenders erforderlich sind, ein Logic Level Umsetzer von 5 auf 3,3 Volt, zwei Jumper zur Umschaltung der seriellen Kommunikationsschnittstelle (UART-Multiplexer) und ein ESP8266-01 Modul benötigt wie im Beitragsbild dargestellt. Die Verdrahtung entnehmen Sie dem folgenden Schaltbild (die Signale mit gleicher Bezeichnung müssen verbunden werden, Signale in blauer Schrift sind mit den entsprechenden Arduino-Signalen zu verbinden):

Der Aufbau ist relativ einfach und sollte problemlos auf einem Prototyp-Board erfolgen können.  

Im nächsten Schritt ist der ESP8266-01 als Access Point mit seriellem Ausgang zu programmieren – die Beschreibung hierzu finden Sie im Blog ESP8266-01 Sketch für den PiKoder/SSC wRX. Wollen Sie den ESP8266-01 im „eingesetzten Zustand“ programmieren, dann müssen Sie die dargestellte Schaltung um einen Programmierteil erweitern:

Bitte beachten Sie auch die Jumperstellung für D0/D1. Zusätzlich sollte bei jeder direkten Kommunikation mit dem ESP8266-01 der Arduino „stillgelegt“ werden (RESET Leitung auf GND legen), so dass die Datenübertragung nicht gestört wird.

Mit dem erfolgreichen Abschluss der Programmierung des ESP8266-01, dem Umstecken der Jumper, Aufwecken des Arduino und einem Reboot ist die Modellfernsteuerung betriebsbereit. 

 

Ardupilot Mega Rover mit Smartphone fernsteuern (III)

Überblick

Der Ardupilot Mega (APM) und andere Flight Controller werden vorzugsweise über ein PPM-Summensignal angesteuert und nicht über die Einzelkanaleingänge wie im Teil I dieses Blogs beschrieben. Mit dem PiKoder/PPM wRX steht nun auch ein Empfänger zur Verfügung, der direkt ein PPM Signal liefert.  Damit reduziert sich die Verbindung zwischen dem Empfänger und dem APM auf ein dreipoliges Kabel wie im Beitragsbild sichtbar.

Beschreibung

Der PiKoder/PPM wRX wird für die Anwendung in einem Rover ebenfalls von der udpRC4UGV App bedient, die im zweiten Teil des Beitrags beschrieben wurde.

Diese App wurde so erweitert, dass die Position des Steuerkanals (direction) und  des Motors (throttle) innerhalb des PPM Rahmens flexibel in den App Präferenzen festgelegt werden kann.

Die Eingabe erfolgt über die Auswahl der Präferenz und die Eingabe der Kanalnummer (1 .. 8). Beim APM liegt beispielsweise der Steuerkanal auf 1 (entsprechend default) und der Motorkanal auf 3.

Bitte beachten Sie ebenfalls, dass für die Umschaltung des APM von der parallelen Eingabe je Kanal auf PPM zwischen Kanal 2 und 3 ein Jumper gesetzt werden muss (s.u.).

Schuco Speed-Buggy mit Smartphone fernsteuern

Überblick

Dieser Blog beschreibt die Umrüstung eines Schuco Speed-Buggy von traditioneller Fernsteuerung auf eine Smartphone-Fernsteuerung mit einem PiKoder/SSC wRX. Obwohl diverse Schritte Buggy-spezifisch sind, lässt sich trotzdem die Vorgehensweise für den Umbau eines beliebigen Fernsteuermodells ableiten.

Meine Idee war, den Empfängerteil der Fernsteuerung still zu legen und die Kanalimpulse des neuen Smartphone-Empfängers am Ausgang des Kanal-Decoders – einzuspeisen, so dass sich die mechanischen und elektrischen Umbauten des Buggy auf ein Minimum beschränken.

Der von mir dann auf ebay als defekt erworbene Buggy hatte leider ausgerechnet eine nicht funktionierende Empfänger-Leiterplatte, so dass ich den Buggy entgegen meiner Planung auch mechanisch und elektrisch umbauen musste.

Vom Umbau hat aber auch meine Smartphone App udpRC deutlich profitiert: für den Lenk-Kanal gibt es jetzt eine Richtungsumkehr (reverse) und für beide Kanäle wird eine Trimfunktion angeboten. Und schließlich habe ich noch einen Schaltkanal (LIGHTS) realisiert, damit ich, wie in der Originalkonfiguration, auch die Scheinwerfer ein- und ausschalten kann.

Hinweis: Ich habe geplant, die Buggy-Leiterplatte noch weiter zu analysieren, zu reparieren und dann den Anschluss des Smartphone Empfängers an die Leiterplatte in einem weiteren Blog zu beschreiben.

Mechanische und elektrische Umbauten

Bestandsaufnahme und Funktion der Originalfernsteuerung

Das folgende Bild zeigt die Ausgangssituation des Buggy.

Die Ansteuerung des Antriebsmotors erfolgt traditionell über eine Brückenschaltung. Ein Standard-Fahrtregler kann diese Aufgabe ohne weitere Anpassungen übernehmen (und hat den Vorteil, dass die Spannungsversorgung des Empfängers in der Regel durch eine BEC-Funktion (Battery Eliminatior Circuit) bereit gestellt wird).

Das Lenkservo ist diskret aufgebaut: es wird nicht nur der Motor angesteuert, sondern auch ein Poti zur Auswertung der Position eingelesen. Da diese Logik nicht ohne größeren Aufwand nachzubilden ist, habe ich mich entschlossen, das diskret aufgebaute Servo komplett durch ein Fernsteuerservo zu ersetzen. Ein Graupner-Servo aus meiner Bastelkiste hat mechanisch perfekt gepasst.

Das Schalten der Scheinwerfer erfolgt interessanterweise nicht über den im Dekoderbaustein enthaltenen Schaltausgang, sondern wird diskret über die Auswertung der Kanalimpulslänge realisiert. Auch hier habe ich davon abgesehen, die vorhandene Logik nachzubilden und statt dessen für die Scheinwerfer die optionale Schaltfunktion des PiKoder/SSC wRX vorgesehen und eine einfache Treiberschaltung auf einer Prototypleiterplatte aufgebaut.

Das folgende Bild zeigt den modifizierten Aufbau.

Details zum Umbau

Einbau des Fahrtreglers

Das nächste Bild zeigt den Einbau des Fahrtreglers.

Der gewählte Fahrtregler passt mechanisch zwischen die Plastikstehbolzen vor der Motor-/Getriebeeinheit. Den zum Regler gehörigen Schalter (im Bild noch vorhanden) habe ich durch den Originalschalter des Buggy ersetzt, der dann wieder an der ursprünglichen Position eingesetzt wird.

Beleuchtung

Die Ansteuerung der Beleuchtung erfolgt durch eine kleine Treiberschaltung (im folgenden Bild sichtbar auf Prototypleiterplatte).

Die Schaltung ist denkbar einfach:

Als Schalttransistor habe ich einen 2N2222 mit einem Basiswiderstand von 1k verwendet. Weiterhin ist im Bild ein Hochlastwiderstand von 10R erkennbar, den ich in Reihe mit den Glühbirnen geschaltet habe (ich habe keine Angaben zu den Glühbirnen gefunden und da die Glühbirnen von der Buggy-Leiterplatte aus mit 6V angesteuert werden, ich aber eine direkte Verbindung zu den Akkus ( 6 x 1,2 V = 7,2 V) hergestellt habe, will ich so die Lebensdauer der Glühbirnen verlängern).

Da die Treiberschaltung die Glühbirnen im Gegensatz zur ursprünglichen Aufbau nun gegen Masse schaltet, mußte ich die Verkabelung der Beleuchtung ändern (schwarzes Kabel entfernt und gelbes Kabel verlegt).

Weitere umbauten und hinweise

Die vorhandene Kontrolllampe habe ich durch eine rote LED mit einem Vorwiderstand ersetzt, weil die Versorgung über den BEC erfolgt und ich den Leistungsbedarf minimieren wollte, um ggf. später noch andere Erweiterungen durchführen zu können (weißes Kabel im Bild).

Einbau des Empfängers PiKoder/SSC wRX

Mit dem Entfall der Original-Leiterplatte konnte ich den Empfänger mit Leichtigkeit in den entstandenen Raum einbauen; die Befestigung erfolgte mit Klettband.

Die Karosserie wird dann aufgesetzt und die Kabel von den Servos, der Lichtansteuerung und der Kontrolllampe werden, wie im nachfolgenden Bild zu sehen, aufgesteckt.

Die Reihenfolge der Kabel lautet von links nach rechts: Eingang Lichtsteuerung (rotes Kabel auf Kanalpin, Fahrtregler, Lenkservo und Kontrolllampe (weißes Kabel auf Pluspol der Spannungsversorgung des PiKoder/SSC wRX aufstecken).

udpRC Android Fernsteuer-App

Die Fernsteuerung erfolgt über die udpRC App, die ich speziell für diese Buggy-Anwendung erweitert habe (Release 1.10). Neben dem neuen Buggy Picto bietet die Touch-Bedieneroberfläche nun eine Trim- sowie eine reverse- und Light-Funktion an.

 

Die udpRC App ist kostenlos im Google Play Store erhältlich.

Ardupilot Mega Rover mit Smartphone fernsteuern (II)

Überblick

Wie im vorherigen Blog zum Thema „Ardupilot Mega Rover mit dem Smartphone fernsteuern“ bereits angedeutet, steht nun nach einiger weiterer Beschäftigung mit dem Thema eine neue Android(TM) App „udpRC4UGV“ mit Rover-spezifischen Funktionen zur Verfügung. Als wesentliche Erweiterung kann bei dieser App der „Flight Mode“ eingestellt werden und Kanal 7 ein- und ausgeschaltet werden, so dass diverse Sonderfunktion des APM verfügbar werden.

Beschreibung

Die Realisierung folgt der bereits im vorherigen Beitrag beschriebenen Vorgehensweise: ein PiKoder/SSC wRX Empfänger ersetzt den traditionellen Empfängerbaustein. Die Fernsteuerung erfolgt dann über WLAN, indem sich das Smartphone an den vom Empfänger angebotenen Access Punkt (AP) anmeldet.

Die Fernsteuer-App bietet verschiedene Bedieneroberflächen an: von einer einfachen Tastensteuerung über einen virtuellen Joystick bis hin zu einer Accelerometer-basierten Option.

Jede Bedienoberfläche bietet neben den allgemeinen Bedienelementen zur Fernsteuerung noch die Möglichkeit, den Flugmodus zu wählen. Zusätzlich kann Kanal 7 über die „CH7“-Taste ausgelöst werden (damit wird z.B. im LEARNING-Modus die aktuelle Position als Wegpunkt abgespeichert).

Die App ist im Google Play Store kostenfrei erhältlich. Das User Manual kann auf der PiKoder Webseite heruntergeladen werden; es beschreibt nicht nur die Programmbedienung im Detail, sondern auch den Hardwareaufbau.