Sie sind auf Seite 1von 18

HK 450 mit LibrePilot/CC3D

Anfang 2015 war ich auf der Suche nach einem preiswerten FBL (flybarless) System. Dabei fiel mein
Blick auf das Open-Pilot Projekt, wo ein Opensource Flightcontroller vorgestellt wurde. Dieser ist in
der Lage ein ganzes Spektrum von Modellen (Flugzeug, Drohnen, Helikopter, Autos, …) zu steuern.
Das Ganze las sich sehr interessant, also versucht, Hardware dort zu ordern. Leider war im Webshop
nichts verfügbar, aber bei Ebay oder Amazon sind diverse Clones zu finden. Bestellt wurde ein CC3D-
Atom Flightcontroller, dieser ist etwas kleiner als das normale CC3D Board. Bezüglich der Software
gibt es jedoch keinen Unterschied. Zur Inbetriebnahme wurde die entsprechende Software (GCS –
Ground Control Station) heruntergeladen und installiert. Dokumentation zu der Software gibt es im
Wiki, diese beschreibt ausführlich die Funktionen der Software. Erste Flugversuche mit der
Flightcontroller wurden unternommen, jedoch stellte sich nicht so richtig der Erfolg ein. Gut Ding will
Weile haben, also das Projekt erstmal zur Seite gelegt.

Anfang November 2015 wieder die Arbeit aufgenommen, jedoch hatte in der Zwischenzeit das
Openpilot-Wiki geschlossen. Eine kurze Internet Recherche ergab, dass offene Rechnungen den
Betrieb des Wikis unmöglich machen, ein sehr bedauerlicher Umstand, da dieses Projekt grosses
Potential besitzt. Jedoch hat sich ein Projektabspaltung ergeben, diese ist unter neuen Namen als
Libre-Pilot im Netz zu finden. Die Quellen zur Software sind bei github hinterlegt, installierbare
Pakete sind hier zu finden. Das Installieren der Pakete ist der normale Weg die Software zu nutzen,
mich reizte jedoch die Option LibrePilot „from scratch“ auszuprobieren und die Entwicklung der
Software zu verfolgen.

Viele Informatione zum Einstellen des Hubschraubers waren im Open-Pilot Forum hier zu finden,
good job Jerry!

Will man jedoch die Software selber bauen, dann braucht man ein entsprechendes
Entwicklungssystem. Seit Februar 2016 wird dazu nicht mehr GIT sondern MSYS2 als Tool benutzt.
Die Installations- und Buildanleitung für die Software sind hier dokumentiert.

Eins sollte man jedoch beachten. GCS und der Flightcontroller arbeiten nur dann optimal zusammen,
wenn die Version von GCS und der Flightcontroller Firmware identisch sind. Das bedeutet, das jedes
neue Build der Software eine Aktualisierung der Firmware auf dem Flightcontroller bedingt. Und je
nachdem, ob neue Parameter in die Software einfliessen oder ältere entfernt werden, ist immer ein
kritischer Blick auf die CC3D-Konfiguration erforderlich.

Fernsteuerung – Helicopter – Montage des Flightcontrollers

Ein HK 450 gebaut aus einer wilden Sammlung von Ersatzteilen mit flybarless Head wurde auserkoren
mit dem Flightcontroller zu fliegen. Gesteuert wird der Helikopter mit einer MC-22 (seit kurzen mit
einer Taranis X9E) der ein FrSky Modul Sendemodul eingebaut wurde. Ich fliege kein 3D (es sieht nur
manchmal so aus, aber danach ist der Heli gewöhnlich mehr oder weniger verbogen), deswegen sind
recht preiswerte Komponenten im Heli verbaut, die allesamt aus Fernost stammen:

 FrSky V8FR-II 2.4Ghz 8CH Receiver

 Turnigy Plush 40A ESC mit BLHELI Firmware

 HK15178B Servos für die Taumelscheibe (billig aber gut)

 Turnigy TGY-S306G Servo für das Heck (sehr stellgenau)

 Helix B30 Shooter brushless Motor


Die Fernsteuerung muss mindestens 6 Kanäle aufweisen. Man kann ein Heli Programm aktivieren,
dann aber nur ein Taumelscheibenservo einstellen, muss dieses aber nicht zwingend tun, da
sämtliche Intelligenz nicht mehr beim Sender, sondern beim Flightcontroller liegt. Normalerweise
mischt der Sender bereits die Ausgangssignale für die Taumelscheibenservos zusammen, z.B. wenn
Collective vergrößert wird, dann fahren beim Helikopter alle Servos der Taumelscheibe nach oben,
beim Rollen bewegen sich die seitlichen Taumelscheibenservos. All diese Rechnerei wird vom
Helikopterprogramm der Fernsteuerung gemacht, aber hier ist das die Aufgabe des Flightcontrollers.
Hierzu die Dokumentation des eigenen Senders konsultieren. Alle Mixer/Trims/Servo
Wege/Expo/Dual Rate/Servo Reverse auf null stellen, beziehungsweise deaktivieren. Throttle liegt bei
mir auf einem 3-Stufen Schalter (0%-50%-70%), für den Flightmode kommt ein weiterer 3-
Stufenschalter zum Einsatz. Den Flightcontroller bringt man vibrationshemmend (2mm Depron oder
ähnliches und doppelseitigem Klebeband) am Helikopter an. Diese Verbindung sollte stabil sein, ein
sich im Flug lösender Flightcontroller wird unweigerlich zum Absturz führen, da sich seine
Lageinformation von der des Helikopters unterscheidet.

Kanalbelegung am Empfänger:

KANAL
FERNSTEUERUNG VERWENDUNGEINGANG FLIGHTCONTROLLER
1 Collective 1

2 Roll 2

3 Nick 3

4 Heck 4

5 Flight Mode 5

6 Throttle 6

7 nicht belegt –

8 Throttle –
Throttle ist über einen Mischer doppelt vorhanden, damit ich die Option habe, den ESC ohne den
Flightcontroller zu betreiben. Dieses aber nur zu Testzwecken, der ESC wird im Normalbetrieb über
den Flightcontroller angesteuert.
Verkabelung Empfänger
Verkabelung Flightcontroller

LibrePilot / Firmware

Nach der Verkabelung verbindet man den Flightcontroller per USB Kabel mit dem Computer und
öffnet man die LibrePilot GCS (ground control station) Software. Den Flugakku sollte man aus
Sicherheitsgründen noch nicht anstecken. Weiterhin sollte man auch die Rotorblätter entfernen um
Verletzungen durch einen unbeabsichtigt anlaufenden Motor zu vermeiden. Da sich der
Flightcontroller höchstwahrscheinlich noch im Auslieferungszustand befindet oder bislang mit einer
anderen Firmware betrieben wurde, wird GCS auf diesen Umstand hinweisen.
Warnung bei falschen Firmwarestand auf dem Flightcontroller

Über den Tab unten rechts kommt man zum Firmware Menü der GCS Software und kann mit
„Upgrade und Erase“ die neue Software übertragen. Dieses dauert nur ein paar Sekunden und nach
wenigen Augenblicken meldet sich der Flightcontroller mit der aktuellen Software zurück.

Firmware Tab der GCS Software mit Flugdatendisplay

Der Flightcontroller übermittelt der GCS-Software schon einige Informationen wie Firmwareversion,
Betriebszeit und Lageinformation. Hier erkennt man die Schieflage des künstlichen Horizonts, diesen
kommt von der seitlichen Einbaulage des Flightcontrollers. Nach dem Update der Firmware kann die
Konfiguration des Helikopters beginnen, ab hier bewegen wir uns im Tab „Configuration“ welchen im
Hauptmenü unten ausgewählt werden kann.
LibrePilot/Hardware

Hardware Konfiguration

Hier können generelle Einstellungen zum Flightkontroller wie verbundene Telemetrie/GPS


Module/Empfänger Signaltyp eingestellt werden. Ich habe hier einen normalen Empfänger, der PWM
Signale ausgibt und kein Oneshot Modul, deswegen wurde dieses oben konfiguriert. An den anderen
Buchsen ist nichts angeschlossen deswegen wurden diese deaktiviert. USB-Telemetry-HID lässt sich
nicht deaktivieren, da diese Buchse für die Konfiguration benötigt wird. Gesetzte Werte werden dann
per „Save“ auf den Flightcontroller übertragen.

Librepilot/Vehicle/Basic

Nun geht es an die Konfiguration des Helikopters. Die Servos werden nachfolgendem Schema mit
dem Flightcontroller verkabelt:

 hinteres Servo an Kanal 1

 linkes Servo (von oben gesehen) an Kanal 2

 rechtes Servo (von oben gesehen) an Kanal 3

 Heckservo an Kanal 4

 ESC an Kanal 5

Der HK 450 besitzt eine 120° Taumelscheibe, das erste Servo ist per Definition das hintere. Die
Option Link Cyclic/Collective ist zu aktivieren.
Konfiguration der Grundeinstellungen des Helikopters, Typ der Taumelscheibe und Ausgabekanäle

Librepilot/Input/RC-Input

Hier erfolgt die Konfiguration/Kalibrierung des Senders. Damit dieses funktioniert muss dieser
natürlich mit einer Spannung versorgt werden, dieses sollte man jedoch aus Sicherheitsgründen nicht
über den ESC machen (oder vorsichtshalber den Motor ausstecken), bei mir kam ein einzelner
Empfängerakku zu Einsatz. Vor der Kalibrierung des Senders die Servogestänge von der Servos
abklipsen, oder die Servohörner lösen damit es nicht zu ungewollten Kollisionen kommt Die
Kalibration kann man entweder über den Transmitter Wizard machen, oder manuell. Ich bevorzuge
die manuelle Konfiguration, für jeden Kanal des Senders legt man Minimalwert/Maximalwert/Mitte
fest. Zuerst wird für jeden Kanal der entsprechende Eingabekanal des Flightcontrollers gesetzt und
die Kodierung des Sendersignals festgelegt (bei mir PMW-Pulsweitenmodulation). Dann bewegt man
für jeden Kanal den Geber zu den Endpositionen und legt Minimum- und Maximumwerte über die
Eingabefelder fest. Richtig kalibriert bedeutet, bei den Extremwerten der Geber erreicht der Balken
genau die Endpositionen. Nachdem Minimum und Maximum sauber gesetzt ist, erfolgt noch das
Setzen der Mittelposition des jeweiligen Kanals. Diese stimmt, wenn der Slider genau bei
Neutralstellung des Gebers über der roten Mittenmarkierung ist. Für den Collective- und den
Throttle-Kanal gibt es eine Ausnahme, dort ist die Mitte gleich neben das Minimum zu setzen.
Unterlässt man dieses beim Collective-Kanal, dann hüpft die Taumelscheibe ungleichmässig, wenn
man es beim Throttle-Kanal vergisst, hat man nur 50% Servoweg um den ESC anzusteuern.
RC-Input

Librepilot/Input/Flightmode Settings

An dieser Stelle definiert man die Anzahl der Flugmodi des Flightcontrollers. Neben manuell sind
noch weitere Modi verfügbar, diese werden dann über den Flightmode-Kanal von der Fernsteuerung
geschaltet. Auf Nick und Roll habe ich nach viel Testerei Attitude/Rattitude/Rate liegen. Das Heck
wird mit Axis-Lock angesteuert, da steht das Heck wie angenagelt. Manuell lässt sich gut zum
Einstellen des Heckservos nutzen, dazu weiter unten mehr.

Flightmode Settings

Librepilot/Input/Arming Settings
Die Arming-Settings stellen einen Mechanismus zum Schutz vor unbeabsichtigten Anlaufen des
Motors da. Um den Motor scharf zu schalten ist eine bestimmtes „Knüppelmanöver“ notwendig,
Heck nach rechts ist hier der Standardwert. Erst wenn der Flightcontroller dieses „Knüppelmanöver“
erkennt, wird das Signal zum ESC durchgestellt. Um das Scharfschalten rückgängig zu machen, stellt
man Throttle auf null und gibt den entgegengesetzten Knüppelausschlag (Bei mir dann Heck nach
links).

Arming Settings

Librepilot/Vehicle/Swashplate Leveling

Einstellung der Taumelscheibe. Dazu geht man zuerst in die Output Konfiguration und stellt sich
geeignete Startwerte ein. Ein PWM-Servo akzeptiert Werte von 1ms-2ms, 1.5ms stellen den
Neutralpunkt dar. Die Werte werden bei LibrePilot in μs eingegeben, damit bewegen wir uns in einen
Bereich von 1000-2000. Um sicher anzufangen setzt man die Werte im Output Tab für die 3 Servos
der Taumelscheibe von 1200-1800, die Mitte bei 1500. Die Servos sind zentriert worden und die
Ruderhörner so waagerecht wie möglich (das klappt nicht einhundertprozentig, da die Rastpunkte
selten genau die Mitte treffen) montiert. Damit der Motor nicht versehentlich anläuft sollte man
diesen vom ESC lösen.
Startwerte für die Einstellung der Taumelscheibe

Dann ins Menü Vehicle/Swashplate. Hier gibt es einen Wizard, der die Einstellung vornimmt. Nun
wird der Akku angesteckt, damit die Servos bewegt werden können.

Swashplate Wizard Start

Dieser beginnt bei der Neutralstellung, die aktuellen Werte tauchen an den Servos auf. Nun klickt
man sich mit „Next“ durch den Wizard und beobachtet die Taumelscheibe.
Taumelscheibe Neutralstellung

Hier sollte die Taumelscheibe einigermaßen geradestehen. Genaue Werte sind noch nicht wichtig, da
zuerst die Laufrichtung der Servos überprüft werden muss.

Taumelscheibe oben

Hier fällt eine falsche Laufrichtung der Servos auf, die Servohörner sollten alle hier nach oben fahren.
Läuft eins oder mehrere nach unten, bricht man den Wizard ab, geht ins Output Menu und kehrt dort
die Laufrichtung des Servos um und startet den Wizard neu.
Taumelscheibe unten

Hier sollten die Taumelscheibe unten stehen.

Überprüfen des Wegs der Taumelscheibe

Hier kann man mit dem Regler die Taumelscheibe nach oben und unten bewegen und die
Laufrichtung der Servos kontrollieren.

Nachdem die Laufrichtung der Taumelscheibe stimmt, die Länge der Anlenkungen nochmal
kontrolliert hat, startet man erneut den Wizard und stellt die richtigen Werte für neutral, minimal
und maximal mit den Checkboxen neben den Servos ein. Hier sollte man wirklich nur die Checkboxen
benutzen um die Positionen einzustellen, wenn man eine Zahl direkt und diese weit ausserhalb des
Bereiches liegt in dem sich das Servo sicher bewegt, dann kann es dieses unter Umständen
beschädigen. Meine Taumelscheibe bewegt sich im Bereich von -20º bis +20°, in Neutralstellung sind
bei mir +2° eingestellt. Jetzt fragt sich natürlich jeder, warum diese extremen Ausschläge? Ich flieg
doch nur im Bereich von -10º bis +10º? Der Grund liegt im Mischer, der Collective (das Heben und
Senken) und Cyclic (die Steuerbewegungen) zusammenmischt. Beide Werte gehen mit je 50% in den
Servosausschlag ein und ergeben dann dann einen fliegbaren Bereich von -10º bis +10º bei
Collective, zuzüglich den Cyclic Steuerbewegungen.

Ausgabewerte Taumelscheibe und ESC

Nach dieser Prozedur sollte sich die Taumelscheibe gleichmäßig und waagerecht bewegen.

Nun ist nur noch ein kleiner Schritt notwendig. Dazu geht man in den Hauptmenüpunkt „System“ und
ändert in der Mixereinstellung den Parameter „Curve2Source“ von Throttle in Collective. Das
Speichern nicht vergessen.
Zuweisen des Collective Signals zur Taumelscheibe

Dieser Schritt ist wichtig, da sich sonst die Taumelscheibe nicht bewegt.

Librepilot/Attitude

Hier wird die Lage des Flightcontrollers am Helikopter definiert. Normalerweise montiert man den
Flightcontroller oben auf der Heckrohraufnahme, mit dem Pfeil auf dem Gehäuse nach vorne und so
dass er von oben sichtbar ist. Bei mir klebt er jedoch an der Seite da das Kabel vom ESC zu kurz war.

Attitude – Ausrichtung des Flightcontrollers

Hier kann man die Neigung des Flightcontrollers relativ zum Helikopter definieren. Bei mir ist er um -
90° um die Längstachse des Helikopters ge“roll“t. Es sind Winkel im Bereich von -180° bis 180° für
jede Achse einstellbar. Hier muss man ewas mit dem Vorzeichen des Winkels experimentieren. Wenn
man die Werte eingegeben hat stellt den Helikopter auf eine waagerechte Fläche und klickt den
„Level“ Button. Damit wird der Flightcontroller auf die Nulllage kalibriert. Kontrolliert werden die
Neigungswinkel dann im Hauptmenüpunkt „Flight data“. Oben im Menü „Windows“ gibt es einen
Menüeintrag „Edit Gadget mode“, dort wählt man sich das Gadget „Modelview“ und dort als Modell
den Trex-450. Als zweites Gadget lass ich immer noch „System health“ mitlaufen, hier sehe ich ob mit
dem Flightcontroller alles stimmt. Abhängig von der Baugüte des Helikopters (Vibrationen) kann man
den Wert von „Gyro Noise Filtering“ anpassen. 0.1 ist ein guter Startwert.
Modellview und Flightdata mit Warnung

Man sieht hier von hinten auf den Helikopter. Nun diesen um alle Achsen bewegen, der virtuelle
Helikopter muss die gleichen Bewegungen zeigen. Tut er das nicht, dann die Winkel korrigieren und
neu kalibrieren. Die Warnung bei Input wird durch den nicht angesteckten Flugakku verursacht, da
der Empfänger keine Eingangsdaten für den Flightcontroller liefert. Nachdem dieser unter den
nötigen Sicherheitsmassnahmen angesteckt wurde (Sender eingeschaltet, Throttle auf null) sollte
diese Warnung verschwinden.

Flightdata alles grün

Nun kann man das Heckservo einstellen. Auch hier wird der Servohebel in Neutralstellung des Servos
so gut wie es geht senkrecht montiert. Dann stellt man die Mitte bei Neutralstellung des Knüppels im
RC-Output Menu ein, die Endwerte setzt man so, dass es zu keiner mechanischen Kollision kommt.
Im Flightmodus Menu (siehe oben) stellt man das Heckservo in den manuellen Regelmodus. Zur
Einstellung des Hecks benutze ich einen Servier-Drehteller, den ich meiner Frau aus der Küche
entführe. Hat man viele Helikopter und/oder eine Frau die dem Modellbau abgeneigt ist empfiehlt
sich die Anschaffung eines eigenen Drehtellers oder alternativ einer neuen Frau. Der Helikopter wird
auf dem Drehteller zentriert befestigt, die Blätter waagerecht gestellt um keinen Auftrieb zu
erzeugen und die Drehzahl vorsichtig erhöht. Bemerkt man, dass der Helikopter anfängt zu drehen
verschiebt man das Heckservo auf dem Heckrohr so lange bis der Helikopter ruhig steht oder kaum
dreht. Dieses führt man bis zum Erreichen der normalen Kopfdrehzahl durch.

Dieses Verfahren nur im Freien mit Sicherheitsabstand und entsprechenden Schutzmassnahmen


durchführen!

Heckjustierung mit Servier-Drehteller

Danach stellt man das Heckservos wieder in den Stabilisierungsmodus (Rate) und bewegt das Heck
durch Knüppelauschläge. Stabilisiert es sich bei Neutralstellung des Knüppels dabei nicht, sondern
dreht sehr schnell in eine Richtung weg, dann stimmt die Wirkrichtung des Stabilisierungssystems
nicht. Dieses korrigiert man durch Umkehren der Wirkrichtung für das Heckservo im RC-Input UND
RC-Output. Nachdem das Servo an die Endposition geschoben wurde müssen nochmal die Endwerte
des Heckservos korrigiert werden.

LibrePilot/Stabilization

Es ist fast geschafft. Hier kann man die Parameter der Stabilisierung einstellen, ich habe es bei den
Standardwerten gelassen und bekam einen ruhig schwebenden Helikopter.
Folgende Stabilisierungsmodi sind verfügbar:

 Manual – Hier wird nichts stabilisiert, alle Lageänderungen sind durch den Piloten
auszuführen.

 Attitude – Man gibt den Winkel vor, um welchen sich das Fluggerät neigt. Maximalwinkel
können nicht überschritten werden.

 Rate – Für Lageänderungen wird die Geschwindigkeit der Lageänderung in Grad/s


vorgegeben. Hier kann man das Fluggerät in jede Lage bringen, also für Kunstflug geeignet

 Rattitude – Eine Mischung aus Attitude, bei kleinen Stickausschlägen befindet sich das
Fluggerät im Attitude Modus. Beim Überschreiten eines vorgegeben Wertes des
Knüppelausschlags wechselt das Fluggerät in den Rate Modus

 Weak Leveling – Wie Rate, das Fluggerät versucht jedoch langsam immer wieder in Nullage
zu leveln.

 Virtual Bar – Soll bei einem flybarless Helikopter einen virtuellen Flybar simulieren.

Vor dem ersten Abheben sollte man prüfen, ob die Lageregelung korrekt arbeitet. Dazu den
Helikopter leicht in verschiedene Richtungen neigen, die Taumelscheibe sollte waagerecht
dabeibleiben. Wenn das stimmt, steht dem Erstflug mit Trainingsgestell nichts mehr im Weg.

LibrePilot/TxPID

Nun ist hoffentlich der erste Testflug ohne größere Probleme erfolgt, aber noch immer kann man die
Stabilisierungsparameter optimieren. Dieses lässt sich zeitaufwendig über das manuelle Ändern der
Werte erledigen, aber mit dem TxPID Modul lässt sich hier der Zeitaufwand reduzieren. Was
bedeutet das Kürzel TxPID?

 Tx – Transmitter

 P – Proportional (je höher der Wert umso stabiler die Fluglage, zu hohe Werte lassen den
Heli schwingen)
 I – Integral (dieser Wert gibt an, wie gut die vorgegebene Fluglage gehalten wird, als
Startwert kann der doppelte P-Wert genommen werden)

 D – Derivate (spezifiziert, wie knackig der Heli auf die vorgegebene Fluglage einrastet, zu
hohe Werte lassen diesen schwingen)

Also kurz gesagt, hier hat man die Option während des Flugs Parameter zu ändern. Dazu braucht man
einen weiteren Proportionalkanal am Sender (Dreh- oder Schiebegeber). Hat man einen Empfänger,
der ein Summensignal ausgibt, dann ist das ziemlich problemlos, da genug Kanäle vorhanden sind.
Wenn man aber mit PWM Signalen arbeitet, dann hat man das Problem, keinen freien Kanal mehr zu
haben, da das CC3D Board nur 6 PWM Eingabekanäle hat, aber diese bereits voll belegt sind
(Collective, Roll, Nick, Yaw, Flightmode und Throttle). Aber da man die Parameter für immer nur
einen Stabilisierungsmodus erfliegt kann man einfach den Flightmode-Kanal opfern und den
Stabilisierungsmodus dann fest einstellen. Dem freigelenkten Kanal belegt man dann mit der
Funktion „Accessory0“ und gibt für die zu erfliegenden Parameter einen entsprechenden
Wertebereich (Minimum, Maximum) vor.

Das könnte Ihnen auch gefallen