Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Transmitir datos de sensores con propiedades de objeto de MATLAB

Este ejemplo muestra cómo transmitir datos desde un dispositivo móvil a MATLAB®, que se está ejecutando en MathWorks®, o a su ordenador con una conexión wifi o de móvil. Para comunicarse con el dispositivo móvil y obtener datos de los sensores, debe crear el objeto mobiledev en MATLAB. No puede registrar datos de sensores hasta que no cree el objeto.

Activar la transmisión de datos de sensores

Inicie sesión en MathWorks Cloud, si se solicita.

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

  2. En MATLAB cree un objeto mobiledev, m.

    m = mobiledev
    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 que se muestra cuando crea el objeto:

    • 0: desactivado, apagado o el sensor no está disponible en este dispositivo.

    • 1: activado o encendido.

    En este ejemplo, puede ver que el dispositivo y el objeto mobiledev están conectados, pero los sensores no están activados (todos los valores de sensores son 0) y todavía no se han registrado datos (la propiedad InitialTimestamp está vacía). Si su dispositivo no tiene un sensor en concreto, ese sensor siempre muestra un 0 en la pantalla.

    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.

  3. Active uno o varios sensores.

    m.MagneticSensorEnabled=1

    Si está utilizando el sensor de posición, active el acceso a la ubicación para MATLAB en la configuración de su dispositivo.

  4. Puede empezar a registrar datos desde los sensores seleccionados activando la propiedad Logging del objeto mobiledev.

    m.Logging = 1

    Esta acción inicia la transmisión de datos desde los sensores seleccionados.

    Después de empezar a trasmitir datos, una pantalla del objeto muestra valores actuales:

    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
  5. En esta pantalla, puede ver que el dispositivo y la nube están conectados y, que ahora, los datos se están registrando. Además, el valor de la propiedad InitialTimestamp y los valores de los sensores también se muestran, indicando el valor de medición del momento en el que creó el objeto.

  6. Utilice propiedades de mobiledev para controlar la adquisición de sensores del dispositivo.

  7. Para detener la transmisión de datos de sensores, restablezca la propiedad Logging o elimine el objeto mobiledev.

    clear m

Controlar la adquisición de sensores

MATLAB Mobile™ incluye propiedades que muestran valores de sensores actuales, activan y desactivan sensores, activan y desactivan el registro, establecen la tasa de muestreo, y muestran la conexión y el estado de registro.

Puede utilizar las siguientes propiedades con el objeto mobiledev.

PropiedadDescripción y valores
Connected

Mostrar el estado de la conexión entre MATLAB Mobile y el objeto mobiledev en MATLAB. Solo lectura. Los posibles valores son 0 para no conectado y 1 para conectado. Para mostrar el estado de conexión para un objeto mobiledev m:

m.Connected

Logging

Mostrar y controlar el estado de la transmisión de datos desde el dispositivo a MATLAB. Los posibles valores son 0 para no registrando y 1 para registrando. Para mostrar el estado de registrando para un objeto mobiledev m:

m.Logging

Para activar o desactivar el registro:

m.Logging = 1 o m.Logging = 0

InitialTimestamp

Tiempo en milisegundos, en formato dd-mm-yyyy HH:MM:SS.FFF, cuando el primer punto de datos se transfirió desde el dispositivo al objeto mobiledev. Para mostrar la marca de tiempo inicial para un objeto mobiledev m:

m.InitialTimestamp

SampleRate

Tasa de muestreo de la adquisición desde su dispositivo, en Hz. El valor es doble y debe estar en el intervalo de 0 a 100 Hz. La tasa de muestreo predeterminada es 10 Hz. Además de configurar un valor numérico específico, también puede usar los valores de vector de caracteres 'high', 'medium' y 'low', que tienen los siguientes valores:

high 100 Hz

medium 10 Hz

low 1 Hz

Acceleration

Lectura de aceleración actual en las coordenadas X, Y y Z, en m/s^2 (metros por segundo al cuadrado).

La aceleración se define en relación con los ejes X, Y y Z. Si coloca el dispositivo sobre una mesa boca arriba, el eje positivo X se extiende más allá del lado derecho del dispositivo, el eje positivo Y se extiende más allá de la parte superior y el eje positivo Z se extiende más allá de la parte frontal del dispositivo. Esto es así independientemente de la orientación del dispositivo.

AngularVelocity

Lectura de la velocidad angular actual en rotaciones X, Y y Z, en radianes por segundo.

La velocidad angular se define en relación con los ejes X, Y y Z y en notación estándar de vectores de rotación a la derecha. Si coloca el dispositivo sobre una mesa boca arriba, el eje positivo X se extiende más allá del lado derecho del dispositivo, el eje positivo Y se extiende más allá de la parte superior y el eje positivo Z se extiende más allá de la parte frontal del dispositivo. Esto es así independientemente de la orientación del dispositivo.

Orientation

Lectura de orientación actual en las coordenadas de X, Y y Z, en grados, para azimut, elevación e inclinación.

La orientación se define en relación con los ejes X, Y y Z. Si coloca el dispositivo sobre una mesa boca arriba, el eje positivo X se extiende más allá del lado derecho del dispositivo, el eje positivo Y se extiende más allá de la parte superior y el eje positivo Z se extiende más allá de la parte frontal del dispositivo. Esto es así independientemente de la orientación del dispositivo.

Azimut es el ángulo entre el eje positivo Y y el norte magnético, y su intervalo es de entre -180 y 180 grados.

La inclinación positiva se define cuando el dispositivo se encuentra colocado en posición horizontal sobre una superficie y el eje positivo Z se inclina hacia el eje positivo X, con un intervalo de entre -180 y 180 grados.

La inclinación positiva se define cuando el dispositivo se encuentra colocado en posición horizontal sobre una superficie y el eje positivo Z se inclina hacia el eje positivo Y, y su intervalo está entre -90 y 90 grados.

MagneticField

Lectura del campo magnético actual en las coordenadas X, Y y Z, en microteslas.

El campo magnético se define en relación con los ejes X, Y y Z. Si coloca el dispositivo sobre una mesa boca arriba, el eje positivo X se extiende más allá del lado derecho del dispositivo, el eje positivo Y se extiende más allá de la parte superior y el eje positivo Z se extiende más allá de la parte frontal del dispositivo. Esto es así independientemente de la orientación del dispositivo.

Latitude

Lectura de latitud actual, en grados relativos al ecuador, con valores positivos que indican latitudes al norte del ecuador.

Longitude

Lectura de longitud actual, en grados relativos al meridiano cero, con valores positivos que se extienden al este del meridiano.

HorizontalAccuracy

Precisión horizontal actual, definida en metros por un círculo alrededor de la latitud y la longitud.

Altitude

Lectura actual de altitud, en metros por encima del nivel del mar.

Course

Lectura actual de rumbo, en grados relativos al norte verdadero.

Speed

Lectura actual de velocidad, en m/s (metros por segundo).

AccelerationSensorEnabled

Activar o desactivar el sensor de aceleración.

Para activar o desactivar el sensor:

m.AccelerationSensorEnabled = 1

m.AccelerationSensorEnabled = 0

AngularVelocitySensorEnabled

Activar o desactivar el sensor de velocidad.

Para activar o desactivar el sensor:

m.AngularVelocitySensorEnabled = 1

m.AngularVelocitySensorEnabled = 0

MagneticSensorEnabled

Activar o desactivar el sensor de campo magnético.

Para activar o desactivar el sensor:

m.MagneticSensorEnabled = 1

m.MagneticSensorEnabled = 0

OrientationSensorEnabled

Activar o desactivar el sensor de orientación.

Para activar o desactivar el sensor:

m.OrientationSensorEnabled = 1

m.OrientationSensorEnabled = 0

PositionSensorEnabled

Activar o desactivar el sensor de posición.

Para activar o desactivar el sensor:

m.PositionSensorEnabled = 1

m.PositionSensorEnabled = 0

Propiedades del objeto

La propiedad Connected es de solo lectura y muestra el estado de la conexión entre MATLAB Mobile y el objeto mobiledev en MATLAB. Los posibles valores son 0 para no conectado y 1 para conectado.

Para mostrar el estado de la conexión para un objeto mobiledev m:

m.Connected

La propiedad Logging muestra el estado de la transmisión de datos desde el dispositivo a MATLAB. Los posibles valores son 0 para no registrando y 1 para registrando.

Para mostrar el estado de registrando para un objeto mobiledev m:

m.Logging

La propiedad Logging también se usa para activar y desactivar el registro. Para empezar a registrar datos desde los sensores seleccionados, active la propiedad.

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.

Deje de registrar datos desde los sensores seleccionados desactivando la propiedad Logging.

m.Logging = 0

Esta acción detiene la transmisión de datos desde todos los sensores seleccionados. También puede detener la transmisión pulsando el botón Parar en MATLAB Mobile.

Propiedades de lectura del sensor

Utilice las propiedades de lectura del sensor para mostrar la lectura actual del sensor. En cualquier momento, puede mostrar la lectura actual de cualquiera de los sensores que se están registrando. 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, Speed, Course, Altitude y HorizontalAccuracy.

Para obtener el valor actual de un sensor, utilice <objectname>.<propertyname>. Por ejemplo, para obtener la lectura de aceleración del objeto m:

m.Acceleration

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

m.Longitude

Consulte Orientación de dispositivo para ver un diagrama que muestra los ejes X, Y y Z relativos al dispositivo.

Propiedades de control del sensor

MATLAB Mobile tiene cinco propiedades para controlar los sensores. Puede llevar a cabo las mismas acciones seleccionando o deseleccionando 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 activar el sensor de aceleración:

m.AccelerationSensorEnabled = 1

Para desactivar el sensor de aceleración:

m.AccelerationSensorEnabled = 0

Propiedad de tasa de muestreo

Esta propiedad es la tasa de muestreo de la adquisición de datos desde su dispositivo, en Hz. El valor es un doble y debe ser un número positivo en el intervalo de 0 a 100 Hz. La tasa de muestreo predeterminada es 10 Hz.

Además de configurar un valor numérico específico, también puede usar los valores de vector de caracteres 'high', 'medium' y 'low'. Esta configuración utiliza los siguientes valores:

  • high: 100 Hz

  • medium: 10 Hz

  • low: 1 Hz

Puede cambiar la tasa de muestreo incluso después de empezar a registrar datos. Por ejemplo, para cambiar la tasa de muestreo a un valor específico en Hz para el objeto mobiledev m:

m.SampleRate = 100

Para cambiar la tasa de muestreo a uno de los valores de vector de caracteres:

m.SampleRate = 'low'

A partir de la versión R2016a, puede utilizar los valores del vector de caracteres o especificar un valor numérico.

Temas relacionados