jreise.de


© Jörg Reisener letzte Aktualisierung: 21.11.2013 home Kontakt

Summensignal-zu-Servoimpuls-Wandler

ppm2servo Wandler



Aufgabenstellung

Viele Flight-Controls von Multikoptern, aber auch Heli-Stabilisatoren erlauben heute die Ansteuerung über ein Summensignal (PPM-Signal). Inzwischen gibt es auch Empfänger, die ausschliesslich dieses Summensignal ausgeben. Das kann ein Problem sein, denn manchmal will man zusätzlich zur Flight-Control auch noch Servos oder RC-Schalter direkt ansteuern, und dafür braucht man einzelne Servosignalausgänge. Oder man will einen dieser Empfänger im normalen Flugmodell verwenden.

Genau dafür ist dieser Wandler entstanden. Er stellt die im Summensignal gebündelt enthaltenen Kanalinformationen wieder an einzelnen Servoausgängen zur Verfügung. Erstmals wurde dieser Wandler vor einiger Zeit im Mikrokopter-Forum vorgestellt. Da sich in letzter Zeit die Anfragen dazu häufen, gibt es nun hier gebündelt alle für den Nachbau erforderlichen Informationen.



Schaltungsaufbau

Um den Aufbau so einfach wie möglich zu gestalten wurde dafür ein Controller ATTiny2313 ausgewählt. Er  hat genügend interne Ressourcen und I/O-Ports, um das Summensignal einzulesen und 12 Kanalimpulse auszugeben.

Die Schaltung ist sehr einfach aufgebaut und besteht praktisch nur aus dem Tiny2313. Der 100nF Kondensator soll mögliche Störspitzen verhindern. Die Spannungsversorgung des Controllers erfolgt über die Servoleitung vom Empfänger. Der Tiny2313 verträgt maximal 5,5V, mehr darf das BEC oder der Regler also nicht liefern.

Schaltplan

Noch ein wichtiger Hinweis: Zugunsten der Einfachheit der Schaltung wurde auf die bei üblichen RC-Empfängern vorgesehenen Schutzwiderstände in Reihe zu den Servoausgängen verzichtet. Dadurch kann es bei Falschpolung eines Servosteckers zum Durchbrennen des µC-Ausgangs kommen. Wer lieber auf Nummer sicher gehen will, kann hier Reihenwiderstände von etwa 100 Ohm bis 1k einsetzen.

Den Aufbau habe ich auf einer Lochrasterplatine realisiert, man kann sich natürlich auch eine Platine ätzen. Hier ein Vorschlag dazu:

Leiterplatte


Hier noch ein paar Bilder des fertigen Wandlers:

Leiterseite

Bestückungsseite

Software

Die Software für den Tiny2313 ist in Assembler geschrieben. Jeder Impuls des Summensignals wird über Interrupt (fallende Impulsflanke) eingelesen und sofort als Servoimpuls am entsprechenden Ausgangspin ausgegeben. So entstehen nacheinander aus dem seriellen Summensignal wieder die einzelnen Servoimpulse. Es können bis zu 12 Kanäle ausgegeben werden. Sind weniger Kanäle im Summensignal enthalten, werden auch nur diese ausgegeben und die restlichen Kanalausgänge bleiben auf Low-Pegel. Nach der Impulspause (mindestens 2,5ms lang) beginnt der Zyklus von vorn. Es wird ein positives oder negatives Summensignal unterstützt.

Quellcode und Hex-File können hier heruntergeladen werden: ppm2servo12.zip. Die Fusebits bleiben fast wie im Lieferzustand, nur der Haken bei CKDIV8 wird entfernt. Die Hex-Werte der Fuses sind dann lfuse = E4 und hfuse = DF.


Schlußwort

Der Nachbau besteht im Wesentlichen aus dem Programmieren des Controllers und dem Anlöten der Stiftleisten oder Servokabel und sollte einfach machbar sein. Wenn Ihr Fragen oder Probleme dabei habt, könnt Ihr euch gerne bei mir melden. Und wer sich das Programmieren des Controllers gar nicht zutraut, kann sich ebenfalls melden, wir finden schon eine Lösung.

Viel Erfolg!