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.

ESP8266-01 Sketch für den PiKoder/SSC wRX

Der PiKoder/SSC wRX verwendet das ESP8266-01 als Access Point (AP) zur Realisierung einer transparenten seriellen Kommunikation. Diese Anforderung lässt sich mit der Konfiguration über AT-Befehle realisieren. Allerdings ist dieser Weg unnötig kompliziert und aufgrund der zahlreichen Eingaben fehlerträchtig. Hinzu kommt, dass sich das Parametrierungsergebnis nur schwer verifizieren lässt und für Änderungen eine Neuprogrammierung des ESP8266 erforderlich ist.

Wesentlich einfacher ist es, den ESP8266-01 mit einem Sketch zu laden, der hinsichtlich der seriellen Kommunikation die identische Funktion realisiert und zusätzlich mit einigen effektiven Kommandos die Einstellung der benötigten AP-Parameter ermöglicht.

Der benötigte Sketch udpRC_ESP8266-01 ist Open Source und steht in einem github-Repository zum Download bereit. Die Firmware wird über das Arduino IDE, wie im Beitrag Modellfernsteuerung mit Webbrowser beschrieben, in den ESP geflasht.

Die Bedienung ist denkbar einfach. Beim ersten Start überprüft das Programm den Speicher des ESP8266, ob bereits ein gültiger Parametersatz vorliegt. Ist dies nicht der Fall, dann werden die Defaultwerte abgelegt. Nach einem erneuten Start ist der Controller dann mit Defaultwerten einsatzbereit.

Der Screenshot zeigt die Bedienung und die verfügbaren Kommandos. Nach dem Reset meldet sich der ESP8266-01 mit einigen unlesbaren Zeichen, die die Betriebsbereitschaft anzeigen.

Mit dem Kommando ‘$?<cr><lf>’ wird der aktuelle Parametersatz abgefragt und ausgegeben. Die SSID des AP wird mit dem Kommando ‘$s=’ gefolgt von <cr><lf> geändert und zur Veränderung des Passwords wird ‘$p=’ eingesetzt. Die neuen Parameter werden zwar direkt abgespeichert aber erst nach einem Neustart verwendet. Nach erfolgreicher Parametrierung können die geänderten Einstellungen jederzeit mit ‘$?<cr><lf>’ abgefragt werden.

Modellfernsteuerung mit Webbrowser

Ein Fernsteuermodell, dessen Empfänger als Access-Point konfiguriert ist und einen Webserver anbietet, kann mit einem Webbrowser von einem Smartphone aus ferngesteuert werden.

Als Hardwareplattform zur Implementierung dieses Konzepts bietet sich der PiKoder/SSC wRX an (s.u.): der ESP8266-01 realisiert den Access Point und den Webserver, der PiKoder/SSC übernimmt die zeitkritische Ansteuerung der Modellservos.

pikoder_ssc_wrx-catalogue-image-png

PiKoder/SSC wRX

In der Standardkonfiguration des PiKoder/SSC wRX wird der ESP8266-01 als transparente Brücke verwendet. Da zur Modellfernsteuerung mit dem Browser ein Webserver benötigt wird, ist der Wifi-Controller mit neuer Firmware zu laden. Hierzu kommt das IDE des Arduino zum Einsatz, das inzwischen auch generische ESP8266 Boards unterstützt.

Der benötigte Sketch ist Open Source und wird über das github Repository makerprojects/httpRC verteilt. Laden Sie den Sourcecode herunter und öffnen den Sketch mit dem Arduino IDE. Am Anfang des Programms finden Sie Hinweise zu den benötigten Boardeinstellungen. [Update 28.12.2018: Der httpRC Sketch wurde komplett überarbeitet. Die zugehörige Beschreibung finden Sie hier.]

Der ESP8266-01 kann zum Flashen nur über einen USB-Serial-Umsetzer mit dem PC verbunden werden, da er nicht über eine USB-Schnittstelle verfügt. Hierbei ist zusätzlich zu beachten, dass das Modul eine Spannungsversorgung und Signalpegel von 3,3 Volt benötigt; der direkte Anschluss von 5 Volt zerstört die Leiterplatte! Da diese Kombination bei USB-Serial-Umsetzern nicht ganz alltäglich ist, wird üblicherweise ein Umsetzer mit 3,3 Volt Signalpegel und einem 5 Volt Spannungsausgang gewählt wie beispielsweise der bei Ebay erhältliche PL2303TA und eine zusätzliche Spannungsanpassung mit einem 3,3 Volt Regler vorgesehen.

usb-connector-ebay

USB-Serial Umsetzer

Da man zum Flashen außerdem noch einen Reset-Taster und einen Programmiertaster benötigt, baut man sich zweckmäßigerweise einen entsprechenden Adapter auf einer Lochrasterplatine auf.

programmieradapter-esp8266

Programmieradapter für den ESP8266-01

Der Schaltplan für den eigentlichen Programmierteil ist in der folgenden Schaltung dargestellt.

esp8266_flash_prog_board_sch

Die Erzeugung der ebenfalls benötigten 3,3 Volt kann genauso wie beim PiKoder/SSC wRX mit einem Standard-Lowdrop-Spannungsregler LF 33 CV erfolgen (s. Schaltplanauszug; die 5 Volt vom USB-Serial-Adapter werden rechts angeschlossen, der Ausgang ist auf der linken Seite.

spannungsanpassung

Leider startet die Programmierung des ESP8266 nicht automatisch wie man dies vielleicht vom Arduino gewöhnt ist, sondern ist manuell einzuleiten. Hierzu werden der RST und der PROG Taster gleichzeitig gedrückt und der RST-Taster bei noch gedrücktem PROG-Taster losgelassen. Wenn danach dann auch der PROG-Taster losgelassen wird, befindet sich das Modul im Programmiermodus. Nun kann das Upload gestartet werden und nach der erfolgreichen Programmübersetzung wird die neue Firmware aufgespielt. Bevor das Modul eingesetzt werden kann, ist ein weiterer Reset erforderlich.