Tester für Metz MECATRONIC Rudermaschine 190/18

Derzeit beschäftige ich mich mit der Restaurierung einer Metz MECATRON ‚BABY‘ Funkfernsteuerung. Zum Test und zur Inbetriebnahme der Rudermaschine wollte ich nicht jedesmal die gesamte Fernsteuerung einschalten und habe mir daher einen einfachen Tester gebaut.

Dieser Tester bildet den Ausgang des Empfängers 191/S – ein Relais mit einem Umschaltkontakt – mit einem entsprechenden Taster nach. So kann dann die Funktion der Rudermaschine, die abhängig von der eingesetzten Schaltscheibe ist, getestet werden.

In meinem Fall ist die Schaltscheibe 1 eingesetzt; damit wird gemäß der Bedienungsanleitung folgender Schalterrhythmus realsiert:

  • Sendertaste gedrückt: Ruder links, solange Taste gedrückt bleibt
  • Sendertaste kurz drücken (ca. 0,4 Sekunden), kurz loslassen (ca. 0,4 Sekunden) und gedrückt halten: Ruder rechts, solange Taste beim zweiten Mal gedrückt gehalten wird.
  • Nach Loslassen des Senderknopfes geht das Ruder immer von selbst in Stellung neutral.

Im hier vorgestellten Aufbau entspricht natürlich der Senderknopf dem Taster.

Der Tester kann sehr einfach auf einer Laborleiterplatte aufgebaut werden und der Verdrahtungsaufwand ist minimal. Den benötigten 7-poligen Stecker zur Verbindung mit der Rudermaschine habe ich, wie im Bild sichtbar,  durch das Einstecken von Lötnägeln in eine 7-polige Röhrenfassung realisiert.  

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.

 

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

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. 

 

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.

Z80-EMUF wiederbelebt

EMUF Überblick

Die Zeitschrift mc – Die Mikrocomputer-Zeitschrift hat in den frühen achtziger Jahren diverse Anleitungen für Einplatinen-Computer veröffentlicht. Dazu zählen auch diverse EMUF (Einplatinen-Mikrocomputer für universelle Festprogramm-Anwendungen) Varianten, die auf den damals gebräuchlichsten CPUs basierten.

Die EMUFs waren nicht dafür gedacht, Programme zu entwickeln, weil sie von Haus aus nicht über ein Monitorprogramm und eine Bedieneroberfläche verfügten, sondern sollten eine Art softwaregesteuerte Logikschaltung sein. Das bedeutet, dass der EMUF in Verbindung mit einem Anwendungsprogramm (im EPROM), das auf einem anderen Computer entwickelt wurde, zu einem Controller für alle möglichen Steueraufgaben gemacht werden konnte.

Vor einiger Zeit konnte ich bei ebay einen Z80-EMUF erwerben, der in der mc 4/1983 beschrieben wurde.

Um den Z80-EMUF wieder in Betrieb zu nehmen, wurden zwei Dinge benötigt: eine elektrische und mechanische Adaption mit Spannungsversorgung und ein Testprogramm.

Mechanische und elektrische Adaption

Die mechanische Adaption ist im Titelbild zu diesem Blog nachvollziehbar. Die Spannungsversorgung erfolgt über ein Netzteil mit USB-Kabel (der EMUF benötigt 5 Volt) und alle Anschlüsse sind auf die Pinheader der Basisplatine geführt und damit für weitere Tests und Experimente verfügbar. Die Leiterplatte wird einfach in die Kartenhalter eingeschoben.

Z80-EMUF im Halter

Testprogramm

Die Veröffentlichung in der mc bietet auch ein Testprogramm an, bei dem alle Hardwarekomponenten getestet werden (s. folgendes Listing).

0001   0000             .org 0000h
0002   0000             ; Testprogramm für Z80 EMUF:
0003   0000             ; auf den Ausgängen der PIO's
0004   0000             ; wird nacheinander gezählt
0005   0000             
0006   0000             RAM 	equ 8000h
0007   0000             
0008   0000             PIO0 	equ 0
0009   0000             PIO1 	equ 10h
0010   0000             ; PIO Adressen:
0011   0000             ; PIO+0: Port A
0012   0000             ; PIO+1: Port B
0013   0000             ; PIO+2: Control Port A
0014   0000             ; PIO+3: Control Port B
0015   0000             
0016   0000 3E CF       EMUT1: 	ld a,11001111b; Initialisierung aller Ports auf Einzelbit Ein- und Ausgabe
0017   0002 D3 02       	out (PIO0+2),a
0018   0004 3E 00       	ld a,0
0019   0006 D3 02       	out (PIO0+2),a
0020   0008 3E CF       	ld a,11001111b
0021   000A D3 03       	out (PIO0+3),a
0022   000C 3E 00       	ld a,0
0023   000E D3 03       	out (PIO0+3),a
0024   0010             	
0025   0010 3E CF       	ld a,11001111b; Initialisierung PIO2 analog zu PIO1
0026   0012 D3 12       	out (PIO1+2),a
0027   0014 3E 00       	ld a,0
0028   0016 D3 12       	out (PIO1+2),a
0029   0018 3E CF       	ld a,11001111b
0030   001A D3 13       	out (PIO1+3),a
0031   001C 3E 00       	ld a,0
0032   001E D3 13       	out (PIO1+3),a
0033   0020             
0034   0020 06 00       LOOP:	ld b,0
0035   0022 78          L1:	ld a,b
0036   0023 32 00 80    	ld (RAM),a; RAM Adresse 00 .. FF wird angesprochen 
0037   0026 3A 00 80    	ld a,(RAM)
0038   0029 D3 00       	out (PIO0+0),a
0039   002B 05          	dec b
0040   002C C2 22 00    	jp nz,L1
0041   002F             
0042   002F 06 00       	ld b,0
0043   0031 78          L2:	ld a,b; jetzt 2. Port PIO0
0044   0032 32 00 80    	ld (RAM),a;  
0045   0035 3A 00 80    	ld a,(RAM)
0046   0038 D3 01       	out (PIO0+1),a
0047   003A 05          	dec b
0048   003B C2 31 00    	jp nz,L2
0049   003E             
0050   003E 06 00       	ld b,0
0051   0040 78          L3:	ld a,b; jetzt 1. Port PIO1
0052   0041 32 00 80    	ld (RAM),a;  
0053   0044 3A 00 80    	ld a,(RAM)
0054   0047 D3 10       	out (PIO1+0),a
0055   0049 05          	dec b
0056   004A C2 40 00    	jp nz,L3
0057   004D             
0058   004D 06 00       	ld b,0
0059   004F 78          L4:	ld a,b; jetzt 2. Port PIO1
0060   0050 32 00 80    	ld (RAM),a;  
0061   0053 3A 00 80    	ld a,(RAM)
0062   0056 D3 11       	out (PIO1+1),a
0063   0058 05          	dec b
0064   0059 C2 4F 00    	jp nz,L4
0065   005C             	
0066   005C C3 20 00    	jp LOOP
0067   005F             
0068   005F             	DS 1000h
0069   105F             .END		

Das Testprogramm kann im Intel-Hex-Format (als .zip Datei) heruntergeladen werden und in ein EPROM gebrannt werden.

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

ESP8266-01 mit Arduino Due programmieren

Im meinem Blog zur Modellfernsteuerung mit Webbrowser habe ich bereits einen Programmieradapter für den ESP8266-01 vorgestellt.  Die Schaltung kann vereinfacht werden, wenn man einen Arduino Due einsetzt.

Der Arduino Due basiert im Gegensatz zu den meisten anderen Arduino Boards auf einem Controller mit 3,3 Volt Logik und kann daher zwei Funktionen übernehmen:

  • USB zu UART Adapter mit 3,3 V Ausgangspegel
  • Spannungsquelle für die vom ESP8266 benötigten 3,3 V

Das Verdrahtungsschema ist im Titelbild für diesen Beitrag  dargestellt. Zusätzlich ist zu beachten, dass der Arduino Controller „still zu legen“ ist, damit er die Programmierung des ESP8266 nicht stört. Hierzu wird der Reset des Due fest mit GND verbunden.

Der praktische Aufbau des Programmieradapters kann auf einem Prototyp-Board erfolgen.

Hierbei wird der ESP8266-01 über einen Breakout-Adapter verbunden, da der Stecker nicht für den Einsatz in einem Prototyp-Board geeignet ist.