Sensor Data Streaming Demo
Control Sensors and Acquire Data
This example assumes that you have already installed and set up MATLAB® Mobile™ on your Android™ device and connected it to the MathWorks Cloud. For information about these steps, see Install MATLAB Mobile on Your Device and Sign In to the Cloud.
Start MATLAB Mobile on your Android device.
Sign in to the Cloud, if prompted.
On the Sensors screen of MATLAB Mobile, tap the sensors that you want to send data from.
Place the device where you want to acquire the sensor data, if a remote location.
In MATLAB, create a
mobiledev
object,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
In the display, a value of
1
means enabled or on, and0
means not enabled or off. In this example, you can see that the device and the Cloud are connected, and all the sensors are enabled (from the Sensors screen), but data is not being logged yet. This device contains all five sensors, but your device may not. If your device does not have a particular sensor, that sensor will always show a0
in the display. The timestamp is empty because no data has been logged yet.Begin logging data from the selected sensors by enabling the
Logging
property.m.Logging = 1
This action starts the transmitting of data from all selected sensors. You can also start transmission by tapping the Start button in MATLAB Mobile on the device.
Look at the object now that you have started logging data, using the
disp
function.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
In this display, you can see that the device and the Cloud are connected, and data is now being logged. You can also now see the
InitialTimestamp
property value, and the sensor values are displayed, indicating the current measurement value when you created the object.While you are logging data, you can display the current value of any sensor using the sensor reading properties. The
Acceleration
,AngularVelocity
,Orientation
, andMagneticField
properties display the current readings from their respective sensors. If the Position sensor is logging, you can get individual position readings using theLatitude
,Longitude
,HorizontalAccuracy
,Altitude
,Course
, andSpeed
properties.To get the current value from a sensor, use
<objectname>.<propertyname>
. For example, to get the acceleration reading, for objectm
:m.Acceleration
ans = 0.6945 -0.2579 9.9338
To get the longitude reading from the Position sensor:
m.Longitude
ans = -71.3517
You can turn the sensors on and off using the sensor control properties in MATLAB. This is the same as selecting or deselecting the sensor buttons in MATLAB Mobile on the device, as you did in step 2. Each control property has two possible values:
1
for on or enabled, and0
for off or disabled. For example, to turn the Acceleration sensor off from MATLAB:m.AccelerationSensorEnabled = 0
To turn the Acceleration sensor back on:
m.AccelerationSensorEnabled = 1
Stop logging sensor data.
m.Logging = 0
You can use the sensor reading properties to get the current value of a sensor while you are logging, as shown in step 7. If you want to see the entire log of all readings, use the log functions. You can use these functions while you are still logging, or after you stop logging. Each sensor type has a log function, for example,
accellog
returns the logged acceleration data from the Acceleration sensor.To get the logged acceleration data from object
m
, assign the variablea
for the logged acceleration data andt
for the timestamps.[a, t] = accellog(m);
You can then plot the data or do other processing of the data.
When you are done with the session, delete the object.
clear m