Main Content

Transmisión de datos de sensores

Controlar sensores y obtener datos

Este ejemplo muestra un flujo de trabajo sencillo para controlar sensores de datos en dispositivos móviles y obtener datos desde ellos.

Este ejemplo asume que ya ha instalado y configurado MATLAB® Mobile™ en su dispositivo móvil y ya lo ha conectado a MathWorks Cloud. Si todavía no lo ha hecho, consulte Instalar MATLAB Mobile en su dispositivo.

  1. Inicie MATLAB Mobile en su dispositivo móvil.

  2. Inicie sesión en la nube si se solicita.

  3. En la pantalla Sensores, encienda los sensores desde los que desea recopilar datos con los interruptores.

  4. En la configuración de sensores, pulse Transmitir a y, después, seleccione MATLAB.

  5. Coloque el dispositivo donde desea obtener los datos del sensor.

  6. En MATLAB cree un objeto mobiledev, m.

    m = mobiledev
    m = 
    mobiledev with properties:
    
                       Connected: 1
               Available Cameras: {'back' 'front'}
                         Logging: 0
                InitialTimestamp: ''
    
       AccelerationSensorEnabled: 1
    AngularVelocitySensorEnabled: 1
           MagneticSensorEnabled: 1
        OrientationSensorEnabled: 1
           PositionSensorEnabled: 1
    
    Supported functions

    En la pantalla, un valor de 1 significa activado o encendido, y 0 significa desactivado o apagado. En este ejemplo, puede ver que el dispositivo y la nube no están conectados, y que todos los sensores están activados (desde la pantalla Sensores), pero todavía no se están registrando datos. Este dispositivo contiene los cinco sensores, pero puede que su dispositivo no los contenga. Si su dispositivo no tiene un sensor en concreto, ese sensor siempre mostrará un 0 en la pantalla. La marca de tiempo está vacía porque todavía no se han registrado datos.

    InitialTimestamp es la marca de tiempo del primer punto de datos recibido por mobiledev. Todas las marcas de tiempo restantes para todos los sensores son relativas a InitialTimestamp.

  7. Empiece a registrar datos desde los sensores seleccionados ajustando la propiedad Logging.

    m.Logging = 1

    Esta acción inicia la transmisión de datos desde todos los sensores seleccionados. También puede iniciar la transmisión pulsando el botón Empezar en MATLAB Mobile en el dispositivo.

  8. Ahora que ha empezado a registrar datos, visualice el objeto mobiledev con la función disp.

    disp(m)
    mobiledev with properties:
    
                       Connected: 1
               Available Cameras: {'back' 'front'}
                         Logging: 1
                InitialTimestamp: '06-08-2014 13:45:56.529'
    
       AccelerationSensorEnabled: 1
    AngularVelocitySensorEnabled: 1
           MagneticSensorEnabled: 1
        OrientationSensorEnabled: 1
           PositionSensorEnabled: 1
    
    Current Sensor Values:
                    Acceleration: [0.27 0.23 -10.19]  (m/s^2)
                 AngularVelocity: [-0.22 0.07 0.06]   (rad/s)
                   MagneticField: [3.56 1.56 -48.19]  (microtesla)
                     Orientation: [85.91 -27.1 0.35]  (degrees)
    
           Position Data: 
                        Latitude: 41.29  (degrees)
                       Longitude: -72.35  (degrees)
                           Speed: 25  (m/s)
                          Course: 83.6  (degrees)
                        Altitude: 200.1  (m)
              HorizontalAccuracy: 9.0  (m)
                                                                     
    Supported functions

    En esta pantalla, puede ver que el dispositivo y la nube están conectados y, que ahora, los datos se están registrando. Ahora también puede ver el valor de propiedad InitialTimestamp y se muestran los valores de los sensores, indicando el valor de las mediciones actuales cuando creó el objeto.

  9. Mientras está registrando datos, puede mostrar el valor actual de cualquier sensor utilizando las propiedades de lectura de sensor. Las propiedades Acceleration, AngularVelocity, Orientation y MagneticField muestran las lecturas actuales desde sus respectivos sensores. Si el sensor de posición está registrando, puede obtener lecturas de posición individuales utilizando las propiedades Latitude, Longitude, HorizontalAccuracy, Altitude, Course y Speed.

    Por ejemplo, para obtener la lectura del sensor de aceleración para el objeto m:

    m.Acceleration
    ans =
    
        0.6945   -0.2579    9.9338

    Para obtener la lectura de longitud del sensor de posición:

    m.Longitude
    ans =
    
        -71.3517
  10. Puede encender y apagar los sensores utilizando las propiedades de control del sensor en MATLAB. Utilizar las propiedades de control es lo mismo que cambiar los botones de sensor en MATLAB Mobile. Cada propiedad de control tiene dos posibles valores; 1 para encendido o activado y 0 para apagado o desactivado. Por ejemplo, para apagar el sensor de aceleración desde MATLAB:

    m.AccelerationSensorEnabled = 0

    Para volver a encender el sensor de aceleración:

    m.AccelerationSensorEnabled = 1
  11. Dejar de registrar datos de sensores.

    m.Logging = 0
  12. Puede usar las propiedades de lectura de sensor para obtener el valor actual de un sensor mientras está registrando datos, como se muestra en el paso 7. Si desea ver el registro completo con todas las lecturas, utilice las funciones de registro. Puede usar estas funciones mientras está registrando datos o después de detenerse. Cada tipo de sensor tiene una función de registro. Por ejemplo, accellog devuelve los datos registrados de aceleración desde el sensor de aceleración.

    Para obtener los datos registrados de aceleración desde el objeto m, asigne la variable a a los datos registrados de aceleración y t a las marcas de tiempo.

    [a, t] = accellog(m);

    Luego, si lo desea, puede representar los datos o realizar otro procesado de datos.

  13. Cuando termine con la sesión, elimine el objeto.

    clear m

Temas relacionados