Gierwinkel bzw. Kompassrichtung bestimmen
Für die Ausrichtung im Verhältnis zu unserem Erdmagnetfeld (also zur Nordrichtung) kommt nun der dritter
Sensor ins Spiel. Der Magnetfeldsensor. Dieser misst das Erdmagnetfeld in Tesla und zwar wieder für die x-,
y- und z-Richtung.
Schauen wir uns zuerst das Grundprinzip an: Nehmen wir an der Sensor liegt flach auf
dem Tisch. Dann brauchen wir den z-Anteil, der ja dann genau senkrecht nach unten zeigt nicht zu
berücksichtigen. Die Ausrichtung zur Nordrichtung α ergibt sich hier mit
α = arctan(magnetX / magnetY);
Soll der Kompass in jeder Lage zuverlässig die Ausrichtung anzeigen muss auch der Magnetfluss in z-Richtung betrachetet werden. Der z-Anteil ist übrigens erheblich und kann nicht vernachlässigt werden! Die Herleitung der mathematischen Formel kann man folgender Skizze entnehmen.
Der Gesamtvektor welcher in Richtung x zeigt (projiziert auf eine Ebene welche parallel zur Erdoberfläche ist) ergibt sich: xH = XRichtungX + YRichtungX + ZRichtungX
xH = mX*cos(Rollwinkel) - mY*sin(Rollwinkel)*sin(Nickwinkel) + mZ*sin(Rollwinkel)*cos(Nickwinkel);
Der Gesamtvektor welcher in Richtung y zeigt (projiziert auf eine Ebene welche parallel zur Erdoberfläche ist) ergibt sich: yH = XRichtungY + YRichtungY + ZRichtungY
yH = mZ*sin(nWRad) + mY*cos(nWRad);
Mit der oben angegebenen Formel kann man aus den beiden projizierten Richtungen die Ausrichtung (eng. Heading) berechnen.
heading = atan2(yH, xH);
Auf dem oberen Bild wird die Ausrichtung ausgegeben. Die Sprünge von 180° auf 0° kommen durch die Tangensfunktion und müssen im weiteren Programm entsprechen berücksichtigt bzw. abgefangen werden.