Quadrocopter (Tutorial 2) MultiWii Pro Mainboard Firmware

So, die Hardware steht – mehr oder weniger. Jetzt geht es ans Eingemachte. ESCs (also die Fahrtregler) muss man wohl programmieren, das heißt die Motoren auf den Gasweg und die entsprechenden Frequenzen einlernen. Noch nie gemacht. Außerdem ist die Fernsteuerung erst seit kurzem da. Erst mal auspacken und bestaunen:Entschieden hatte ich mich hier für die günstige Turnigy 8/9-Kanal Funke namens “9XR”, da bereits diverse Foren haufenweise Quellcodes zeigten und Positives über die Programmierung zu berichten wussten. Soll heißen, mit einem passenden USB-Programmer kann auf die Funke neue Software gespielt werden, die dann natürlich den eigenen Bedürfnissen angepasst ist. Voreingespeicherte Airplane-, Heli, oder Copter-Modelle, entsprechende Mischer und Optionen, saubere Menüführung – mehrsprachig natürlich, etc. etc… Denn eines wird einem schnell bewusst, wenn man sich nach Fernbedienungen im Modellbaubereich umsieht: Die Hardware ist bei allen ähnlich, da ist nix teures drin. Ein paar Potis, billige Druckschalter und auch bei deutschen Modellen irgendein “China-Board”. Sobald aber die Software mit netten Features strotzt, wird man schnell einige hundert Euro los. Das ist mit ein bisschen Fachwissen über Programmierung Quatsch. Also: Passende Hardware kaufen und dann mit selbst zusammengestellter Software was Vernünftiges draus machen. Dazu zuverlässige und moderne 2.4GHz digital-Sender- und Empfänger, Telemetriedaten mit dabei, hört sich gut an. Hier fiel die Wahl auf das FrSky DJT 2.4Ghz Combo Pack for JR w/ Telemetry Module & V8FR-II RX. Dank Digitaltechnologie und PPM-Summensignal, sind der Fantasie für Kanalbelegung, Mischerei und Features eigentlich kaum Grenzen gesetzt. Gut, aber nun zur Umsetzung…

Was die Software anbelangt um das MultiWii Pro Mainboard zu bearbeiten, war doch noch mal einiges an Recherche nötig. Dem Board muss klar gemacht werden, in welcher Konfiguration überhaupt geflogen wird. Meine Wahl ist ein X-Copter, das heißt die “Nase” des Kleinen liegt zwischen zwei Propellern. Dadurch ergibt sich auch die PIN-Belegung auf dem Board, in welcher Reihenfolge müssen die ESCs angesteckt werden und welche Kanäle sind dadurch schon mal belegt. Was verkraften die Motoren als “Leerlaufdrehzahl” (damit sie beim “Armen” überhaupt anspringen) und wie hoch kann maximal getaktet werden. Welcher der Motoren ist links- welcher ist rechtsdrehend? Alles Dinge, die im Quellcode erfasst und konfiguriert werden müssen. Dann hab ich ja noch ein GPS-Modul, welches an einem seriellen Port der Platine hängt. Auf dem Board steht hier: “GND, RX, TX, 5V”. Also Masse, Senden, Empfangen und Spannungsanschluss. Der Laie – wie ich – geht hin und verbindet also die vier Stecker parallel mit dem GPS, auf dem die gleichen Bezeichnungen stehen. Tja, aber dann haste halt nix GPS, denn logischerweise ist der RX-Kanal auf dem Board der TX-Kanal des GPS-Moduls und umgekehrt, denn wenn das Board einen Befehl SENDET (TX = Transmitt), muss das GPS-Modul den Befehl ja auch EMPFANGEN (RX = Receive). Hier werden die Kabel also gekreuzt.

Dann heißt es in der Beschreibung der Board-Software, das hier die Version 2 ausgeliefert wird. Tools zum Bearbeiten der Software gibt es aber schon mal mindestens zwei, nämlich Arduino 1.05 und MultiWiiWinGui 2.x auf unterschiedlichen Webseiten. Wichtig: Die Version der MultiWiiWinGui muss zur Version auf Eurem Board passen, arbeitet man also mit V2.1, kann auch hier nur die Version 2.1 der MultiWinGui den EEPROM des Boards passend beschreiben. In meinem Fall war es die Version 2.2 auf dem Board, somit arbeite ich im Moment auch mit der MultiWinGui 2.2 unter Windows. Was die Entwicklungsumgebung Arduino anbelangt, so ist hier natürlich der Quellcode entscheidend, der nach dem Start eingelesen wird. Beispiel: MultiWii PRO Flight Controller mit Software-Version 2.2 benötigt den passenden Quellcode MultiWii_2_2. Aber bevor das Ganze hier zu Theoretisch wird, ein paar Screenshots und kurze Beschreibung:

 

Die MultiWiiGui unter Windows bietet eine sehr nette Übersicht über die erfassten und noch zu konfigurierenden Optionen der vorhandenen Software. Nach dem Auswählen des passenden COM-Ports, an dem Euer Board unter Windows registriert ist, zeigt die Oberfläche live alle aktuelle Daten des Mainboards an. GPS-Signalstärke, Neigung, Beschleunigung, Winkel, (theoretische) Auslastung der Motoren, Kompass und vieles mehr. Unter den “RC Control Settings, können hier die in der Funke eingestellten Kanäle für verschiedenen Features belegt werden. Zum Beispiel RTH (Return to Home), BARO (Höhe halten), HEADFREE (relative Ausrichtung der Flugbewegungen zum Startpunkt), GPS-HOLD (Position durch GPS-Signal automatisch halten) und vieles mehr…

Zuvor aber habe ich die aktuellste Version der “Flug-Software” über die Arduino eingespielt:

 

… und das GPS angebunden:

Hier waren wieder die Google-Suche und verschiedene Foren sehr hilfreich.

 

Ok, die Theorie sieht gut aus. Anscheinend müssen die Sensoren des Mainboards aber noch kalibriert werden. Der Kompass muss wissen wo er seine Nase hat, und die drei Achsen der Gyros sollten ebenfalls einmal eine Runde “um sich selbst” gedreht haben, bevor die Platine den Copter vernünftig in der Schwebe halten kann. Dank der Buttons in der MultiWiiGui geht das ganze recht zügig und “der Gerät” sollte so langsam fliegen können. Also ab an den Flugplatz zur Kalibrierung und den ersten Start wagen. Copter, Akkus und Notebook eingepackt und während eines entspannten Sonnenuntergangs die ganze Geschichte erst mal vernünftig kalibriert…Im Quellcode befindet sich übrigens noch ein Zusatz zur GPS-Kalibrierung: Und zwar – die Flieger unter uns werden es wissen – die Deklination muss eingestellt werden.Auf dem Screenshot wahrscheinlich schlecht zu sehen, aber im Quellcode befindet sich die Deklinationsangabe, die man über eine Website ( http://magnetic-declination.com) erfragen und über die Formel “GRAD * BOGENMAß / 60” eintragen kann. Laut diverser Foren ist das wohl ratsam, da der Copter sonst nach der Aktivierung von RTH bei falschen Einstellungen in Windeseile in unbekannte Richtung Gas gibt und sich einen fiktiven Home-Punkt zur Landung sucht.

Gut, die Flasche Wein ist leer, der Kopf auch, also Schluss für heute, die ersten Ergebnisse gibt es in Part drei des Copter-Tutorials. Vorneweg: Die Flugeigenschaften des MultiWii-Boards sind besser als gedacht, der entscheidende Faktor steht immer hinter dem Sender… 😉

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.