Spanish Calcular la velocidad aproximada en KMH con el acelerómetro?

deneus

Member
Licensed User
Hola, alguien sabe algún ejemplo para calcular la velocidad aproximada en KMH con el acelerómetro?

Gracias
 

bgsoft

Well-Known Member
Licensed User
Hola

El acelerómetro te da el valor en m/s^2 , tu podrias hacer el cálculo partiendo de eso.

Saludos
 

cas6678

Active Member
Licensed User
Se me ocurre que complicado puesto que los acelorometros miden solo eso: aceleraciones.

Una vez que la acelaracion que ha dado origen al movimiento cesa el acelerometro marcara sobre ese eje 0 con independencia de cual sea la velocidad.

En teoria si que se puede: el movimiento rectilineo uniformemente acelerado se calcula asi:

Velocidad final (m/s) = Velocidad inicial (m/s) + Aceleracion (m/s^2) x Tiiempo (s)

Claro que las condiciones teoricas implican que:

.) El movimiento sea rectilineo
.) Que la aceleracion sea en alguno de los ejes de los acelerometros o en su defecto calcularla en funcion de dos o tres de estos ejes
.) Que la aceleracion sea constante o en su defecto dividirla en n segmentos constantes

...dificil me parece
 

deneus

Member
Licensed User
Gracias por la respuesta.
Si tenéis algún ejemplo de implementación con esas formulas?

Gracias.
 

JordiCP

Well-Known Member
Licensed User
Suponiendo que se cumplen los requisitos comentados por @cas6678 , la fórmula quedaria

velocidad(T1) = velocidad(T0) + aceleracion_m(T1) * (T1-T0)

donde:
T0 es el anterior instante donde obtuviste datos del acelerómetro
T1 es el instante actual donde también has obtenido datos
la diferencia (T1-T0) se mide en segundos (suponiendo que la aceleracion esté en m/s^2)
aceleracion_m(Ti) es la aceleracion medida respecto al eje que estás considerando. Los ejes son relativos a la posicion por defecto del teléfono. Por ello, si el teléfono va cambiando de posición, todavía es más difícil

Lo que no me fío yo mucho es de la exactitud del acelerómetro, por lo que este cálculo puede ir acumulando muchos errores

¿Por qué no lo pruebas con el GPS en vez de con el acelerómetro?

velocidad(T1) = distancia(posicion(T1) - posicion(T0))/(T1-T0) ...
 

bgsoft

Well-Known Member
Licensed User
Hola

Una vez que la acelaracion que ha dado origen al movimiento cesa el acelerometro marcara sobre ese eje 0 con independencia de cual sea la velocidad.
Inicias una variable con valor 0 ó -1, miras el valor actual del acelerometro, si es mayor que la variable lo guardas, si no lo ignoras, de esa forma tendras el valor máximo de aceleración.

Saludos
 

cas6678

Active Member
Licensed User
Gracias por la respuesta.
Si tenéis algún ejemplo de implementación con esas formulas?

Gracias.
Si mides una aceleracion contante (a) durante un tiempo (t) y partes de una velocidad determianda (v0), el tema te queda asi:

velocidad final = V0 + (a x t)

Si por ejemplo:
v0= 0 (reposo)
a = 5 m/s2 (la aceleracion constante que has medido durante un tiempo determinado (t)
t = 7 s (el tiempo durante el cual has medido la aceleracion constante (a)

Velocidad final = (0 + 5 x 7)
Velocidad final = 35 m/s. (126 KMH) (35*3600/1000)

Lo que comentaba que era dificil es que durante los 7 segundos del ejemplo la aceleracion sea siempre de 5 m/s2. Lo normal sera que la acelaracion aumente desde 0 hasta un maximo y luego disminuya hasta 0 por lo que deberias poner infinitas formulas para medir cada segmento de tiempo con acelaracion diferente.

Los aviones llevan un sistema de navegacion denominado inercial que trabaja basicamente de esta forma, como veras en el apartado "desventajas", el gran problema que tienen es la acumulacion del error por su falta de precision.

http://es.wikipedia.org/wiki/Unidad_de_medición_inercial
 

klaus

Expert
Licensed User
You can forget trying to calculate the speed using the accelerometer.
The result will be much too unaccurate.
Use the GPS you get the speed with Location.Speed.
The unit is meters/second.
To get km/h multiply by 3.6.
 
Last edited:
Top