Open Source Arduino Digital RC Fernsteuersender

Der Sketch ArduinoDTX implementiert einen hochwertigen RC Fernsteuersender auf einem Arduino. Im Gegensatz zu traditionellen Fernsteuerungen erfolgt jedoch die Kodierung der Kanalinformationen nicht mit PPM-Signalen, sondern rein digital auf Basis des miniSSC-Protokolls. Zur Kommandoübertragung wird dann nur noch eine transparente serielle Verbindung wie Bluetooth, Wifi oder XBee benötigt. Als Empfänger kommt beispielsweise bei Bluetooth ein PiKoder/SSC RX zum Einsatz.

Der Sketch für den Sender basiert auf dem Open Source Projekt arduinorc von Richard Goutorbe. Damit stehen Leistungsmerkmale wie:

  • bis zu 9 Proportional-Kanäle (Nano, bei Uno maximal 6 Kanäle)
  • bis zu 6 zusätzliche Schaltkanäle
  • 9 Modellspeicher
  • Dual Rate und Exponential Schalter
  • Throttle Cut als Sicherheitsfunktion
  • 2 programmierbare Mixer
  • Justagemöglichkeiten für Endpositionen, Steuerknüppel und Servos
  • Throttle Sicherheitscheck beim Programmstart
  • Optionale Batterieüberwachung mit Alarm
  • Programmierbar unter Windows und Linux über USB-Schnittstelle und Terminalapplikation

Der arduinorc-Sketch wurde zum ArduinoDTx modifiziert, der am Arduino Ausgang D6 nun alle Kanalinformationen im miniSSC-Protokoll ausgibt. Dabei wird jedesmal dann ein Kommando erzeugt, wenn sich die Position eines Steuerknüppels verändert hat. Die PPM-Ausgabe ist komplett entfallen.

Der ArduinoDTx Sketch (.ino-Datei) ist Open Source und wird über ein entsprechendes github Repository unter den Bedingungen der GNU General Public License Version 3 zur Verfügung gestellt.

Digitale Vierkanal-Fernsteuerung

Schematischer Aufbau Arduino Digtial RC

Als konkretes Anwendungsbeispiel soll nun eine digitale Fernsteuerung mit vier Kanälen realisiert werden. Der Aufbau des Prototypen ist im Bild oben dargestellt. Die zwei Thumb-Joysticks belegen die Anschlüsse Pot 1/2 und Pot 3/4 gemäß des oben dargestellten Schaltbildes. Die Verbindung zu den Analogpins des Arduino wird über ein Prototyp-Shield hergestellt. Dieses nimmt praktischerweise auch den Mode-Schalter und die LED mit ihrem Vorwiderstand von 270R auf.

Die Fernsteuerung ist für Batterieversorgung ausgelegt. Um auch beim Einsatz von Akkus mit einer Nennspannung von 1,2 V die erforderliche Mindestbetriebsspannung des Arduino von 6 V zu erreichen, wurde ein Batteriehalter für 5 AA – Zellen vorgesehen. Die beiden seitlichen Brettchen dienen zum Abstützen der Handflächen und erleichtern die Bedienung ganz erheblich.

Die USB-Schnittstelle des Arduino ist bei diesem Aufbau sehr gut zugänglich, so dass Firmware geladen werden kann und die spezifische Anwendungsparametrierung möglich ist.

Inbetriebnahme und Test

Testaufbau Arduino Digtial RC

Die Inbetriebnahme beginnt mit dem Download des aduinodtx Sketch (.ino-Datei), der über ein entsprechendes github Repository zur Verfügung gestellt wird. (Hinweis: zur Übersetzung des Sketches wird die Arduino Library „TimerOne“ benötigt).

Nach dem erfolgreichen Upload des Sketches in den Arduino, kann die Funktion der Fernsteuerung am einfachsten mit dem im Bild dargestellten Aufbau einer drahtgebundenen Fernsteuerung getestet werden. In der Standardkonfiguration der Software werden durch die Pots 1 – 4 die entsprechenden Servokanäle 1 – 4 angesteuert.

Sind spezifische Anpassungen und Modelldefinitionen vorgesehen, dann sind diese gemäß der arduinorc-Beschreibung vorzunehmen: Alle Kommandos zur Programmierung der Fernsteuerfunktionen des arduinorc sind weiterhin verfügbar (Kommando Dokumentation).

Erweiterung auf Bluetooth

Bluetooth Shield Konfiguration für Arduino Digtial RC

Die digitale Fernsteuerung kann mit einem ITEAD-Bluetooth Shield und einem PiKoder/SSC RX  als Empfänger mit einfachen Mitteln zu einer drahtlosen Fernsteuerung ausgebaut werden. Da die Übertragung transparent geschieht, sind keine Anpassungen der Arduino-Software gegenüber der drahtgebundenen Version vorzunehmen und es steht der volle Funktionsumfang der Fernsteuerung zur Verfügung.

Der prinzipielle Aufbau des Senders ist im Bild dargestellt. Vor der erstmaligen Inbetriebnahme ist die Verbindung zwischen den beiden Bluetooth-Modulen zu konfigurieren. Das PiKoder/SSC RX User Manual, das von der PiKoder/SSC RX Seite heruntergeladen werden kann, beschreibt die notwendigen Schritte im Detail.

Erweiterung auf WLAN

Die digitale Fernsteuerung kann mit einfachen Mitteln auch auf WLAN hochgerüstet werden. Die Beschreibung hierzu finden Sie im Beitrag WLAN Modellfernsteuerung mit Arduino

Weitere Anwendungsbeispiele

Um größere Reichweiten zu erzielen, kann die digitale Fernsteuerung alternativ auch auf XBee umgestellt werden. Der Aufbau wird in einem weiteren Beitrag Modellfernsteuerung mit Arduino über XBee erklärt.

Modellfernsteuerung mit Joystick

Überblick

Bereits im vorherigen Beitrag wurde die Möglichkeit vorgestellt, mit einem Joystick, einem PC und einem PiKoder/SSC bis zu acht Servos über eine USB-Schnittstelle zu steuern. Hier wird nun beschrieben, wie eine drahtlose Modellfernsteuerung mit einem PiKoder – Empfänger, dem PiKoder/SSC RX, realisert werden kann.  Zur Signalübertragung kommt Bluetooth zum Einsatz.

Aufbau

Zunächst ist der PiKoder/SSC RX auf der Ebene des Betriebssystems mit dem PC zu verbinden. Hierzu sucht man zunächst in der Gerätesteuerung nach neuen Bluetoothgeräten.

Nach kurzer Zeit sollte das Bluetooth-Modul des Empfängers angeboten werden. Der PIN lautet „1234“.

Mit der Auswahl „Verbinden“ erfolgt die Kopplung (Pairing) auf Systemebene.

Wie die folgende Ansicht aus dem Geräte-Manager zeigt, werden mit der Kopplung systemseitig auch zwei virtuelle serielle Schnittstellen angelegt auf die wir später im Programm zum Verbindungsaufbau zugreifen. 

Damit ist die Einrichtung abgeschlossen und das Programm Joystick2SSC kann jetzt wie im vorherigen Beitrag beschrieben gestartet werden. Bitte beachten Sie, dass Sie eine Programmversion > 1.1.0 benötigen; in der ursprünglichen Version wurden die virtuellen Bluetooth-Schnittstellen nicht unterstützt.

Joystick steuert acht Servos

Überblick

Im Bereich der Robotik ergibt sich häufiger die Notwendigkeit mehrere Servos anzusteuern, z.B. bei der Realisierung eines Roboterarms. Hierbei bietet sich ein Joystick als Bedienelement an, weil die Vielzahl der Achsen / Freiheitsgrade die effiziente Kontrolle über viele Kanäle ermöglicht.

Dieser Beitrag stellt eine PC-basierte Lösung zur Ansteuerung von bis zu acht Servos mit einem Joystick vor. Die Abbildung der Joystick-Kanäle und Schalter auf die Servokanäle erfolgt flexibel in der Konfigurationsoberfläche der Software. Die eigentliche Impulserzeugung für die Servos übernimmt ein PiKoder Serial Servo Controller, der über eine USB-Schnittstelle mit dem PC verbunden ist. Mit einem PiKoder/SSC lässt sich eine Ansteuergenauigkeit von 1 µs erreichen; bei höheren Anforderungen (bis 0,2 µs) kommt ein PiKoder/SSC-HP zum Einsatz.

Aufbau

Der Aufbau erfolgt idealerweise mit Hilfe eines PiKoder/SSC – Evaluationsboard bzw. – wie im Bild dargestellt – mit dem PiKoder/SSC-HP-Evaluationsboard und mit einem Standard USB-Adapter.
Die Spannungsversorgung des PiKoder erfolgt über das USB Kabel. Da die USB Schnittstelle nicht genügend Leistung zur Ansteuerung der Servos liefern kann, sind diese mit einer unabhängigen Spannungsquelle über die Anschlussleiste zu versorgen. Um Ausgleichströme zu verhindern, die den PC beschädigen könnten, darf der Jumper auf der PiKoder-Leiterplatte auf keinen Fall gesteckt sein. Nähere Informationen finden sich im User Manual der PiKoder.

Anschluss des USB Kabels an das PiKoder/SSC-HP Evaluation Board – bitte beachten Sie, dass der Jumper nicht gesteckt sein darf

Software

Das Joystick2SSC Programm ist Open Source (Java) und auf github zu finden, das direkt ablauffähige Programm mit allen benötigten Modulen kann hier als .zip Datei herunter geladen werden.

Alle Dateien werden extrahiert und in das Zielverzeichnis kopiert; eine Installation ist nicht erforderlich. Der Programmstart erfolgt durch Doppelklicken von start.x86.bat (in einem 32 Bit System) oder start.x64.bat in einem 64 Bit System.

Nach dem Start der Software erscheint der Hauptbildschirm.

Hauptbildschirm Joystick2SSC

Zur Konfiguration der Servokanäle wählen Sie den Tab mit der Bezeichnung Ihres angeschlossenen Joysticks.

Zuordnung von Joystick Kanälen / Schaltern zu Servokanälen

Hier können Sie nun die notwendigen Einstellungen vornehmen. Danach kehren Sie in den Startbildschrim zurück und verbinden sich über Connect mit dem PiKoder/SSC. Mit den Balken auf der rechten Seite des Bildschirms können Sie die Positionierung und Ausgangswerte der einzelnen Kanäle nachvollziehen.

Modellfernsteuerung mit Webbrowser – intuitiver und reaktiver

In meinen bisherigen Blogs zum Thema Modellfernsteuerung mit Webbrowser habe ich Lösungen vorgestellt, die hinsichtlich der Bedieneroberfläche und der Responsezeiten (Agilität) der Fernsteuerung nur für einfache und nicht zeitkritische Anwendungen geeignet waren.

Die zuerst vorgestellte tastenorientierte Bedieneroberfläche war vergleichsweise träge, weil nach jeder Bedienung wieder die komplette Seite übertragen und neu aufgebaut wurde.

Das verbesserte „Joystick-artige“ Konzept benutzt bereits AJAX, um die Reaktionsgeschwindigkeit zu erhöhen. Allerdings erfordert die Steuerung noch, dass eine Bewegung durch einmaliges Antippen gestartet wird und dann durch erneutes Tippen an einer anderen Stelle des Bildschirms gestoppt wird während man eigentlich erwarten würde, dass die Bewegung solange aktiviert ist, wie die Taste „gedrückt“ wird.

Die neueste Version von httpRC erfüllt nun auf Basis einer tastenorientierten Bedieneroberfläche beide Anforderungen hinsichlich Reaktionsgeschwindigkeit und Logik: ein Befehl wird nur solange ausgeführt, wie der Button gedrückt wird.

Der Source Code für den ESP8266-01 wird über github bereit gestellt. Für die Programmierung habe ich sowohl den bereits beschriebenen Programmieradapter als auch den Arduino Due erfolgreich eingesetzt.

Weitere Informationen zum Empfängerbausatz selber finden Sie auf der entsprechenden Pikoder-Webseite.

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 Leiterplatten-Hack

Überblick

Dieser Blog beschreibt die Schuco Speed-Buggy Leiterplatte und die hierauf notwendigen Änderungen für den Einsatz mit dem PiKoder/SSC wRX um den Buggy mit einem Android Smartphone oder Tablett fernsteuern zu können.

Zur Adaptierung des Empfängers an die Leiterplatte sollen die vom PiKoder/SSC wRX erzeugten Impulse für die einzelnen Kanäle hinter dem auf der Leiterplatte vorhandenen Dekoder eingespeist werden.

Aufbau der Leiterplatte

Die Leiterplatte realisiert einen Digital-Proportional-Empfänger für drei Kanäle – Richtung, Geschwindigkeit und Licht – einschließlich der erforderlichen Servo- und Motoransteuerung.

Auf der Leiterplatte sind ein diskret aufgebauter Superhet-Empfänger (der in der neuen Konfiguration nicht mehr benötigt wird), ein Dekoder-IC (IC 1 im folgenden Bild), das die eingehenden PPM – Signale in die je Kanal erforderlichen PWM Signale umsetzt, ein IC für die Lenkservosteuerung (IC 2 im folgenden Bild)  und ein integrierter Schaltkreis für die Motoransteuerung (IC 3 im folgenden Bild) vorhanden.

Umbau der Leiterplatte

Die Kanalinformationen des PiKoder/SSC sollen die vom Dekoder erzeugten PWM Signale ersetzen. Um zu verhindern, dass sich die beiden Ausgangssignale gegenseitig stören bzw. die gegeneinander geschalteten Ausgangsstufen zerstört werden, habe ich das Dekoder-IC ausgelötet. Da die Leiterplatte einseitig ausgeführt ist, ging dies ohne Komplikationen und Leiterbahnablösungen.

Die Pins, an denen die dekodierten Signale abgegeben wurden, habe ich durch eine Stiftleiste ersetzt.

Die Belegung der Stifte von links nach rechts ist: Eingang für Lenkung, Motor, Licht.

Wie Sie vielleicht später beim Vergleich der Leiterplattenbilder feststellen werden, musste ich aufgrund eines Defektes der Leiterplatte das IC2 ersetzen.

Test und Messungen

Um die Änderungen testen zu können, habe ich ein einfaches Funktionsmodell des Buggy aufgebaut – das Lenkservo ist original, die Scheinwerfer werden durch eine LED simuliert und ein kleiner Gleichstrommotor ersetzt die originale Motor-/ Getriebeeinheit. Der Fernsteuerempfänger wird mit Klettband befestigt.

Zunächst habe ich dann die erforderlichen Impulslängen ermittelt. Da in der Vergangenheit fast jeder Hersteller seine eigenen spezifischen Impulslängen verwendet hat, empfiehlt sich in jedem Fall eine Überprüfung.

Zur Ermittlung der besten Einstellung habe ich den PiKoder/SSC wRX mit dem Aufbau verbunden und gemäß dem nachfolgenden Bild verdrahtet. (Wichtig: der Empfänger und das rote Kabel sind nicht eingesteckt!)

Mit Hilfe des PiKoder Control Centers (PCC) habe ich verschiedene Werte ausprobiert. Die nachfolgenden Einstellungen waren für meinen Aufbau am besten geeignet.

Im Bild sind für die Kanäle 1 und 2 jeweils die Neutralstellung sowie die Minimal- und Maximalwerte gezeigt. Für den Schaltkanal 3 (Scheinwerfer) gibt es keine Neutralposition – ab ca. 1920 µs schaltet das Licht ein. Da die Scheinwerfer nicht über eine Output-Pin geschaltet werden wie bei meiner Umrüstung, sondern über ein PWM-Signal, habe ich eine neue Version 1.11 der udpRC-App erstellt, in der Sie in den App-Settings von der Default-Konfiguration ‚Output-Pin‘ auf PWM umschalten können. Die App ist kostenlos im Play Store erhältlich.

Die ermittelten Werte werden mit ‚Save Parameters‘ im PiKoder abgespeichert, so dass die udpRC-App immer die richtigen Werte vorfindet.

 

 

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.

Ardupilot Mega Rover mit Smartphone fernsteuern

Überblick

In den typischen Anwendungen des Ardupilot Mega erfolgt die manuelle Kontrolle des Modells mit einer Modellfernsteuerung: der Empfänger bedient die Eingänge des APM mit PWM Signalen um sowohl die Bewegungen des Modells zu kontrollieren, als auch zur Auslösung von Sonderfunktionen und zur Umschaltung zwischen verschiedenen Flugmodi.

Wenn man den konventionellen Fernsteuerempfänger durch einen PiKoder-Empfänger wie den WLAN Empfänger PiKoder/SSC wRX ersetzt, dann kann der Ardupilot, beispielsweise in der Rover Konfiguration, über ein Smartphone gesteuert werden. Als Bedieneroberfläche können für diesen Anwendungsfall entweder die Android – Fernsteuerapps udpRC oder picCAR zum Einsatz kommen oder die im vorherigen Beitrag beschriebene Browser Oberfläche.

Realisierung

Zunächst wird der APM mit dem Mission Planer mit der ROVER – Konfiguration geladen; eine weitere Anpassung der Parameter war in meinem Fall nicht erforderlich.

Im folgenden Bild ist der sehr einfache Hardwareaufbau dargestellt.

Der PiKoder – Kanal 1 wird mit dem APM Eingang 1 (Steering) und der PiKoder – Kanal 2 mit dem Eingang 3 (Throttle) verbunden. An der Ausgangsseite wird die Standard-Rover-Verdrahtung verwendet (Lenkservo an Kanal 1, ESC mit BEC an Kanal 3). In dieser Konfiguration übernimmt der Ardupilot die Spannungsversorgung des Empfängers.

Der Ardupilot reagiert nicht auf PWM-Signale, die den typischen Bereich von ca. 1.000 – 2.000 µs unter- bzw. überschreiten. Von daher sind die Minimal- und Maximalwerte der Impulswerte des PiKoder/SSC, wie im folgenden Bild dargestellt, anzupassen.

Hierzu kommt das PiKoder Control Center (PCC) zum Einsatz wie im User’s Manual für den PiKoder/SSC wRX beschrieben.

Damit ist der Aufbau abgeschlossen; die Funktion der Apps ist in den Bedienungsanleitungen beschrieben.

Ausblick

Die Implementierung weiterer Konfigurationen und Funktionen ist inzwischen erfolgt und in die Android App udpRC4UGV eingeflossen, die in der Fortsetzung dieses Blogs beschrieben wird.

Da sowohl die Apps Open Source sind und das Empfänger-Protokoll offen gelegt ist, können natürlich auch eigene Modifikationen und Erweiterungen vorgenommen werden.

Modellfernsteuerung mit Webbrowser – verbesserte Bedieneroberfläche

Vor einigen Tagen bin ich auf das ESP8266 MikroE Buggy Projekt gestoßen.

In diesem Projekt wird ein Webserver auf dem ESP8266 implementiert – ähnlich wie in meinem Blog Modellfernsteuerung mit Webbrowser. Damit kann dann ebenfalls eine Betriebssystem-neutrale Fernsteuerung realisiert werden. Besonders interessant an diesem Projekt ist allerdings die einfache HTML5 Oberfläche, mit der ein Joystick realisiert wird.

 

Die Software ist Open Source und so konnte ich das Programm für den Einsatz in einem PiKoder/SSC wRX umstellen. Zusätzlich habe ich den Code so verändert, dass ein normales Fahrzeug mit einem Motor- und einem Richtungskanal gesteuert werden kann. Der angepasste Source Code steht in einem github Repository zur Verfügung.

Die Programmierung des ESP8266 ist ebenfalls im Blog zur Modellfernsteuerung mit Webbrowser beschrieben. Eine zusätzliche Besonderheit des ESP8266 MikroE Buggy Projekts besteht darin, dass das Arduino Filesystem benutzt wird. Die Installation und Benutzung ist hier beschrieben.