Main Content

Registrar datos del acelerómetro

Este ejemplo muestra cómo manipular y visualizar datos procedentes del acelerómetro de un smartphone o tableta.

El acelerómetro es un sensor que mide la tasa de cambio de la velocidad: la aceleración. Utiliza un sistema de coordenadas cartesianas tridimensional y devuelve valores de aceleración para cada uno de los ejes mostrados en la siguiente figura.

Puede capturar con facilidad los datos del acelerómetro en MATLAB Mobile utilizando el menú Sensores.

Para registrar los datos del acelerómetro, use los siguientes pasos:

  1. Seleccione Transmitir a registro.

  2. Ajuste la tasa de muestreo (la predeterminada es 10 Hz).

  3. Encienda el interruptor Aceleración.

  4. Pulse EMPEZAR.

Una vez recopilados los datos:

  1. Pulse PARAR.

  2. Introduzca el nombre del archivo que desea guardar (se proporciona un nombre predeterminado).

  3. Si tiene activada la opción Subida automática, el archivo se subirá a su MATLAB Drive como un archivo .mat a su Carpeta de subida configurada (la predeterminada es MATLAB Drive/MobileSensorData).

Este ejemplo usa una sesión pregrabada con las siguientes actividades:

  • De pie

  • Andando

  • Corriendo

  • Esprintando

Los datos se recopilaron con el smartphone unido al pecho del atleta con orientación retrato y la pantalla mirando hacia delante.

Para visualizar los datos, cargue primero el archivo .mat de los datos del sensor capturados.

load fieldActivities.mat

Lea los datos en las variables x, y y z y las marcas de tiempo en timestamp.

x = Acceleration.X;
y = Acceleration.Y;
z = Acceleration.Z;
timestamp = Acceleration.Timestamp;

Con los valores de aceleración en las variables cargadas, calcule la magnitud del vector de los tres ejes combinados.

combinedAccel = sqrt(x.^2+y.^2+z.^2);

Inicialice un vector t con ceros (recomendado para el rendimiento).

t = zeros(size(timestamp));

Convierta el tiempo absoluto a valores relativos configurando el inicio como referencia.

for n = 1 : length(timestamp)
  t(n) = seconds(timestamp(n) - timestamp(1));
end

Por último, use el comando plot para mostrar los resultados.

plot(t, combinedAccel)
xlabel('Time (s)')
ylabel('Acceleration (m/s^2)')

Puede identificar con facilidad las cuatro actividades distintas en la gráfica. Comienza con la posición de pie, donde la aceleración es casi constante a 9,8 m/s^2 (gravedad), a continuación, tanto la amplitud como la frecuencia aumentan, a medida que la actividad progresa a las posiciones andando, corriendo y esprintando.

Si desea ver los resultados individuales para cada eje, use el siguiente control en tiempo real.

Seleccione el eje para ver los valores de aceleración en esa dirección.

plot (t,x)
title('Acceleration during 4 activities')
xlabel('Time (s)')
ylabel('Acceleration (m/s^2)')