Jak změřit vzdálenost, kterou urazí iPhone během volného pádu?

hlasů
9

Během volného pádu se předpokládá, že iPhone posílat hodnoty zrychlení as 0 na všech třech osách. Tak, jak zjistit vzdálenost, kterou urazí iPhone?

Položena 02/07/2009 v 11:24
zdroj uživatelem
V jiných jazycích...                            


10 odpovědí

hlasů
10

Nevěřte Newton zákony ignorují odpor vzduchu, iPhone rotace atd Použít empirický přístup místo. Nechte pádu zařízení z různých výšek, jako je 1m, 2m, 5m, 10m, 30m ... Opakujte několikrát za každou výšku. V každém okamžiku pádu opatření. Přibližné výsledky podle spline. Vypočítat inverzní funkce.

Odpovězeno 02/07/2009 v 22:28
zdroj uživatelem

hlasů
3

Nejjednodušší a naivní provedení je vzorek accelerometerdata a použít následující vzorec.

v+=a*dt;
d+=v*dt;

Ale to je může dát drift v průběhu času, přečtěte si toto vysvětlení, proč a lepší řešení: http://gafferongames.com/game-physics/integration-basics/

Odpovězeno 02/07/2009 v 11:43
zdroj uživatelem

hlasů
2

Od začátku stojící

vzdálenost = 0,5 x zrychlení x čas 2

Gravitační zrychlení = 9,81 m / s 2

Budu předpokládat, že nejste upustil telefon dostatečně daleko k dosažení konečné rychlosti. Pokud ano, pochybuji, že vaše aplikace bude k ničemu, pokud obnovit telefonu :)

Odpovězeno 02/07/2009 v 11:33
zdroj uživatelem

hlasů
2

Pokud vaše akcelerometry hlásí nula, pak máte problém určování toho, kdy byl váš pohyb dokončen.

Takže určit zpomalení při nárazu, pak určují maximální rychlost na začátku brzdění, pak pracovat pozpátku od toho. Za předpokladu lineární pohyb, absence konečná rychlost a odpor vzduchu, lineární zpomalení (snad) a že váš telefon stále funguje!

Odpovězeno 02/07/2009 v 11:32
zdroj uživatelem

hlasů
1

Jedním z řešení, které by se brát v úvahu otázka odolnost proti větru je můžete použít rozdíl mezi zrychlením gravitace a skutečného normou zrychlení kterou čtete,

d 2 x / dt 2 = g - | a |

Kde g = 9,8 a A | = Sqrt (a 1 2 + a 2 2 + a 3 2 ), kde n jsou hodnoty z accellerometer na každé ose.

Pak řešit diferenciální rovnice numericky, s něčím, jako je metoda Eulerova.

Dalo by se dokonce být chytrý a vyhledávání místní hodnoty g pomocí GPS.

Odpovězeno 02/07/2009 v 20:47
zdroj uživatelem

hlasů
1

Ignorování odpor vzduchu:

float t; // time since drop
float distance = 9.81f * 0.5f * t * t;

Pro větší vzdálenosti (spadnout z letadla), které by rovněž mohlo využít lokalizační služby. CLLocation obsahuje výšku.

Odpovězeno 02/07/2009 v 11:29
zdroj uživatelem

hlasů
0

Také mějte na paměti, že telefon je velmi pravděpodobné, že bude padat v nějakém druhu spadající scénáře. Se změnou profilu telefonu, bude táhnout změnit, a akcelerometr NEBUDE čtení nula.

Odpovězeno 02/07/2009 v 22:32
zdroj uživatelem

hlasů
0

To je velmi zjednodušující, protože máte k účtu pro tření vzduchu. Tření vzduchu způsobí, že zařízení k dosažení „a“ konečné rychlosti. Pouze v rychlosti terminálu bude accellerometer označují 0.

Vzorce zde uvedené předpokládají volný pád do prázdna (bez tření).

Jinými slovy, je to docela složité pro výpočet ujeté vzdálenosti (jeden problém je, že konečná rychlost závisí na orientaci telefonu při pádu).

Odpovězeno 02/07/2009 v 11:37
zdroj uživatelem

hlasů
0

vzdálenost = 0,5 * gravityAcceleration * timeOfFall 2

V nejjednodušší formě.

Můžeme bezpečně vynechat tření vzduchu a větru, vzhledem k iPhone form factor a hmotnosti, stejně jako vzdálenost, jaký hardware bude i nadále být užitečné při pádu z. ;)

Nicméně, pokud budete s telefonem do volného pádu před otevřením padáku, existuje příliš mnoho faktorů, které berou v úvahu v spolehlivě vypočítat vzdálenost, na základě samotné akcelerometru. To je pravděpodobně nejsou vhodné pro takové aplikace, stejně jako měření jsou velmi nestabilní a jeho hlavním cílem je určit orientaci zařízení nebo odhalit potenciální volný pád (v případě notebooků, kde se používají podobná akcelerometr čipy).

Odpovězeno 02/07/2009 v 11:31
zdroj uživatelem

hlasů
-1

Akcelerometr bude číst 0 (nebo g) pro všechny 3 osy, zda je ve volném pádu, nebo sedí na stole. Z tohoto důvodu je otázkou, diskutabilní, protože neexistuje žádný způsob, jak určit vzdálenost, aniž by předpoklad volného pádu.

Odpovězeno 02/07/2009 v 20:55
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more