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.
Coloque el dispositivo donde desea obtener los datos del sensor.
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 son0
) y todavía no se han registrado datos (la propiedadInitialTimestamp
está vacía). Si su dispositivo no tiene un sensor en concreto, ese sensor siempre muestra un0
en la pantalla.InitialTimestamp
es la marca de tiempo del primer punto de datos recibido pormobiledev
. Todas las marcas de tiempo restantes para todos los sensores son relativas aInitialTimestamp
.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.
Puede empezar a registrar datos desde los sensores seleccionados activando la propiedad
Logging
del objetomobiledev
.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
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.Utilice propiedades de
mobiledev
para controlar la adquisición de sensores del dispositivo.Para detener la transmisión de datos de sensores, restablezca la propiedad
Logging
o elimine el objetomobiledev
.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
.
Propiedad | Descripción y valores |
---|---|
Connected | Mostrar el estado de la conexión entre MATLAB Mobile y el objeto
|
Logging | Mostrar y controlar el estado de la transmisión de datos desde el dispositivo a MATLAB. Los posibles valores son
Para activar o desactivar el registro:
|
InitialTimestamp | Tiempo en milisegundos, en formato
|
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
|
Acceleration | Lectura de aceleración actual en las coordenadas La aceleración se define en relación con los ejes |
AngularVelocity | Lectura de la velocidad angular actual en rotaciones La velocidad angular se define en relación con los ejes |
Orientation | Lectura de orientación actual en las coordenadas de La orientación se define en relación con los ejes 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 El campo magnético se define en relación con los ejes |
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:
|
AngularVelocitySensorEnabled | Activar o desactivar el sensor de velocidad. Para activar o desactivar el sensor:
|
MagneticSensorEnabled | Activar o desactivar el sensor de campo magnético. Para activar o desactivar el sensor:
|
OrientationSensorEnabled | Activar o desactivar el sensor de orientación. Para activar o desactivar el sensor:
|
PositionSensorEnabled | Activar o desactivar el sensor de posición. Para activar o desactivar el sensor:
|
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 Hzmedium
: 10 Hzlow
: 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.