Moin, Moin!
Da das Wetter mich die letzten Tage vom Testen abgehalten hat (Regen&Wind), kommt hier eine Version die nur bei starkem, böigem Wind getestet ist. Ich habe zumindest gemerkt, dass er sich gegen den Wind durchsetzen wollte. Ob und wie es bei wenig Wind funktioniert, kann ich noch nicht sagen. Da der Code aber zu funktionieren scheint, wollte ich ihn Euch nicht vorenthalten. Die Basis ist die aktuelle MultiWii_dev_20120606. Die config.h ist nicht verändert. Die neue Dev macht bei mir zur Begrüssung immer einen einzigen I2C Fehler, ich denke, dass ist eine Fehlanzeige. Der Barocode wird jetzt bei jedem Durchlauf ausgeführt, wenn ihr mehr als GYRO/ACC & BARO habt, achtet auf die Cycletime. Ab wieviel ms ein Copter nicht mehr anständig regelt und fliegt, kann ich leider nicht sagen. Mein Tri ist mit WMP und nunchuk auf 6 bis fast 7ms gekommen und war sehr gut zu fliegen. Dieser Code braucht mit WMP&BMA020&BMP085 ca. 4ms.
Änderungen:
1.: Der Code bezieht jetzt den ACC mit ein und bekämpft schnelle, starke Höhenänderungen. Dieses funktioniert nur im LEVEL Mode.
2.: Die Barokurve ist jetzt nur noch eine Linie, da EstAlt nicht mehr in cm, sondern in 1/30 cm (BMP Sensorauflösung) bestimmt wird. EstAlt wird momentan noch nicht von GPS etc verwendet, so dass ich diese Zukunfts - Inkompatibilität zunächst belassen habe.
3.: Der Code zum Auslesen der Barosensoren wurde für den BMP, und analog dazu auch für den MS geändert. Diese Version ist nur auf dem BMP085 getestet. Die Höhenauflösung ist daher für beide Sensoren zunächst auf 30cm festgesetzt. Sollte es mit dem MS Probleme geben, kann ich den alten MS Code wieder herstellen.
4.: Die, in der GUI verstellbaren, ALT "P I D" haben jetzt ganz andere Bedeutungen!
Grundsätzlich: Die in der Gui sichtbaren "Kommawerte" sind in der internen Weiterverarbeitung immer ganzzahlige Werte. Z.B I=0,100 ist tatsächlich 100, P=5,0 ist 50 etc.
P: (Default:5,0) Nur noch mit P wird die Stärke der Baroregelung eingestellt. Intern werden die Werte durch "50" geteilt, d.h. bei einem P von "5,0" kommt der errechnete Wert zu 100% durch. Da dieser errechnete Wert auf einem Barowert/30 basiert, dürften P Werte von unter "5,0" eigentlich witzlos sein. Ich schätze, ab P von "10,0" wird die Sache interessant.
I: (Default:0,100) Das I ist kein I mehr! In der Regelung werden positive und negative Werte errechnet, die dem aktuellen Gaswert hinzugefügt werden. Die Überlegung ist nun: Ein Kopter wird durch die Erdanziehung vermutlich leichter fallen als steigen können, d.h. negative Gaswerte könnten sich stärker bemerkbar machen. Mit dem neuen "I" könnt Ihr jetzt die Auswirkungen negativer Gaswerte prozentual abschwächen oder auch steigern. Standardmässig steht der Wert auf "0,100" d.h. 100% d.h. alle errechneten Gasreduktionen werden voll durchgegeben. Will man 20% weniger Gasreduktion ist I = "0,80", will man 20% mehr Gasreduktion ist I = "0,120". Ich bin gespannt, ob das tatsächlich einen praktischen Nutzen hat.
Ach ja, wer aus Versehen I auf 0 stellt, bekommt eine Regelung nur noch nach oben
.
D: (Default:20) Auch das D ist kein D mehr! Dieser Wert bezeichnet die Stärke der ACC Z Gegenwehr, gegenüber plötzlichen, starken Höhenänderungen. Dabei ist es egal, ob die Höhenänderung von aussen (Wind) oder von innen (Regelung) kommt. (Vielleicht sollte ich die "Gegenwehr" gegenüber internen Steuerbefehlen reduzieren/abschalten?)
Diese Funktion wird, weil es einfacher ist, nur bei eingeschaltetem "LEVEL" Modus aktiv. (d.h. Baromodus & Levelmodus müssen eingeschaltet sein). Der Standardwert ist 20. Bei D="40" werden 100% des errechneten Wertes an die Motoren durchgegeben, was ich im Handtest schon als zu stark empfand. Ein D von 0 schaltet die ACC Z Regelung ab. D.h. auch im Baromodus+Levelmodus kein ACCZ Einfluss mehr. Umgekehrt kann man auch versuchen nur mit dem ACC die Höhe zu halten d.h. P=0.
5.: Einloggen einer neuen Höhe:
Am Besten mit dem Baroschalter! Den Copter ruhig halten und Schalter umlegen. Man kann den Regelkreis jedoch sofort durch stärkere Gasknüppelbewegungen(+-"40") überspringen. Es würde dann bei Überschreiten einer Höhenänderung von ca 1m sofort (Abfragefrequenz ca. 2Hz) wieder eine neue zu haltende Höhe definiert, nur wenn das im starken Steigen oder Sinken ist, dürfte das nicht viel bringen. Also besser mit dem Baroschalter arbeiten.
Freiwillige vor! Ich bin sehr gespannt auf euer Feedback! Ausserdem brauche ich anständiges Wetter zum selber - testen!
LG
ROB