İvmeölçer kullanarak sarsıcı olay tespit etmeye çalıştım. Telefona sürekli bir sarsıntı verdiğimde hızlanmadaki değer farkının oldukça kararlı olduğunu buldum. Ancak telefonu döndüğümde, her zaman değer üzerinde büyük bir değişiklik olur (değer genellikle "döndürmeden sallanmadan" daha büyüktür). Sarsıntı olayına odaklanmak, çalma olayına odaklanmak istiyorum. sorununu çözmenin bir yolu var mı?Çalkalama olayını algılamanın sabit bir yolu var mı?
burada
public void onSensorChanged(SensorEvent event)
{
if (event.sensor.getType() == SensorManager.SENSOR_ACCELEROMETER)
{
nowTime = System.currentTimeMillis();
float x = event.values[SensorManager.DATA_X];
float y = event.values[SensorManager.DATA_Y];
float z = event.values[SensorManager.DATA_Z];
nowAcc = Math.sqrt(x*x+y*y+z*z);
accDiff = Math.abs(nowAcc - preAcc);
timeDiff = (nowTime - preTime);
// try to get the sum of 10 samplings of accDiff
tempAccDiff10 = tempAccDiff9;
tempAccDiff9 = tempAccDiff8;
tempAccDiff8 = tempAccDiff7;
tempAccDiff7 = tempAccDiff6;
tempAccDiff6 = tempAccDiff5;
tempAccDiff5 = tempAccDiff4;
tempAccDiff4 = tempAccDiff3;
tempAccDiff3 = tempAccDiff2;
tempAccDiff2 = tempAccDiff1;
tempAccDiff1 = accDiff;
sumAcc = tempAccDiff10+tempAccDiff9+tempAccDiff8+tempAccDiff7+tempAccDiff6+
tempAccDiff5+tempAccDiff4+tempAccDiff3+tempAccDiff2+tempAccDiff1;
Log.i("SSSS",String.valueOf(sumAcc));
//when I give the phone a big & continuous "shake", it returns
//a value about 30~40, but when I give the phone a small
//"rotation", it returns a value of 80~120
preAcc = nowAcc;
preTime = nowTime;
if (sumAcc>100)
{
SM.unregisterListener(sensorListener, sensor);
}
//123
}
}//end of onSensorChanged();
o ivmeölçer kullanarak dönme olayını ihmal etmek mümkündür algılama salonu Türkiye'de pot benim kod? Veya oryantasyon değişikliği almayı denemek ve sumAcc bazı hesaplamalar mu?
Tavsiyeniz için teşekkürler! Kodu bekliyorum. Umarım yakında bu sorunu çözebilirim! – Jim31837
Alfa'yı (yüksek geçiş filtresi sabiti) değiştirmeyi denedim, ancak yine de küçük dönen olay büyük sallanmadan daha büyük bir değere neden oluyor. Aslında android 2.2 kullanıyorum .... 2.3 cihaz kullanma şansım varsa lineer hızlanma ölçüm cihazını deneyeceğim – Jim31837