Code:
sensor = SensorADXL345(1, 0x53)
mx, my, mz, = sensor.read_data_beschl()
#print mx, my, mz
pitchAccelXh = math.atan2(my / 1024, (mz / 1024))
rollAccelYh = math.atan2(mx / 1024, (mz / 1024))
cos_roll= math.cos(pitchAccelXh);
sin_roll = math.sin(pitchAccelXh);
cos_pitch = math.cos(rollAccelYh);
sin_pitch = math.sin(rollAccelYh);
mag_X = x;
mag_Y = y;
mag_Z = z;
Yh = mag_Y * cos_roll - mag_Z * sin_roll;
Xh = mag_X * cos_pitch + mag_Y * sin_roll * sin_pitch + mag_Z * cos_roll * sin_pitch;
ang = 180+round(math.atan2(x, y)*(180/math.pi),0)
realHeading = 180+round(math.atan2(Xh, Yh)*(180/math.pi),0)
print "alt",ang,"neu",realHeading
time.sleep(1)
jetzt geht es solange der Kompass grade ist.
In diesen fall stimmen alter und neuer wert überein (is ja normal) sobalt ich den Kompass + accelerometer kippe ist der alte wert fast besser als der neu ausgerechnete^^
jemand eine Idee woran das liegen könnte?
Lesezeichen