PPM2USB - Modellbau-Fernsteuerungs-Adapter

Der hier beschriebene Adapter ermöglicht den Anschluss einer Modellbau-Fernsteuerung an dem USB-Port eines PCs und emuliert einen Standard-USB-Joystick. Damit können z.B. Flugmodelle im Simulator mit der eigenen Fernsteuerung geflogen werden.

USB-seitig verhält sich der Adapter wie ein Standard-USB-Joystick (HID-Device) und wird ohne Treiber unter Windows erkannt. Unter Linux und Mac OS sollte es ebenfalls funktionieren, dies wurde aber noch nicht getestet. Der Adapter ist hervorragend geeignet, um den Modellflug am heimischen PC zu simulieren.

Fernsteuerung-Joystick Adapter

PPM

Die meisten Modellbau-Fernsteuerung liefern ein sogenanntes PPM-Signal. Es handelt sich dabei um eine Puls-Pausen-Modulation aller Kanäle. Bild 2 zeigt ein solches PPM-Signal mit 5 Kanälen. Es besteht aus einer Impulsfolge mit ca 0,4ms langen Impulsen. Der Zeitabstand tn zwischen den Impulsen entspricht der Stick-Position des jeweiligen Kanals. Eine Zeit von 1,5ms entspricht der Mittelstellung, 1ms der Minimal- und 2ms der Maximalstellung. Eine Impulsfolge besteht aus n+1 Impulsen - für 5 Kanäle also 6 Impulse. Die Impulsfolge wird ca. alle 20ms (50Hz) wiederholt. Das Signal hat bei meinem Sender eine Amplitude von ca. 4,1V.

Das PPM-Signal einer Fernsteuerung mit 5 Kanälen

Bild 2: Das PPM-Signal einer Fernsteuerung mit 5 Kanälen

Das PPM-Signal kann bei dem von mir verwendeten Fernsteuer-Sender (Typ Esky EK2-0406G) an dem davor vorgesehenen Trainer-Anschluss abgegriffen werden. Die Pinbelegung der 4-pol. Mini-DIN ist in Bild 3 ersichtlich. Der Stecker wird übrigens auch bei S-Video verwendet, ein passendes Kabel mit Stecker ist daher leicht zu bekommen.

Steckerbelegung vom Trainer-Anschluss der Esky-Fernsteuerung

Bild 3: Steckerbelegung vom Trainer-Anschluss der Esky-Fernsteuerung

Eine Übersicht der Steckerbelegungen der Trainerbuchsen anderer Hersteller (u.a. Graupner, Robbe, Futaba, Multiplex, Hitec) ist hier zu finden: Externer LinkSteckerbelegungen von Schülerbuchsen verschiedener RC-Sender. Bei analogen Empfängern ist das Signal meist auch auf der Platine zu finden.

Hardware

Der Schaltplan des PPM2USB-Adapters

Bild 4: Der Schaltplan des PPM2USB-Adapters

Der Schaltplan ist recht übersichtlich und kann auf einem Stück Lochrasterplatine oder Mithilfe eines Entwicklungsboards aufgebaut werden. Die Widerstände und die Zenerdioden sorgen für die nötigen USB-Spannungspegel. Das PPM-Signal wird direkt mit dem ICP-Pin des ATMega8 verbunden. Dies funktioniert bei Signalpegeln im Bereich von ca. 1,5-5V. Bei kleineren Amplituden könnte man den internen Komparator benutzen. Für das richtige Timing sorgt ein externer 12Mhz Quarz.

Anmerkung: Die ISP-Beschaltung zum Programmieren des Controllers ftpwurde im Schaltplan weg gelassen. Die etwas ungewöhnlichen Widerstandswerte entsprechen den von V-USB vorgeschlagenen Werten. (Mein Prototyp funktioniert auch problemlos mit 100 Ohm anstatt 68 Ohm, 2,2k-Ohm anstatt 1,5kOhm und ohne die Zenerdioden. Das muss aber nicht überall so sein.)

Software

Die Software wurde mit der AVR-GCC-Toolchain entwickelt und besteht aus drei Teilen:

PPM-Dekoder

Der PPM-Dekoder ist vollständig Interrupt gesteuert. Zur Messung der Zeiten wird ein 16Bit Timer verwendet, der direkt mit dem CPU-Takt (12Mhz) verbunden ist. Ausgewertet werden nur die positiven Flanken der Eingangssignals am ICP-Pin. Dabei wird der ICP-Interrupt ausgelöst, der die Zeiten zwischen den Impulsen abspeichert. Je nach Stick-Position ergeben sich hier Timerwerte im Bereich von (1ms*12Mhz)=12000 bis (2ms*12Mhz)=24000. Für die Übertragung an den PC werden die Timerwerte in einen 8-Bit-Wert im Bereich 0-255 umgerechnet. Eine längere Pause - diese tritt zwischen den Impulspaketen auf - löst einen Timer-Overflow-Interrupt auf und setzt den Dekoder wieder zurück.

USB-Stack

Der ATMega8 besitzt eigentlich keine USB-Schnittstelle. Dennoch ist es möglich, eine solche in Software zu realisieren. Dazu wurde der frei verfügbare USB-Stack namens Externer LinkV-USB verwendet. Dem angeschlossenen PC wird ein HID Joystick vorgegaukelt.

Hauptprogramm

Im Hauptprogramm wird V-USB initialisiert. Anschließend begibt sich der Controller in eine Endlosschleife, in der USB-Daten gepollt und die Joystick-Positionen an den PC Übertragen werden. Es werden nur Daten übertragen, wenn sich die Stickpositionen geändert haben. Dies wird durch kurzes Aufblitzen der LED angezeigt.

Download

Flug-Modell-Simulator FMS

Zur Simulation von Modellbauflugzeugen ist der kostenlose Flug-Modell-Simulator (FMS) bestens geeignet. Die Modelle können dann zusammen mit dem hier beschriebenen Adapter mit der eigenen Fernbedienung geflogen werden:

Video 1: Test des PPM2USB-Adapters, Testflug mit Quadropcopter und A380 im FMS

Tags: usb rc simulator interface ppm kabel cable pinout pinbelegung adapter joystick trainer modellbau v-sub pcm RC USB AVR Mikrocontroller Projekte Projekt uC diy selbstbau tutorial µC selbstgebaut schaltung schaltplan schema bauplan bauanleitung schematic programmierung elektronik controller Atmel embedded Atmega8 Atmega168 arduino bascom avr-gcc

zur�ck zu Elektronik-Projekte mit dem AT90S2313, ATMega8 und anderen AVR-Prozessoren Permalink: http://thomaspfeifer.net/ppm2usb_adapter.htm
© 2010 Thomas Pfeifer