2012-10-05 22 views
5

Bu yüzden yaklaşık 3 saat aradım ve iyi bir cevap/çözüm bulmuyorum.Android ivmeölçer maksimum değerleri

Soruma Soru: Neden yalnızca 34 m/s^2 veya 3,5 Gs (34/9.81) azami hızlanma değeri alıyorum.

Donanım kısıtlamaları veya yazılım kısıtlamaları nedeniyle mi? Eğer donanım ise, biliyorum (ya da en azından kolay değil). Yazılım kısıtlamasıysa, o kısıtlamayı nasıl kaldırabilirim, bunu yapmanın herhangi bir yolu var mı? Bir API gibi mi?

Yardımlarınız için minnettarım, Teşekkürler.

Not Not: Bu bir fark yaratan Galaxy S kullanıyorum. Ben de bu soruya bir göz alarak ama bu beni yardımcı değildir: What is android accelerometer min and max range

+0

"Kısıtlama" ile ne demek istediğini açıklayabilir misiniz? Bu tür bir şey daha yüksek bir değer elde etmeyi beklediğiniz anlamına gelir. 9.8m/s^2'lik çekim kuvveti dahil edip etmediğinizi veya yüksek geçirgen filtreyi uygulayıp uygulamadığınızı belirtmek isteyebilirsiniz ve Galaxy S'ye ne tür bir hareket uyguladığınızı da belirtiniz. Son olarak, neden numaranın 3.5G'den yüksek olması gerektiğini varsayıyorsunuz. Bunun doğru ya da yanlış olduğunu söylemiyorsunuz, ama neden “kısıtlamalar” olduğunu varsayıyorsunuz. – David

+0

Kayıt için, ivmeölçer teorik olarak tamamen donanım tabanlı: http://developer.android.com/guide/topics/sensors/sensors_motion.html – David

+0

@David, buna göre (https://groups.google. com/forum/#! msg/android-kernel/2RYrDvgJDsM/- uF40t3rU0J) aralık daha yüksek olmalıdır. Bu yardımcı olur mu bilmiyorum ... Ayrıca 3.5 Gs düşük sesler ve ben telefonumun daha fazla sallanan biliyorum. Bu yüzden benim bir çeşit kısıtlama olduğumu düşünüyorum. – 0gravity

cevap

4

bu bir göz atın: https://electronics.stackexchange.com/questions/11372/samsung-galaxy-s-accelerometer-details soru Görünüşe göre Galaxy S kullanılan ivme için veri sayfası gibi görünen içerir üç olası aralık +/- 2g, +/- 4g ve +/- 8g'dir. Ben bir elektronik uzmanı değilim, bu yüzden bundan daha fazla yorum sağlamayacaktır. Böylece developer.android.com/guide/topics/sensors/sensors_motion.html , muhtemelen kazandırma konusunda daha atış olurdu:

developer.android.com göre, ivmeölçer okumaları sadece donanım bağımlı olan Yukarıda bahsi geçen Elektrik Mühendisliği stackexchange forumunda uzman bir cevap: electronics.stackexchange.com.

Projenizde bol şans!

DÜZENLEME: Orijinal soru üzerine yorumlarla istinaden: o diyor çünkü bakınız page başvurabileceğiniz -

"Benim anlayış Android'in varsayılan ivme ölçerler olduğunu

etmektir önceden tanımlanmış faaliyet Program aralığı Bu menüyü bir genel API ile nasıl değiştirebilirim? getMaximumRange() yöntemi var, ancak buna karşılık gelen setMaximumRange() yöntemi yok. "

Önceden seçilmiş aralığı değiştirmek için yazılım tabanlı bir yöntem olup olmadığını merak ediyorsunuz. Yine, Android API dokümanlarının bundan bahsedeceğini düşünürdüm. Electronics.stackexchange.com'dan "dinamik olarak seçilebilir aralıklar" ın ne olduğunu ve eğer fiziksel donanım anahtarları (veya bunun gibi bir şey) tarafından ayarlandığını veya program aracılığıyla değiştirilip değiştirilmediğini sormayı deneyin.

İKİNCİ DÜZENLEME:

API Dosen: Ben daha iyice ve orijinal sorgulayıcı Google API kontrol ve içinden aralığını değiştirmek mümkün olmadığı sonucuna varmıştır fark anılan sayfasını okuyun Onları değiştirmeye izin verme. Bu verileri api kaynağında bulabildiğimi düşünüyorum, ancak bu basit değil. Şimdi deneyeceğim. - Eğer Galaxy S'den okuduğunuz maksimum hızlanma büyüklüğü göz önüne alındığında 10:36

+0

+1 Cevabınız için teşekkür ederiz. Bana ne arayacağına dair fikir/içgörü verdi. – 0gravity

+0

Rica ederim. Umarım problemini çözmenin bir yolunu bulursun. – David

2

de MarcoBiagi 13 Mart '11 3.5 gr olan, Galaxy S ivmeölçer + 'nın bir eksen başına akselerometre aralığına sahip olmasına kurulum gibi görünmektedir/- 2g (yani, sqrt (2.0 * 2.0 + 2.0 * 2.0 + 2.0 * 2.0) = 3.5).
moto G 2g +/-:

Galaxy S: Referans olarak, burada Galaxy S, motor G ekseni için ivme aralıkları ve Nexus Android cihazlardır +/-
Nexus 1 2g: +/- 2g
Nexus S: +/-
Nexus 4 2g: +/-
Nexus 5 4g: +/-

ekseni için ivme aralığı tipik olarak bir telefon özellikler sayfasında verilmez 2g. Bu nedenle, diğer okuyucular, telefonlarının ivmeölçerlerinin maksimum menzilini biliyorsa, lütfen bu listeye eklemekten çekinmeyin.

Ne yazık ki, Sensor.getMaximumRange() API ivme ölçer tutarsızdır: çoğu aygıtta "sıfırdan zirve" değerlerini döndürür, ancak bu tracked Android OS issue numaralı belgede açıklandığı gibi bazılarında (örneğin, Moto G) "zirveye ulaşma" değerini döndürür. Belirli bir cihazın Sensor.getMaximumRange() 'i "sıfırdan zirve" ya da "zirveden zirveye" geri döndürüp döndürmeyeceğini bilmenin bir yaklaşımı, ftNote gibi ücretsiz bir sensör veri çizim uygulamasını çalıştırmak ve ivmeölçer okumalarının nereye yerleştirildiğini görmek için cihazı kuvvetlice sallamaktır. çizilen sensör değerleri.

+0

lg g3 var, getMaximumRange() 39, ortalama max aralığı 69G nedir? Bu gerçek mi? –