K
Kernle 32DLL
Neues Mitglied
- 0
Moin,
Ich kämpfe seit kurzem mit einem kleinen Sensorproblem das ich einfach nicht in den Griff bekomme. Ich will einfach nur den Z-Roll Wert im Landscape Mode (also wenn man das Handy vor sich hat, und dann nach Rechts und Links neigt) auslesen. Dabei stellen sich mir zwei große Probleme, aber erst mal ein kurzer Einblick wie ich den Sensor bisher auslese:
(Ich weiß das diese Methode deprecated ist, aber ich habe kein funktionierendes Tutorial für die "neue" Methode mit Rotation Matrix, etc. gefunden)
Das erste Problem ist, das ich beim Neigen des Handy zu mir hin (also das die Obere Handykante zu mir zeigt) der ausgelesene Sensorwert auf einmal um -180°C verdreht wird, und ich kriege nicht raus wie ich das abfangen bzw. verrechnen kann. Mache ich was elementar falsch, oder ist das in der neueren Methode mit der Rotation Matrix vielleicht korrekt(er)?
Das zweite Problem ist, dass die Werte ziemlich "unruhig" sind, und die Rotation ziemlich zittrig wirkt. Meine versuche das mit nem Buffer "auszugleichen" waren nicht sehr erfolgreich, die Ausgabe wurde einfach zu stark verzögert, oder ich war gezwungen den Sensor mit SENSOR_DELAY_FASTEST zu registrieren (was mir ein wenig übers Ziel hinaus geschossen scheint). Es gibt genügend Apps die beweisen das es geht, also wie "smoothe" ich meine Sensordaten damits nicht so unruhig wirkt?
Wäre für alle Gedankenanstöße sehr dankbar =)
So long,
Kernle
Ich kämpfe seit kurzem mit einem kleinen Sensorproblem das ich einfach nicht in den Griff bekomme. Ich will einfach nur den Z-Roll Wert im Landscape Mode (also wenn man das Handy vor sich hat, und dann nach Rechts und Links neigt) auslesen. Dabei stellen sich mir zwei große Probleme, aber erst mal ein kurzer Einblick wie ich den Sensor bisher auslese:
Code:
mSensorEventListener = new SensorEventListener()
{
@Override
public void onSensorChanged(SensorEvent event)
{
mMapRotationZ = event.values[1];
}
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy)
{
}
};
Das erste Problem ist, das ich beim Neigen des Handy zu mir hin (also das die Obere Handykante zu mir zeigt) der ausgelesene Sensorwert auf einmal um -180°C verdreht wird, und ich kriege nicht raus wie ich das abfangen bzw. verrechnen kann. Mache ich was elementar falsch, oder ist das in der neueren Methode mit der Rotation Matrix vielleicht korrekt(er)?
Das zweite Problem ist, dass die Werte ziemlich "unruhig" sind, und die Rotation ziemlich zittrig wirkt. Meine versuche das mit nem Buffer "auszugleichen" waren nicht sehr erfolgreich, die Ausgabe wurde einfach zu stark verzögert, oder ich war gezwungen den Sensor mit SENSOR_DELAY_FASTEST zu registrieren (was mir ein wenig übers Ziel hinaus geschossen scheint). Es gibt genügend Apps die beweisen das es geht, also wie "smoothe" ich meine Sensordaten damits nicht so unruhig wirkt?
Wäre für alle Gedankenanstöße sehr dankbar =)
So long,
Kernle