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.

Empfänger mit bis zu 64 Kanälen für digitale Fernsteuerung oder Roboter

Für die Fernsteuerung im Funktionsmodellbau und bei komplexeren Robotern ergibt sich häufiger die Notwendigkeit für mehr als die üblichen 8 oder 12 Fernsteuerkanäle. Eine digitale Fernsteuerung mit einem Notebook, Tablet oder Smartphone als WLAN- oder Bluetooth- Sender, der anstelle des traditionellen PPM-Impulsrahmens kanalbezogene Kommandos verwendet, bietet vielfältige Möglichkeiten zur Realisierung einer eigenen, modellspezifischen Bedieneroberfläche.

Auf der Modellseite kann ein PiKoder/SSC zum Einsatz kommen, der die Kommandos dann in entsprechende Servosignale umsetzt. Für Einsatzfälle mit bis zu acht Kanälen stehen bereits kombinierte Empfänger- und Controller-Bausteine zur Verfügung (PiKoder/SSC wRX für WLAN und PiKoder/SSC RX für Bluetooth). Dieser Beitrag beschreibt, wie Empfänger mit mehr als acht Kanälen realisiert werden.

Die serielle Schnittstelle des PiKoder/SSC verfügt mit dem miniSSC-Interface über ein Kommando, das ein Daisy-Chaining von PiKodern zur Ansteuerung von bis zu 255 Servokanälen erlaubt. Die Grundzüge des Verfahrens sind in der PiKoder/SSC Application Note „Daisy Chaining“ beschrieben.  In dieser Konfiguration übernehmen PiKoder/SSC, die im Modell verteilt und über einen Datenbus miteinander und dem UART des Empfängers verbunden sind, lokale Steueraufgaben.

Der Empfängerbaustein wird sinnvollerweise auf einer gesonderten Busplatine untergebracht, die zusätzlich noch eine Spannungsanpassung auf 3,3 Volt, die vom WLAN-Empfänger und den PiKoder/SSC benötigt wird, Bustreiber, um auch längere Verbindungswege realisieren zu können und eine Logik, die verhindert, dass eventuelle irrtümliche TX-Signale der PiKoder zu einer Zerstörung von Pins führen, aufnimmt. Die folgenden Bilder zeigen den Aufbau der Busplatine auf einer Prototypleiterplatte, den Schaltplan sowie die Pinbelegungen.

Aufbau des Prototypen

Schaltplan

Anschlussbelegungen Prototyp

Die Busplatine kann alternativ mit einem WLAN- oder einem Bluetooth-Empfänger versehen werden. Die nachfolgenden Bilder zeigen beide Konfigurationen.

Busplatine mit WLAN Empfänger …

… oder alternativ mit Bluetooth bestückt

Die PiKoder/SSC werden über vier-adrige Verbindungskabel mit der Busplatine verbunden und mit Spannung versorgt. Die Programmierung der PiKoder/SSC für diese Konfiguration ist in der oben genannten AN beschrieben.

Ergänzung: Die Busplatine ist inzwischen auch als Bausatz erhältlich. Nähere Informationen finden Sie auf der PiKoder-Webseite.