Micro-Controller: Software Ausrüstung Hardware Holzwege
zum Index nolink home nolink nolink

Projekt: (RC-)Servo-Mischer mit 3 Ein- und 3 Ausgängen, frei programmierbaren Misch-Funktionen und mindestens 10 Bit Auflösung
Prinzipieller Aufbau: PWM-Decoder (frei programmierbare) "Mischer" PWM-Encoder


Es ist immer wieder das Gleiche ..
Für mein Jet-Boot benötige ich jetzt z.B. folgende Fernsteuer-Logik:
(K1 = Gas-Knüppel, S1 = Motor-Regler, K2 = Lenk-Knüppel, S2 = Lenk-Servo, S3 = Servo für Schubumkehr-Klappen)

  • Wenn K1 > 0 Dann S1 = K1; S2 = K2; S3 = Normallstellung
  • Wenn K1 < 0 Dann S1 = abs(K1) div 4; S2 = K2 div 2; S3 = Schubumkehr

Nach mehreren Stunden Herumprogrammiererei auf meinem Fernsteuer-Sender (MX-16) wurde mir das zu blöd.

  • Die Funktionen, die man wirklich haben will gibt es nicht.
  • Die Modellierung der gewünschten Funktionen mit vorhandenen (vorprogrammierten) Funktionen geht nur teilweise und grenzt an Murks.

Jetzt kommt die "Intelligenz" ins Modell - hier ist mal der erste Ansatz für einen frei programmierbaren "Mischer"
Da das Ganze möglichst klein und trotzdem (ohne Spezial-Equipment) lötbar bleiben sollte, verwende ich den ATtiny24/44/84 (DIL/PDIP-14).
Das unten gezeigte Progrämmchen passt gerade so in die 2kB-Version (ATtiny24)

Die Timings habe ich (Quartz-genau) auf 1.0ms - 1.5ms - 2.0ms festgelegt.
Auto-Neutral-Scan ist eine nette Funktion, aber leider wird damit die Trimmung auf dem Sender unsinnig.

Die Programmierung ist ganz klassisch als "endlicher Automat" mit ein paar Zuständen.
Da alle RC-Empfänger sequentiell arbeiten, sollte das auch nirgends klemmen (es sei denn der AVR "verschluckt" sich mit den Interrupts).


Version 1 - mit integrierten Servo-Treibern:


Irgendwie sind mir die Servo-Treiber von E-Lab zu "undurchsichtig" - daher mache ich die lieber selbst.
Dazu bedarf es aber nochmal einer ganz genauen Betrachtung des Timings und der Zählerstände.

Das Ganze läuft synchron zum Eingang #0 - damit funktioniert das auch mit den neuen "Super-Fernsteuerungen" mit doppelter Rate.
Welche (logischen) Slots die Eingänge #1 und #2 belegen ist der Software egal - hier sind einfach aufeinanderfolgende gezeichnet.


Version 2 - mit Servotreibern, die genau das tun was ich will:


To Do:

  • Testen - testen - testen
  • Sleep-Mode mit Korrektur der "vergessenen Takte" beim Aufwachen.
    Hier muß ich mich aber zuerst belesen, ob das "Schlafenlegen" für 200-250 Takte überhaupt Sinn macht.
  • Bei Gelegenheit könnten noch ein paar Schaltkanäle für Zusatzfunktionen (z.B. Licht) eingebaut werden.