2012-02-15 6 views
10

Il apple documentation for UIAcceleration class diceChe cosa misura esattamente l'accelerometro iPhone?

"Quando un dispositivo si posa ancora con la schiena su una superficie orizzontale, ciascun evento di accelerazione ha approssimativamente i seguenti valori:
x: 0
y: 0
z: -1
"

Ora, sono confuso! Come può l'accelerazione essere diversa da zero, quando si dice chiaramente che "il dispositivo è immobile"?

UPDATE

A giudicare dalle risposte, credo che questo dovrebbe essere chiamato qualcosa come 'forceometer' o 'gravitometer' e non accelerometro!

+0

Quindi, se lo giri intorno (sulla sua pancia) misurerà x: 0 y: 0 z: +1 –

+3

Un commento al tuo aggiornamento: il [principio di equivalenza] (http://en.wikipedia.org/wiki/Equivalence_principle) della teoria della relatività generale vi dirà che l'accelerazione su un corpo è equivalente alla gravitazione (semplicemente formulata). Quindi l'acceleratometro è, per me, buono come qualsiasi termine, anche se "forcemeter" probabilmente si avvicina di più al modo in cui funziona il dispositivo. Si noti che un [gravimetro] (http://en.wikipedia.org/wiki/Gravimeter) è in realtà un dispositivo leggermente diverso. – Evert

+0

@Evert iOS riporta la direzione in cui * accelererebbe * in assenza di una forza esterna che neutralizzi la gravità. Avrebbe più senso misurare quella forza esterna, ma invece iOS presenta confusamente un vettore gravitazionale di pseudo-accelerazione. Non solo la forza normale del terreno che neutralizza la gravità, ma tutte le forze sono invertite. Quindi forse dovrebbe essere chiamato un decelerometro. – Potatoswatter

risposta

7

ho trovato la risposta [nella guida CoreMotion riferimento, grazie to bensnider:

l'accelerometro misura la somma dei due vettori accelerazione: gravità e accelerazione utente. L'accelerazione dell'utente è l'accelerazione che l'utente impartisce al dispositivo.

6

Troverete le migliori risposte in datasheet dell'accelerometro utilizzato (LIS302DL).

+1

Link menzionato da @rokjarc è ormai morto. La ricerca di 'CD00135460.pdf' ha rivelato i seguenti collegamenti: [eng.auburn.edu] (http://www.eng.auburn.edu/~nelson/courses/elec5260_6260/LIS302DL%20MEMS%20Accelerometer.pdf), [myavr. info] (http://www.myavr.info/download/mystm-produkte/stm32f4-discovery/LIS302DL-MEMS_3d-I2C-Beschleunigungssensor-CD00135460.pdf) e [cs.smith.edu] (http: // www. cs.smith.edu/~emendelo/classes/spring12/csc360/lectures/accelGyro.pdf). – trejder

+0

@trejder: grazie, modifico la risposta di conseguenza. –

5

Misura la gravità. L'unità viene scelta in modo che la gravità, 9,81 m/s^2, sia uguale a 1 unità. Il segno indica come viene diretto l'asse del telefono. In altre parole, ciò che il telefono considera verso il basso.

Il telefono misura 0 come accelerazione in caduta libera. Non so quanto tu voglia lanciare il telefono su e giù per testarlo :)

+0

solo per aggiungere il link del documento ufficiale: https://developer.apple.com/library/ios/documentation/coremotion/reference/CMAccelerometerData_Class/Reference/Reference.html#//apple_ref/doc/c_ref/CMAcceleration –

12

Ottieni un -1 sull'asse Z perché la gravità agisce sul dispositivo, applicando un'accelerazione costante di 1G. Presumo che tu desideri l'accelerazione utente, che puoi ottenere dall'oggetto DeviceMotion utilizzando un gestore di movimento del dispositivo anziché un gestore di accelerazione. La proprietà userAcceleration filtra gli effetti della gravità sul dispositivo e fornisce solo quanto l'utente sta accelerando.

+0

I am just cercando di capire i concetti qui. Anche se il telefono sperimenta una forza dovuta alla gravità, quando è fermo non vi è alcun cambiamento nella sua velocità lungo qualsiasi direzione. Quindi l'accelerazione dovrebbe essere ancora zero, giusto? – gigahari

+0

quando fermo (o in movimento a velocità costante in direzione costante) misurerà (sentire) 1g diretto al centro della terra. Dovresti considerare queste 3 direzioni come vettori - la loro somma vettoriale sarebbe 1g e dalle loro dimensioni puoi calcolare come il dispositivo è inclinato. Come ha detto Ali: misurerebbe 0 in caduta libera - quando sul tavolo, "sente" la forza del tavolo che lo tiene in posizione :) –

+4

Il dispositivo è ancora tirato dalla gravità. La forza è lì. Jedis lo sa più di chiunque altro. – macbirdie

2

Quando sei seduto, la gravità ti trascina verso la sedia. Se non fosse per la sedia o il terreno per quella materia, cadrebbe giù con un'accelerazione di circa 9.8m/s^2. Affinché la sedia ti impedisca di cadere, deve agire con una forza nella direzione opposta con almeno lo stesso valore.

L'accelometro mostra il valore della forza di trazione ed è un vettore tridimensionale. In questo caso è diretto verso il basso. E il valore dato è espresso in G, unità di accelerazione per gravità moltiplicate per quel valore.

0

I rispondenti mancano del testo corretto che dovrebbe essere impostato per voi ... Il dispositivo è "immobile" solo relativamente a voi. In realtà non è affatto immobile. Il http://en.wikipedia.org/wiki/Centripetal_force di gravità dà (e tu) accelerazione centripeta. È reale, è ciò che ti impedisce di volare via dalla Terra su una tangente, ed è quello che l'accelerometro mostra diligentemente. (La Terra non è nulla di speciale - ruotiamo attorno al Sole anche ecc ecc, le cui accelerazioni centripete sono molto più piccole, ma sarebbero tutte mostrate da un accelerometro abbastanza sensibile.)