Quadrokopter

Ufo

Das Fluggerät
Die Schaltung
Bauteile
Funk
Eingebettete Software
Fotos

Das Fluggerät

Der Quadrokopter basiert auf dem bekannten und beliebten X-Ufo von Silverlit. Allerdings benutze ich die Originalelektronik und Sensorik nicht mehr. Dafür gibt es mehrere Gründe:

Der originale mechanische Kreisel ist sehr störanfällig. Nach ein paar unsafteren "Landungen" gibt er recht schnell den Geist auf. Durch die eigentlich sehr komfortable Winkelregelung ist die Fluglage des Ufos sehr eingeschränkt (etwa +-20°). Außerdem wird der Winkel bei schnellerem Flug nicht gehalten, da die auftretenden aerodynamischen Kräfte mangels I-Anteil in der Regelung nicht kompensiert werden. Sehr unschön sind auch die sporadisch auftretenden "Flips", bei denen die Regelung aus unerfindlichen Gründen auf einmal einen unkontrollierten Looping einzuleiten scheint, den der mechanische Kreisel natürlich nicht mitmachen kann, so daß ein Absturz die Folge ist.

Eine selbst entwickelte Platine ersetzt die alte Elektronik vollständig. Damit kann die Regelungssoftware uneingeschränkt selbst angepaßt werden. Der mechanische Kreisel wurde durch MEMS Gyroskope ersetzt. Mit Sensoren für alle drei Achsen wird eine 3-Achs Heading-Hold Stabilisierung möglich. So steuert sich das Ufo ähnlich wie ein Hubschrauber.

Hinweis:
Da es über diese Seite einen kleinen Ansturm auf meine Mailbox gegeben hat, möchte ich auf die am häufigsten gestellten Fragen gleich hier eingehen:
Ich stelle auf dieser Seite bewußt nur die grobe Funktion vor, jedoch ohne genaue Baupläne. Die Platine gibt es nicht zu kaufen und ich plane auch keine Produktion in der Zukunft. Es handelt sich nur um ein Hobby. Auch eine Veröffentlichung von Quelltexten oder genauen Schaltplänen ist nicht geplant.

.
Die Schaltung
Das Herz der Schaltung ist der Mikrocontroller (CPU). Er liest die Sensordaten der drei Gyroskope ein und erhält außerdem die Steuersignale vom Funkempfänger. Mit Hilfe dieser Informationen werden die Pulsweiten für die Motoransteuerung berechnet und an die vier Steuer-Mosfets der Motoren ausgegeben. Schaltun

Sensoren
Die analogen Sensorsignale werden über einen Operationsverstärker an den Eingang des Mikrocontrollers angepaßt. Dabei wird der Nullpunkt durch eine geeignete Referenzspannung definiert, die Verstärkung gesetzt und schließlich ein Tiefpaß realisiert.

Empfänger
Die PPM-Signale werden durch einen Schmitt-Trigger aufbereitet, bevor sie zum Mikrocontroller gelangen. (Details siehe unten: Funk)

Motoren
Die Motoren sind die originalen vom X-Ufo, so daß auch die Freilaufdioden schon vorhanden sind. Wenn man wollte, könnte man natürlich auch bürstenlose Motoren benutzen. Aber das geht gleich nochmal ins Geld wegen der notwendigen Regler. Natürlich kann man auch die selbst basteln, aber irgendwann will man ja mit dem Entwickeln und Basteln auch mal fertig sein, um zu fliegen...

.
Bauteile
CPU: AtMega168 Die Wahl fiel auf diesen 8-Bit Mikrocontroller, da er bei seinem günstigen Preis alle notwendigen Funktionen integriert und leicht zu programmieren ist:
10-Bit Analogeingänge für die Sensoren
PWM Ausgänge für die Motoren
Hardware-Interrupts an jedem Digitaleingang
2-Achs Gyro: IDG300 Dieser Sensor mißt 2 Achsen, so daß allein mit ihm bereits eine ausreichende Flugstabilisierung möglich ist.
1-Achs Gyro: ADXRS300 Soll auch die Hochachse im Flug stabilisiert werden (wie durch den übliche Kreisel bei einem Hubschrauber), ist ein weiterer Sensor für diese Achse notwendig. Der ADXRS hat die nette Eigenschaft, daß der Sensor so im BGA-Gehäse untergebracht ist, daß er direkt die Hochachse mißt, er also nicht hochkant verlötet werden muß.
Eine billigere Variante wurde zudem mittels eines Tokin CD-16D Sensors aus einem ausgeschlachteten ACT "Slim Gyro 3D classic" realisiert.
Mosfet: IRF7341 Die Mosfets müssen schon bei recht niedrigen Spannungen (3-5 V) voll durchschalten, um direkt am Mikrocontroller betrieben werden zu können.
Die Kosten für den Gesamtumbau in der Grundversion setzen sich wie folgt zusammen. Ausstattung wie Lötkolben usw. sind natürlich zusätzlich notwendig. Zusätzlich sind LiPo-Akkus empfehlenswert und ggf. eine Leistungsfähigere Fernsteuerung und ein passender Empfänger für eine bessere Reichweite. Man sieht deutlich, daß die Sensoren den Preis bestimmen:
Original X-Ufo  80 € (Amazon)
IDG300  70 $ (Sparkfun)
ADXRS300EB  50 € (Digikey)
Bauelemente  20 €
Platine  07 - 35 € (Olimex)
.
Funk

Die Schaltung bietet insgesamt 3 Möglichkeiten, die Empfängersignale zum Mikrocontroller zu leiten:

  • Das normale analoge Übertragungsverfahren von Fernsteuerungen heißt PPM. Dabei werden die Steuersignale aller einzelnen Analogkanäle hintereinander durch die Breite/Position eines zugehörigen Pulses repräsentiert. Dieses Signal mit allen Kanalinformationen wird für gewöhnlich vom Modellbauempfänger auf die einzelnen Servos verteilt.
    Bevor diese Verteilung erfolgt, können alle Kanäle mit einer Leitung auf einfache Weise dem Mikrocontroller zur Verfügung gestellt werden, der es mit Hilfe eines Timers und eines Digitaleingangs auswerten kann kann.
    Einen normalen Empfänger muß man allerdings umbauen, indem man das passende Signal findet und abgreift. Dasselbe ist auch mit der original X-Ufo Platine möglich, so daß die durchaus brauchbare Original-Fernsteuerung weiterverwendet werden kann.
  • Soll ein handelsüblicher Modellbauempfänger verwendet werden, so können an die Schlatung auch die normalen Servoausgänge angeschlossen werden. Hierbei sind dann allerdings 4 Leitungen erforderlich, die von 4 Digitaleingängen des Mikrocontrollers ausgewertet werden.
  • Eine weitere sehr praktische Möglichkeit ist der Anschluß eines Empfängers über ein serielles Protokoll. Von ACT gibt es passende Empfänger, die über eine RS-232 kompatible Schnittstelle verfügen. MARVIN verwendet ebenfalls solche Empfänger.

Die Originalfunkanlage des X-Ufos funktioniert zwar einwandfrei, allerdings merkt man bei schnellem Fliegen schnell die eingeschränkte Reichweite. Eine (vergleichsweise teure) "richtige" Fernsteueranlage ist hier deutlich besser.
Interessanterweise genügt der Tausch des Senders, der X-Ufo Empfänger (original 27 MHz) arbeitet auch problemlos mit anderen Quarzen zusammen (getestet mit 35 MHz mit MC-24 von Graupner).

.
Eingebettete Software

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.

.
Fotos
Verschiedene Fotos...

Zu meiner Hauptseite
Letzte Aktualisierung: 04.10.2006
© Carsten Deeg