DiddyBorg mit QGroundControl – Joystick fernsteuern

In diesem Blog beschreibe ich, wie ich die Joystick- / Gamepad-Fernsteuerung meines RPI-gesteuerten DiddyBorg zu QGroundControl und MAVLink als Kommunikationsprotokoll weiter entwickelt habe. 

Damit habe ich die Basis geschaffen, um zukünftig in einer Standardumgebung weitere Sensoren zu verarbeiten und Missionen für den DiddyBorg zu planen und durchzuführen.

Softwareinstallation auf dem Raspberry Pi (RPi)

Auf dem RPi installieren Sie zunächst pymavlink, die Python-Version der MAVLink-Libraries. Am einfachsten geht dies mit PIP:

pip install pymavlink

Danach müssen Sie das Modul mavutil.py ersetzen, weil ansonsten aufgrund eines pymavlink-Issues keine Verbindung zwischen dem RPi und QGroundControl zustande kommt. Hierzu suchen Sie den Installationsort der pymavlink-Library mit:

pip list -v  

 

Dann ersetzen Sie das mavutil.py – Modul mit der Version im github-Repository zu diesem Blog. Die neue Version ist rückwärtskompatibel.

Schließlich erstellen Sie ein Verzeichnis, z.B. diddy2QGC in das Sie die Python-Module diddy2QGroundControl.py und ThunderBorg3.py kopieren. In diesem Verzeichnis starten Sie dann später das Python-Skript mit:

 python diddy2QGroundControl.py

 

Softwareinstallation auf dem Desktop

Installieren Sie QGroundControl auf Ihrem Desktop.

Starten der Anwendungen

Stellen Sie sicher, dass sich der RPi und Ihr Desktop im gleichen Netzwerk befinden und starten Sie QGroundControl (QGC) und das Python-Skript (die Reihenfolge ist ohne Bedeutung). 

Der DiddyBorg meldet sich bei der QGC an und Sie finden dann in den Vehicle-Einstellungen die Möglichkeit, Ihren Joystick einzulernen. Bitte beachten Sie dabei, dass diddy2QGroundControl.py im Mode 2 den Roll-Kanal für die Rechts/Links-Steuerung und den invertierten Wert des Pitch-Kanals für die Motorsteuerung verwendet.

 

 

DiddyBorg mit Gamepad oder Joystick fernsteuern

In diesem Blog stelle ich meine Windows-App JoystickRC4DiddyBorg zur Fernsteuerung des DiddyBorg (von PiBorg) mit einem Joystick oder Gamepad vor. 

Die DiddyBorg-Beispielprogramme, die vom Hersteller PiBorg veröffentlicht wurden, enthalten zwar auch ein Python-Fernsteuerscript mit Joystick, die aber Bluetooth verwendet und daher nur eine recht beschränkte Reichweite aufweist. 

Die hier vorgestellte App verwendet das vorhandene WLAN und UDP als Protokoll, um eine ausreichende Agilität der Fernsteuerung sicher zu stellen. Aus Sicherheitsgründen ist die Time-Out-Logik der Motorsteuerung ThunderBorg aktiviert.

Installation der Software

Der DiddyBorg benötigt als Empfänger ein Python-Script JoystickRC4DiddyBorg, das Sie auf github.com finden. Zusätzlich zum Empfängerprogramm finden Sie im Repository auch eine Version der ThunderBorg – Library für Python 3.x (die  Beispielprogramme für den DiddyBorg basieren noch auf Python 2.x).

Am einfachsten ist es, die beiden Dateien zusätzlich in das Verzeichnis mit den Beispielen zu kopieren – dann sollte das Script ohne weitere Anpassungen von Pfadnamen funktionieren.

Auf der PC – Seite installieren Sie die gleichnamige Windows App JoystickRC4DiddyBorg, die Sie kostenfrei im Microsoft App Store erhalten. 

Bedienung

Starten Sie zuerst das Python-Script auf dem DiddyBorg. Wenn Sie einen Bildschirm angeschlossen haben, dann meldet sich das Programm und gibt an, dass es auf einen  Client wartet.

Wenn Sie die PC App starten, dann sucht diese automatisch nach einem DiddyBorg mit einem aktiven und kompatiblen Empfänger im lokalen WLAN (mit dem sowohl der DiddyBorg als auch der verwendete PC verbunden sein müssen). Kann keine Verbindung hergestellt werden, dann erfolgt eine entsprechende Fehlermeldung. 

Nach dem erfolgreichen Verbindungsaufbau können die Kanäle den verschiedenen Joystickachsen und Tasten zugeordnet werden. Die Kanäle 3 und 4 werden als Taster verwendet und ermöglichen beispielsweise eine schnelle / langsame Drehung (die Funktion der Taster kann im Python-Script nachvollzogen werden). 

Die Zuordnung der Kanäle wird gespeichert und beim nächsten Programmstart wieder hergestellt.

Arduino Fernsteuersender mit iRangeX Multiprotokollmodul

Der vorherige Blog beschreibt den Arduino-PPM-Encoder. Zusammen mit einem Multiprotokollmodul können Sie mit geringem Zusatzaufwand einen vollständigen Fernsteuersender aufbauen.

Dazu adaptieren Sie das Modul über ein Arduino-Prototyp-Shield. Es sind allerdings nicht alle Shields gleich geeignet. Einige Shields haben im unteren rechten Bereich kein Lochraster sondern ein spezifisches Layout wie die rote Leiterplatte im Bild. Sie benötigen aber ein Prototyp-Board mit vollständigem Lochraster wie die blaue Leiterplatte.

Arduino Prototyp Sields

Die elektrische Verbindung zwischen dem Arduino und dem Modul stellen Sie mit einer fünfpoligen Stiftleiste mit extra-langen Stiften her. Stecken Sie die Stiftleiste in die Buchsenleiste auf der Rückseite des Moduls ein. Positionieren Sie das Modul dann auf dem Prototyp-Shield und finden so die korrekte Position für das Modul und die Lötpunkte, die Sie verwenden müssen. 

Um einen sicheren Halt zu gewährleisten, habe ich noch zusätzlich Klettband vorgesehen. Da sich durch diese zusätzliche Zwischenlage die Höhe der Lötstifte nochmal verändert, können Sie die Stifte erst jetzt einlöten.

Die Verdrahtung zur Spannungsversorgung und für das PPM Signal entnehmen Sie dem Bild. Mit dem Aufstecken des Moduls ist der Aufbau abgeschlossen.

 

 

 

 

 

 

 

 

USB2PPM by Arduino

Meine bisherigen Blogs zur Verbindung eines Joysticks mit einer Modellfernsteuerung über USB haben immer einen meiner PiKoder verwendet. Aber natürlich kann auch ein Arduino die PPM-Signalerzeugung übernehmen. 

Zur Umsetzung dieser Idee habe ich einen Arduino Sketch USB2PPM_by_Arduino (Open Source) erstellt, den Sie auf Github finden. Das Programm implementiert einen PPM-Encoder, dessen Parameter und Kanalwerte über serielle Kommandos gesetzt werden.

So können Sie u.a. die Polarität des Ausgangssignals umschalten und die Zahl der PPM-Kanäle im Bereich von eins bis acht wählen, um den Encoder auf Ihren Sender anzupassen.  

Das PPM Signal finden Sie am Pin D8. Zur Verbindung mit dem Schülereingang Ihrer Modellfernsteuerung benötigen Sie dann noch ein entsprechendes Kabel. Möglicherweise ist es auch sinnvoll, ein Arduino – Prototyp – Shield zu verwenden, das eine geeignete Buchse aufnimmt, um eine stabile Verbindung sicher zu stellen. 

Für die Integration der PPM-Encoders in Ihre Anwendung entnehmen Sie die Definition der Kommandos und Nachrichten dem Headerfile protocol.h.  

Außerdem finden Sie im Microsoft Store die Joystick2PPM4Arduino App mit der Sie einen Joystick oder Gamepad (DirectX-fähig) verwenden, um den Arduino-PPM-Encoder anzusteuern. Die App arbeitet mit dem Arduino Uno, Nano und Micro Pro. 

Joystick Modellfernsteuerung mit iRangeX Multiprotokoll – Modul und Android Smart Device – noch kompakter!

Der vorherige Blog hat beschrieben, wie der ursprünglich verwendete Fernsteuersender durch ein iRangeX Multiprotokoll-Modul ersetzt und der gesamte Aufbau vereinfacht werden kann.

In diesem Blog wird nun ein noch kompakterer Aufbau beschrieben, bei dem der USB Hub, der USB2PPM PiKoder und das Multiprotokoll-Modul mechanisch zu einer Einheit zusammengefasst werden, die dann nur noch mit dem Smart Device und dem Joystick verbunden werden muss.

Zur Realisierung sind folgende Schritte erforderlich:

    1. Kabel USB – Hub verlängern
    2. USB2PPM PiKoder mit USB-Stecker modifizieren
    3. Baugruppenträger realisieren
    4. Module montieren und verdrahten

Kabel USB – Hub verlängern

Die gängigen USB OTG Hubs (on the go) haben in der Regel ein sehr kurzes Anschlusskabel (0,1 – 0,15 m). Im praktischen Einsatz ergeben sich hierdurch Einschränkungen, da der Hub so immer in der Nähe des Smart Devices sein muss und möglicherweise neben dem Halter in der Luft hängt und so eine „starre Verbindung“ mit dem PiKoder nicht möglich ist.

Die Verlängerung des Anschlusskabels stellt kein Problem dar. Es ist lediglich zu beachten, dass als Stecker weiterhin ein OTG-Stecker mit entsprechender Kodierung (s. Bild) zum Einsatz kommt, weil der Hub ansonsten nicht erkannt und mit Spannung versorgt wird.

Die Verlängerung lässt sich am einfachsten realisieren, indem ein Stück USB-Kabel der gewünschten Länge an die Hub-Platine angelötet wird und am anderen Ende der vorhandene Stecker mit dem kurzen Kabelende angebracht und mit Schrumpfschlauch fixiert wird.          

USB2PPM PiKoder mit USB-Stecker modifizieren

Für die direkte Verbindung zwischen USB Hub und PiKoder benötigt der USB2PPM einen USB Stecker (s. Bild rechts) anstelle der normalen USB Micro-Buchse. Damit der Stecker montiert werden kann, sägen Sie die Leiterplatte ein um dann die Befestigungslaschen durchstecken zu können. Zusätzlich ist eine Bohrung erforderlich, um die Anschlusskabel des Steckers verdrahten zu können (s. Bild unten).

Danach kleben Sie den Stecker mit Zweikomponentenkleber auf die Leiterplatte und bestücken die Leiterplatte mit den übrigen Bauteilen (s. Bilder unten). Hinweis: im weiteren Verlauf des Projektes habe ich den dreipoligen Header durch einen Molex-Verbinder ersetzt. 

 

Zum Schluss verbinden Sie nun noch die Pins des USB Steckers mit den entsprechenden PiKoder Pins; hierzu wird ein dünner, isolierter Draht verwendet. Das folgenden Bilder zeigen die schematische Verbindung und danach sehen Sie die konkrete Ausführung auf der Platinenunterseite.

 

Baugruppenträger realisieren

Der Baugruppenträger besteht aus einer einfachen gewinkelten Holzkonstruktion. Die quadratische Grundplatte von 85 mm Seitenlänge nimmt den Hub und den USB2PPM Pikoder auf. Das Multiprotokollmodul wird in der senkrechten Gabel eingeklemmt. Zur optischen Verbesserung der Kabelführung habe ich einen entsprechenden Kanal gebohrt.

Module montieren und verdrahten

Auf den folgenden Bildern sehen Sie den kompletten Aufbau. Der Hub wird mit doppelseitigem Klebeband fixiert, der USB2PPM PiKoder eingesteckt und mit Schrauben durch die beiden vorderen Befestigungslöcher fixiert. Hierbei verwenden Sie am besten einige Unterlagscheiben als Abstandhalter, damit sich die Leiterplatte nicht verbiegt.

Mit dem Micro USB Stecker ist der “Kompakt-Sender” zunächst für den Anschluss an ein Android Device vorgesehen. Mit einem kleinen Adapter, z.B. von Micro USB auf USB C-Stecker kann der Sender natürlich problemlos mit einem Surface Notebook verbunden werden.  

 

Joystick Modellfernsteuerung mit Multiprotokoll-TX-Modul iRangeX IRX4+

In den beiden vorhergehenden Beiträgen zur Modellfernsteuerung mit Joystick wurde ein “ganz normaler” Fernsteuersender zur Kommandoübertragung genutzt. Dabei wurden die Steuerknüppel und diversen Schalter nicht benötigt, weil die Steuerung selber ja durch den Joystick wahrgenommen wird.

Von daher kann der Gesamtaufbau vereinfacht werden, indem statt des kompletten Fernsteuersenders ein Multiprotokoll-TX-Modul wie das iRangeX  iRX4+ eingesetzt wird.

Das Modul kann – genauso wie der Fernsteuersender – direkt über das PPM-Signal vom USB2PPM – PiKoder angesteuert werden. Da das iRangeX bereits ab einer Betriebsspannung von 5 Volt arbeitet, ist keine zusätzliche Batterie erforderlich sondern die Spannungsversorgung erfolgt ebenfalls über den USB2PPM PiKoder. 

Aufbau 

Der USB2PPM PiKoder wird entsprechend der Anleitung aufgebaut. Auch wenn Sie bisher nur eine Cynch-Buchse bestückt haben, lässt sich der dreipolige Header problemlos nachrüsten.

Die Verbindung zwischen dem iRX4+ Moduls wird über ein dreiadriges Kabel (Vcc, PPM und Gnd) hergestellt (s. Bild links unten). An einem Ende des Kabels befindet sich eine dreipolige Buchse zum Aufstecken auf die entsprechende Stiftleiste des USB2PPM, auf der anderen Seite werden die fünf Buchsen des Moduls adaptiert – die Pinbelegung, die das Modul erwartet, sehen Sie im rechten Bild. 

  

 

 

 

 

 

Es sind darüber hinaus keine weiteren Anpassungen oder Änderungen erforderlich. 

Und der hier beschriebene Aufbau ist natürlich genauso in Verbindung mit einem Windows-Notebook zu verwenden.

Joystick Modellfernsteuerung mit Spektrum DXe (2)

Der erste Beitrag dieser Reihe hat ein Notebook verwendet, um die Joystick-Eingaben in Kommandos für den USB2PPM zu übersetzen. Alternativ hierzu kann für ausgewählte Joysticks auch ein Android(TM) Smart Device mit einer entsprechenden App zum Einsatz kommen.  

Der Hardwareaufbau im Titelbild gleicht der Konfiguration im Teil 1 bis auf den Computer, der durch das Smart Device ersetzt wird und den Hub: in Verbindung mit dem Smart Device ist unbedingt ein USB OTG Hub zu verwenden. 

Hinsichtlich der Vorbereitung des Fernsteuersenders gelten die gleichen Überlegungen zur Ergonomie und es empfiehlt sich, die Fernsteuerung wie in Teil 1 beschrieben, mit einem Schalter zu erweitern.

Hinsichtlich der App selber haben Sie die Auswahl zwischen der kostenlosen App Joystick2PPM und einer speziellen  App für Quadrocopter Joystick4UAV (s.u.); beide Apps finden Sie im Google Play Store. 

Joystick2PPM (Android App)

Die Bedieneroberfläche der App entspricht weitgehend der Windows Implementierung und ist intuitiv und einfach verständlich. Auf der linken Seite befinden sich die Joystick – Bedienelemente und die Abbildung auf die Servokanäle erfolgt auf der rechten Seite mit Drop-Down-Boxen.

Der Joystick und der USB2PPM werden nach dem Starten der APP automatisch erkannt. Der Benutzer muss beim erstmaligen Gebrauch den Zugriff der Anwendung auf die entsprechenden USB-Schnittstellen freigeben. 

Bitte beachten Sie, dass die App derzeit nur eine beschränkte Anzahl von Joysticks und anderen Bediengeräten unterstützt. Den aktuellen Stand der kompatiblen Geräte finden Sie jederzeit im Playstore. 

Joystick4UAV (Android App)

Die Joystick4UAV App stellt eine Weiterentwicklung der Joystick2PPM Anwendung dar, die auf die Belange der Fernsteuerung von Quadrocoptern oder anderen Fahrzeugen (UGV) und Booten (USV) mit einem Flight Controller ausgerichtet ist.

Vom grundsätzlichen Aufbau her entspricht die Joystick4UAV den bereits beschriebenen Apps. Die Abbildung der vier Joystick-Achsen erfolgt auf die Fernsteuerkanäle 1-4 entsprechend der üblichen Belegung für Flight Controller. Diese Zuordnung innerhalb der vier Kanäle können Sie natürlich entsprechend Ihrer Präferenzen anpassen. Alle Kanäle können durch Checken der zugehörigen Box invertiert werden.

Der Flight Mode wird im Kanal 5 kodiert. Es stehen sechs Modi zur Verfügung. Die Umschaltung erfolgt über die Joystick-Taster 7-12 (s. Bild rechts unten), wobei Taster 7 Flugmode “1” einstellt und Taster 12 den Flugmode “6”. Der gewählte Flugmode wird jeweils numerisch angezeigt (“1” im Bild oben) und der Balken entspricht dem übertragenen Kanalwert.

Die verbleibenden Taster 1-6 (Button B1 .. B6 im oberen Bereich) und der Hat-Switch stehen für Sonderfunktionen zur Verfügung und können beliebig den Kanälen 6-8 zugeordnet werden. Wird die zum Kanal gehörige Box aktiviert, dann verhält sich der Taster als Schalter.

Bitte beachten Sie, dass in der App derzeit nur der Logitech Extreme 3D Pro Joystick unterstützt wird.

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. 

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 USB2PPM 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. Bilder).

Adaption USB2PPM for Spektrum DXe

Verdrahtung der Klinkenbuchse

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 kostenlos im Microsoft App Store erhältlich.

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. Das Programm verbindet sich automatisch mit dem USB2PPM und dem ersten Joystick den es findet und stellt die verfügbaren Achsen und Schalter im linken Bildschirmteil dar. 

Nun können Sie beginnen, die Kanäle für Ihre Anwendung modellspezifisch zu konfigurieren. 

Für diesen Blog habe ich als Beispiel einen Blade INDUCTRIX Quadrocopter ausgewählt, aber Sie können natürlich auch andere Copter verbinden. 

Zur Konfiguration ordnen Sie nun auf der rechten Seite den einzelnen Kanälen der Fernsteuerung Bedienelemente des Joysticks zu (die Anleitung des Modells enthält möglicherweise Hinweise zur Zuordnung der Kanäle). Wenn Sie die Auswahlbox zu einem Kanal anklicken, werden Ihnen alle noch nicht zugeordneten Bedienelemente angezeigt und Sie können Ihre Auswahl für diesen Kanal durch anklicken treffen.

Sobald Sie eine Zuordnung vorgenommen haben, wird der aktuelle Wert für dieses Bedienelement auf die rechte Seite als Kanalwert übernommen. Die vollständige Konfiguration für meine Anwendung sehen Sie im folgenden Screendump.

 

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.

 

Verdrahtung der Klinkenbuchse
Verdrahtung der Klinkenbuchse
Verdrahtung der Klinkenbuchse
Verdrahtung der Klinkenbuchse
Verdrahtung der Klinkenbuchse

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.).