Kalibration der Fernsteuerung
Durch Setzen eines Jumpers wird ein Kalibrierungsmodus aktiviert. Beim Einschalten des Ufos fordert das Programm durch
Ansteuern der üblichen LEDs zu bestimmten Steuerkommandos auf (z.B. Nicken oder Rollen). Der zugehörige
Fernsteuerungskanal wird automatisch identifiziert. Auch das Vorzeichen und der Maximalausschlag werden gespeichert.
Nach vollständiger Identifizierung aller vier Kanäle werden die erkannten Parameter im EEPROM dauerhaft
gespeichert.
Somit kann jede 4-Kanal-Fernsteuerung, auch mit seltsamer Kanalbelegung, sofort verwendet werden.
Sensorauswertung
Die Gyroskope werden durch die 10-Bit AD-Wandler des AtMega eingelesen. Dies geschieht mit etwa 5000 Hz je Kanal
per Interrupt. Somit liegen je Regelzyklus (siehe unten) mehrere Meßwerte vor, die gemittelt werden. Dies
erhöht zum einen die Bitauflösung der Wandlung und stellt zusätzlich eine weitere Tiefpaßfilterung
dar.
Regelung
Versuche haben gezeigt, daß das Ufo recht agil ist mit
kleinen Zeitkonstanten. Eine Regelfrequenz von 40 Hz ist eindeutig zu klein
(zum Vergleich: MARVIN fliegt auch mit 20 Hz problemlos).
Ab 80 Hz war ein kontrollierter Flug zwar möglich aber noch nicht wirklich gut. Oberhalb von 300 Hz
war keine Verbesserung mehr erkennbar; derzeit läuft der Regler mit 320 Hz.
Die Regelung erfolgt für jede der 3 Achsen separat. Es wurde jeweils ein PI-Regler mit Vorsteuerung implementiert.
PI entspricht etwa dem Heading-Hold oder auch Heading-Lock genannten Modus eines üblichen Hubschrauberkreisels.
Durch den I-Anteil der Regelung wird der eingestellte Winkel auch bei schnellem Flug oder Wind perfekt gehalten.
Auch eine Rolle aus dem Schwebeflug heraus ist möglich und erfolgreich getestet worden.
Programmierung
Die Programmierung der Software erfolgt mit avr-gcc.
Das Laden in das AtMega-Flash erfolgt mit avrdude.
Das gesamte Programm hat eine Größe von etwa 5 kByte. Den meisten Platz nimmt die Rechnung mit 16- und 32-Bit
Zahlen ein, da dies bei dem 8-Bit Mikrocontroller in Software zu geschehen hat.
|