Funktionieren bei Euch Kompass und Baro vernünftig ?

helste

Erfahrener Benutzer
#81
Rob, ich stimme Dir da zu, was die Entwicklung der Multiwii anbelangt. Ich will GPS, Waypoints, RTH, und was weiß der Geier noch alles. Deshalb habe ich mir auch für meinen Hexa das APM1 zugelegt. Da geht das alles. Bin aber leider noch nicht dazugekommen auch alles wirklich umfangreich zu testen.
Den Quadro mit der Multiwii, will ich hauptsächlich als einfachen Spaßkopter. Die Geschichte mit dem Baro brauche ich da eigentlich gar nicht, aber es macht halt Spaß das auszuprobieren.

Bezüglich Alexmos: Ist eine ältere MWII Version, aber bei mir funktioniert das sehr gut. Der Vorteil ist, dass das auch mit der WinGui geht und die ist um längen besser als die Standardconfig, weil man da die Setups speichern kann und die Werte vernünftig eingeben kann und sie nicht mit dieser bescheuerten Schieberei reinfummeln muss. Wem diese Art der Eingabe eingefallen ist, würde mich interessieren.
Ich hoffe, es kommt bald ein Update der WinGUI, damit ich dann auch die neueren Versionen damit bearbeiten kann.
 

Roberto

Erfahrener Benutzer
#82
Moin!

Ich habe hier die aktualisierte Fassung meines Mods.
In den .zip Dateien habe ich die Änderungen im Code mit //Crashpilot1000 kenntlich gemacht.

Code:
Im Hauptprogramm:

Variablen:
static uint8_t baroloopcounter=0;  //Crashpilot1000
static int32_t estaltsum=0;
static int32_t estaltmw=0;
static int32_t lastestalt=0;
static uint8_t newbaroval=0;

Die Baroinitialisierung habe ich um eine Zeile ergänzt:
.....
  if (baroMode == 0) {
          baroMode = 1;
          AltHold = EstAlt;
          lastestalt = EstAlt;                      //Crashpilot1000
......

Die neue Baro/Throttle Abfrage:
  #if BARO                                                  //Crashpilot1000
    if (baroMode==1)
    {
     if (newbaroval==1)                                                              //is there a new barovalue?
     {
      newbaroval=0;
      if (baroloopcounter <8)                                                       //did i collect 8 values already?
      {
       if (abs(lastestalt-EstAlt)>30) EstAlt=lastestalt;                             //Filter some
       estaltsum=estaltsum+EstAlt;                                                   //no, keep collecting
       lastestalt=EstAlt;
       baroloopcounter=baroloopcounter+1;
      }
      else                                                                           //yes 0,2s (8*25ms) have passed makeup new values
      {
       estaltmw=estaltsum>>3;                                                        //divide by 8
       baroloopcounter=0;                                                            //reset Values for next run
       estaltsum=0;
//       debug3=abs(estaltmw - AltHold);
//       debug4=abs(rcCommand[THROTTLE] - initialThrottleHold);
       if (abs(estaltmw - AltHold)>80 && abs(rcCommand[THROTTLE] - initialThrottleHold)>60) baroMode = 0; // so that a new althold reference is defined
      }
     }
     rcCommand[THROTTLE] = rcCommand[THROTTLE] + BaroPID;
    }
  #endif                                                   //Crashpilot1000


Unter dem Tab "IMU" void getEstimatedAltitude() habe ich eine Zeile eingefügt:
.....
  if (currentTime < deadLine) return;
  deadLine = currentTime + UPDATE_INTERVAL; 
  newbaroval = 1;                                        //Crashpilot1000
....
Das Grundprinzip hat sich seit der letzten Version nicht geändert. Der Mittelwert wird jetzt nur noch aus neuen und leicht gefilterten Werten (synchronisiert mit der Baroabfrage d.h. alle 25ms) gebildet. Statt 64 Werte, braucht es jetzt nur noch 8 Werte. Der Mittelwert umfasst damit den Zeitraum von 200ms. Die Mittelwertbildung der Gasknüppelbewegungen ist absolut unnötig. Man kann DEBUG 3&4 ruhig auskommentieren. Die GUI zeigt dann unter Debug 3 den aktuellen Abstand (cm) von der zu haltenden Höhe und unter Debug4 die Knüppelbewegungen relativ zu dem Zeitpunkt, als die neue zu haltende Höhe definiert wurde. Der aktuell eingestellte Trigger eine neue zu haltende Höhe zu übernehmen ist: 80cm Höhenänderung UND 60 Ticks Gasknüppelbewegung. Der Baro PID Kontroller wird nicht beeinflusst.

Viel Spass beim Testen!

LG
Rob

P.s.:
@Helste
.... Die Geschichte mit dem Baro brauche ich da eigentlich gar nicht, aber es macht halt Spaß das auszuprobieren. .....
Für wen mach ich das dann eigentlich :) :) .........
 

Anhänge

Zuletzt bearbeitet:

Paraglider58

Erfahrener Benutzer
#83
Hallo Roberto,

du hast in anderer Post geschrieben dass es Probleme gibt mit dem Speicherplatz. Da ich ja mit Programmieren wenig zu tun habe stelle ich einfach mal die Frage:
Warum ist in dem Code so viel drinnen das auskommentiert ist, also gar nicht benötigt wird und unötiger Balast ist. Gut das der eine diese, ein anderer jene Zeilen benötigt ist mir schon klar. Deshalb habe ich den Gedanke: Kann man nicht in einem anderen Faden so eine Art "Einführung" geben. Mich würde das sehr interessieren, vlt. andere auch. Zusätzlich würde man dann auch zu Erfolge beitragen können. Nur so ein Gedanke.
Trotz allem ein Dank für deine Arbeit.

Gruß Paraglider58
 

Roberto

Erfahrener Benutzer
#84
Zuletzt bearbeitet:

Paraglider58

Erfahrener Benutzer
#85
Hallo Roberto,
..... Die GUI zeigt dann unter Debug 3 den aktuellen Abstand (cm) von der zu haltenden Höhe und unter Debug4 die Knüppelbewegungen relativ zu dem Zeitpunkt, als die neue zu haltende Höhe definiert wurde. Der aktuell eingestellte Trigger eine neue zu haltende Höhe zu übernehmen ist: 80cm Höhenänderung UND 60 Ticks Gasknüppelbewegung. Der Baro PID Kontroller wird nicht beeinflusst.
ich hab ein Bild hier drangehängt. Ich sehe keine Werte in den Debug-Fenster. Und was bedeuten diese starken Ausschläge nach unten? Was mache ich falsch?

Gruß Paraglider58
 

Anhänge

Roberto

Erfahrener Benutzer
#87
Nicht gleich im Baromode starten! Erst das Baro aus und dann zuschalten die Multiwii braucht 4 sec Ruhe nach Start der GUI
Mein Fehler, Sekunde....
 
Zuletzt bearbeitet:

helste

Erfahrener Benutzer
#88
Moin!

Ich habe hier die aktualisierte Fassung meines Mods.
In den .zip Dateien habe ich die Änderungen im Code mit //Crashpilot1000 kenntlich gemacht.

Viel Spass beim Testen!
Vielen Dank für Deine Mühe. Werde dann heute wieder mal wechseln und Deine Version einspielen und testen.


@Helste
Für wen mach ich das dann eigentlich :) :) .........
Hehe, na für Dich und die anderen, oder willst Du vielleicht sagen, dass Du das extra für mich machst?

Im Ernst, brauchen tut man das ja wirklich nicht, aber es geht doch nicht darum, was man braucht, sondern darum zu tun was Spaß macht. Wer braucht schon Multikopter? Ich brauche die Teile nicht, aber ich will sie haben und es macht riesigen Spaß sie zu bauen, einzustellen und zu fliegen.

So,jetzt mal die neue Version drauf spielen und testen. Heute ist das erste mal seit Wochen kein Wind, sondern herrliches Flugwetter. Ich hoffe das bleibt heute so.
 

Roberto

Erfahrener Benutzer
#89
So, Fehler ist raus. Die Datei Dev_20120522.zip bitte noch einmal laden.
Ich habe für das Forum jeweils die jungfräuliche Dev Version genommen und meinen Code implementiert. Dummerweise ist bei der COPY/PASTE Aktion leider etwas stehen geblieben, so dass letztendlich die Zeile "lastestalt = EstAlt; " nicht zur Ausführung kam. Sorry!
 
Zuletzt bearbeitet:

Paraglider58

Erfahrener Benutzer
#90
@IntruderEvil,
Calib_ACC hab ich gemacht.

@Roberto,

mehrfach ausprobiert, ich sehe keine Zahlen und die Ausschläge bleiben.

Gruß Paraglider58

EDIT: Die Ausschäge kommen vom Alt-Anzeiger
 

Roberto

Erfahrener Benutzer
#92
Paragleider, war leider ein Fehler (s.o)

@Helste:
So,jetzt mal die neue Version drauf spielen und testen. Heute ist das erste mal seit Wochen kein Wind, sondern herrliches Flugwetter. Ich hoffe das bleibt heute so.
Hier auch, gleich gehts auf die Wiese!

LG
Rob
 

Paraglider58

Erfahrener Benutzer
#94
Hallo Roberto,

So, Fehler ist raus. Die Datei Dev_20120522.zip bitte noch einmal laden.
Ich habe für das Forum jeweils die jungfräuliche Dev Version genommen und meinen Code implementiert. Dummerweise ist bei der COPY/PASTE Aktion leider etwas stehen geblieben, so dass letztendlich die Zeile "lastestalt = EstAlt; " nicht zur Ausführung kam. Sorry!
ich habe nun die aktuellste Version drauf. Die Ausschläge sind weg, aber in den Debug-Fenster stehen immer noch die Nullen.

Gruß Paraglider58
 

Roberto

Erfahrener Benutzer
#95
@Paraglider:

Danke, dass Du so schnell den Fehler gefunden hast!
Ich habe jetzt hier die Forumsversion Dev_20120522.zip auf meinen Quad geflasht (natürlich mit angepasster Config.h) und sie funktioniert, wie sie soll.
Hast Du vielleicht vergessen die Debugs aus zu kommentieren?

Herzlichen Dank, für euer positives Feedback, aber testet erst mal!

LG

ROB
 

Joachim08

Erfahrener Benutzer
#96
Rob,
kann ich bei der 2205er dev von Dir einfach meine config.h und dev.h von der 2205er reinkopieren oder hast Du dort auch was geändert ? Ich würde gerne wieder testem. obwohl es heute hier sehr windig ist.

Viele Grüße

Joachim
 
#97
So also ich kann nur sagen der Baro MOde ist top. Hab jetzt eben den 3ten Copter geflasht. Einfach klasse. Mein Flyduspider hält wirklich auf +- 10 cm die Höhe. Manchmal sogar weniger.
 

Joachim08

Erfahrener Benutzer
#98
Meinst Du die Mod von Roberto ?

Diese habe ich gerade geflasht und im "Handbetrieb" gehen plötzlich drei Motoren aus, echt komisch...
Ich teste weiter....
 

helste

Erfahrener Benutzer
#99
Bei mir funktioniert es top. +/- 10cm geht aber nicht mit Baro. Zumindest nicht im Freien bei etwas Wind. Im Innenraum ist es bei mir aber auch sehr genau.
 
FPV1

Banggood

Oben Unten