رفتن به مطلب
  • 0

محاسبه شتاب گوشی


elyasbeshkani

سوال

سلام

من میحوام به صورت آفلاین شتاب گوشی رو محاسبه کنم

مثلا فرض کنین گوشی توی ماشینه و یهویی ترمز بزنیم یا از حالت ساکن یهویی شتاب بگیره

میخوام این شتاب رو در راستای x و y محسابه کنم و نشون بدم به کاربر

چیکار میتونم بکنم؟

کسی میتونه راهنمایی کنه؟

ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

6 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

سلام

شتاب سنج

 

شما آخر خط داخل "#Region  Project Attributes"    بیاید و کد زیر را بنویس

	#AdditionalJar: android-support-v4

تو گلوبالز هم تعریف کن

Private as1 As Speedometer

تو کریوت هم بنویس

	as1.Initialize("as1")
	Activity.AddView( as1 , 0%x , 0%y , 80%x , 80%y )
	as1.CurrentSpeed = 0
	as1.TheReadingTextColor = Colors.Green
    as1.TheReadingTextSize = 30
	as1.MaxSpeed = 200.0
	as1.ScaleColor = Colors.White
	as1.ScaleTextSize = 10
	as1.OnColor = Colors.Magenta
	as1.OffColor = Colors.ARGB(100,255,255,255)
	as1.ScaleTextShadowColor = Colors.Transparent
	as1.ReadingTextShadowColor = Colors.Transparent

	Dim p As PhoneAccelerometer
	p.StartListening("p")

 

این ساب را هم اضافه کن و نتیجه را ببینید    -->  صلوات برای ظهور آقا امام زمان(عج) یادنره


Sub p_AccelerometerChanged (X As Float, Y As Float, Z As Float)
	as1.CurrentSpeed =  x
End Sub

 

کتابخانه  androidspeedometer :

Libs-shetab-sanj

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 1 ساعت قبل، mobah گفته است :

سلام

شتاب سنج

 

شما آخر خط داخل "#Region  Project Attributes"    بیاید و کد زیر را بنویس


	#AdditionalJar: android-support-v4

تو گلوبالز هم تعریف کن


Private as1 As Speedometer

تو کریوت هم بنویس


	as1.Initialize("as1")
	Activity.AddView( as1 , 0%x , 0%y , 80%x , 80%y )
	as1.CurrentSpeed = 0
	as1.TheReadingTextColor = Colors.Green
    as1.TheReadingTextSize = 30
	as1.MaxSpeed = 200.0
	as1.ScaleColor = Colors.White
	as1.ScaleTextSize = 10
	as1.OnColor = Colors.Magenta
	as1.OffColor = Colors.ARGB(100,255,255,255)
	as1.ScaleTextShadowColor = Colors.Transparent
	as1.ReadingTextShadowColor = Colors.Transparent

	Dim p As PhoneAccelerometer
	p.StartListening("p")

 

این ساب را هم اضافه کن و نتیجه را ببینید    -->  صلوات برای ظهور آقا امام زمان(عج) یادنره



Sub p_AccelerometerChanged (X As Float, Y As Float, Z As Float)
	as1.CurrentSpeed =  x
End Sub

 

کتابخانه  androidspeedometer :

Libs-shetab-sanj

 

ببخشید این مال اندروید استودیوست؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خدمت شما. شتاب تو سه راستا رو به صورت زیر میتونید بگیرید. البته تست کنید

public class MainActivity extends AppCompatActivity implements SensorEventListener {
private float[] gravity = new float[3];
private float[] linear_acceleration = new float[3];

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    SensorManager mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
    Sensor mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
    mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
}

@Override
public void onSensorChanged(SensorEvent event) {
    // alpha is calculated as t / (t + dT)
    // with t, the low-pass filter's time-constant
    // and dT, the event delivery rate

    final float alpha = 0.8f;

    gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0];
    gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1];
    gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2];

    linear_acceleration[0] = event.values[0] - gravity[0];
    linear_acceleration[1] = event.values[1] - gravity[1];
    linear_acceleration[2] = event.values[2] - gravity[2];
}  
}

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در 11 ساعت قبل، محمدرضا شاهپیری گفته است :

خدمت شما. شتاب تو سه راستا رو به صورت زیر میتونید بگیرید. البته تست کنید


public class MainActivity extends AppCompatActivity implements SensorEventListener {
private float[] gravity = new float[3];
private float[] linear_acceleration = new float[3];

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    SensorManager mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
    Sensor mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER);
    mSensorManager.registerListener(this, mAccelerometer, SensorManager.SENSOR_DELAY_NORMAL);
}

@Override
public void onSensorChanged(SensorEvent event) {
    // alpha is calculated as t / (t + dT)
    // with t, the low-pass filter's time-constant
    // and dT, the event delivery rate

    final float alpha = 0.8f;

    gravity[0] = alpha * gravity[0] + (1 - alpha) * event.values[0];
    gravity[1] = alpha * gravity[1] + (1 - alpha) * event.values[1];
    gravity[2] = alpha * gravity[2] + (1 - alpha) * event.values[2];

    linear_acceleration[0] = event.values[0] - gravity[0];
    linear_acceleration[1] = event.values[1] - gravity[1];
    linear_acceleration[2] = event.values[2] - gravity[2];
}  
}

 

 

سلام

ببخشید این کد وقتی حتی گوشی روی زمین ثابته هم یه مقدار شتابی دارهگ

یعنی با چرخوندن گوشی مقادیر عوض میشن

کدی میخوام که شتاب حرکت رو بسنجه

یعنی سرعت میشه متر بر ثانیه و شتاب میشه متر بر مجذور ثانیه یعنی همون سرعت تقسیم بر ثانیه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

اگر به دنبال پیاده سازی INS هستی، به این سادگی ها نیست. باید مقالات رو بخونی و الگوریتم ها رو از اونجا پیاده سازی کنی. برای کاهش خطا و پرش اطلاعات شتاب سنج (و هر مقدار متغییر دیگه که بر حسب زمان تغییر می کنه) می تونی از فیتلر کالمن استفاده کنی.

در کل انتگرال گیری از شتاب برای رسیدن به سرعت و جابجایی چون بر حسب زمان خواهد بود خطای بالایی با گذشت زمان داره. البته با استفاده از الگوریتم های پیشرفته (مقالات علمی و کتاب) می تونی تا حد زیادی به هدف برسی.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

فک میکنم دو تا سوء تفاهم ایجاد شد

منظور از شتاب ، اون شتاب سنج گوشی نیست

و اینکه فاصله نقطه دوم  منهای نقطه اول، تقسیم بر اختلاف زمانی ، میشه سرعت ، نه شتاب

 

اگه اشتباه نکنم تنها راهش استفاده از gps هست که خطای زیادی داره و دقیق نیست

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...