MAG Calibrieren - wie ?

hi an alle,
hab jetzt endlich mal meine FreeIMU 0.3.5 BMP eingebaut. hab nur das prob. dass ich ja den mag noch calibrieren muss. hab das auch mal irgendwo gelesen aber ich find nicht mehr wo !!!
hat da einer nen tip für mich ( wo es steht oder wie es geht)?
grüsse

alex
 

Crizz

User
Nachdem du in der GUI auf den zugehörigen Button geclickt hast, die IMU ( bzw. den ganzen Copter ) jeweils min. 1x um jeder Achse drehen, so das auf jeder Achse eine volle 360° Drehung durchgeführt ist. Wenn alle Achsen erkannt wurden wechselt das hektische LED-blinken der Pin13-LED wieder auf das normale Signal.
 

Crizz

User
Solltest du das Problem haben, das der Copter trotz kalibriertem Mag selbständig giert, mach noch mal ne Kalibrierung und drehe ihn zuerst 2x um die Gierachse, bevor du die anderen Achsen angehst.

Soll übrigens auch funzen wenn man nach dem klick auf "cal." den FTDI abzieht, dann hat man weniger Probleme mit dem USB-Kabel. ( es sei denn man hat eh nen BT-Modul drauf )
 

Michael Brakhage

Vereinsmitglied
Hallo

es gibt auch noch eine elegantere Methode die MAG Kalibrierung zu starten. Alles ohne GUI !

schaut euch mal eure MultiWii.pde oder MultiWii.ino an. Ab Zeile 416 in etwa kommt dieser Teil:

Code:
} else if (rcData[THROTTLE] > MAXCHECK && armed == 0) {
      if (rcData[YAW] < MINCHECK && rcData[PITCH] < MINCHECK) {  //throttle=max, yaw=left, pitch=min
        if (rcDelayCommand == 20) calibratingA=400;
        rcDelayCommand++;
      } else if (rcData[PITCH] > MAXCHECK) {
         accTrim[PITCH]+=2;writeParams();
         #if defined(LED_RING)
           blinkLedRing();
         #endif
      } else if (rcData[PITCH] < MINCHECK) {
         accTrim[PITCH]-=2;writeParams();
         #if defined(LED_RING)
           blinkLedRing();
         #endif
      } else if (rcData[ROLL] > MAXCHECK) {
         accTrim[ROLL]+=2;writeParams();
         #if defined(LED_RING)
           blinkLedRing();
         #endif
      } else if (rcData[ROLL] < MINCHECK) {
         accTrim[ROLL]-=2;writeParams();
         #if defined(LED_RING)
           blinkLedRing();
         #endif
      } else {
        rcDelayCommand = 0;
      }
    }
Ändert diesen Teil wie folgt ab:

Code:
} else if (rcData[THROTTLE] > MAXCHECK && armed == 0) {
      if (rcData[YAW] < MINCHECK && rcData[PITCH] < MINCHECK) {  //throttle=max, yaw=left, pitch=min
        if (rcDelayCommand == 20) calibratingA=400;
        rcDelayCommand++;
      } else if (rcData[YAW] > MAXCHECK && rcData[PITCH] < MINCHECK) { //throttle=max, yaw=right, pitch=min  
        if (rcDelayCommand == 20) calibratingM=1; // MAG calibration request
        rcDelayCommand++;
      } else if (rcData[PITCH] > MAXCHECK) {
         accTrim[PITCH]+=2;writeParams();
         #if defined(LED_RING)
           blinkLedRing();
         #endif
      } else if (rcData[PITCH] < MINCHECK) {
         accTrim[PITCH]-=2;writeParams();
         #if defined(LED_RING)
           blinkLedRing();
         #endif
      } else if (rcData[ROLL] > MAXCHECK) {
         accTrim[ROLL]+=2;writeParams();
         #if defined(LED_RING)
           blinkLedRing();
         #endif
      } else if (rcData[ROLL] < MINCHECK) {
         accTrim[ROLL]-=2;writeParams();
         #if defined(LED_RING)
           blinkLedRing();
         #endif
      } else {
        rcDelayCommand = 0;
      }
    }
Nun könnt ihr draussen im Feld oder wo auch immer mit folgender Stick-Kombination die Kalibrierung starten:


Die Motore müssen aus sein !!!!
GAS/Throttle nach oben
YAW nach rechts
Nick nach unten/hinten

nun blinkt die Status-LED und ihr könnt die Kalibrierung starten. Am besten alle Achsen 2mal drehen!
Aber schnell schnell :) die Zeit zum Kalibrieren beträgt mas. 30 Sekunden :)


Danke an HAMBURGER für diesen Code!
 

Eckart Müller

Moderator
Teammitglied
@ Michael und alle Anderen

Von Silvan (Rollfeldraser) ist im :rcn:-WIKI eine zentrale "Sammelstelle" für Problemlösungen in Sachen MultiWii eingerichtet worden. Das ist für alle hilfreich, da damit die mühsame und zeitraubende Durchforstung der zahlreichen, verteilten Threads entfällt.
Dein Beitrag passt dort natürlich auch gut hin. Ist eigentlich zwingend notwendig, den dort zu positionieren!

Eckart
 

Michael Brakhage

Vereinsmitglied
Schrecklich viel los ist in dem Wiki aber noch nicht :)

werd mich mal schlau machen wie das geht.
Es gibt einige gute Tips zu MultiWii. Sind aber nicht alle frei verfügbar. Werde mal nachfragen ob ich es verlinken darf.
 

Eckart Müller

Moderator
Teammitglied
Schrecklich viel los ist in dem Wiki aber noch nicht :)
Ist ja auch noch druckfrisch...;) ...außerdem ist das wie immer, alle Welt ruft nach solchen Sachen, nur wenn's drauf ankommt, findet sich niemand, der auch mal was beisteuern will. Woher sollen denn dann all' die interessanten Dinge kommen?

Eckart
 
Oben Unten