Sensor Data Collection with MATLAB Mobile
You can stream data from your mobile device sensors to your MATLAB®
Online™, or a MATLAB session on a desktop or laptop computer. MATLAB
Mobile sends the data in real-time with a WiFi or cellular connection to
MATLAB running in the MathWorks® Cloud. You can perform MATLAB operations on the sensor data in MATLAB, MATLAB
Mobile, or MATLAB
Online, which provide the MATLAB command-line interface with the ability to interact with device
sensors. To connect to sensors on the device and collect data, you create a
mobiledev object in MATLAB.
You can also acquire sensor data locally on your mobile device, with or without a network connection. This is an alternative method of collecting the sensor data instead of streaming it from the device to the Cloud. This is especially useful if you want to collect sensor data while your device does not have a network connection. For examples of using this method of acquisition, see Log Sensor Data Locally.
Use MATLAB to process sensor data in various ways, including creating plots. For an example of acquiring data and plotting it, see Process Logged Sensor Data.
You can also access the camera and acquire images from your mobile device in MATLAB, MATLAB Mobile, and MATLAB Online. You can set camera properties including resolution, autofocus, and flash. For an example, see Acquire Images from a Mobile Device Camera. For an example of processing acquired images, see Classify Images from Mobile Device Camera Using Pretrained Network.
Requirements for Using Sensors
To use mobile device sensors with MATLAB Mobile, make sure you have the following:
Installation of MATLAB Mobile on your mobile device. See Install MATLAB Mobile on Your Device.
To stream or upload sensor data to the MathWorks Cloud, you must have a MathWorks Account. If you do not have an account, you can set one up in MATLAB Mobile, MATLAB Online, or at Create MathWorks Account.
To access mobile device sensors from MATLAB on a desktop or laptop computer, you must install one of the following support packages appropriate for your device:
MATLAB Support Package for Apple iOS Sensors
MATLAB Support Package for Android™ Sensors
These support packages are available in the Add-on Explorer.
MATLAB Mobile Sensors Screen
To open the Sensors screen in MATLAB Mobile, tap Sensors on the menu.
At the top of the sensor display are the Sensor settings. See Sensor Settings.
Below the settings are the sensor displays. They are arranged in the following order, and show these measurements:
Microphone — Audio data, with sampling rate and recording level.
Acceleration — Acceleration reading in
Zcoordinates, in m/s2 (meters per second squared)
Magnetic Field — Magnetic field reading in
Zcoordinates, in microtesla
Orientation — Position reading in
Zcoordinates, in degrees, for azimuth, pitch, and roll
Angular Velocity — Angular velocity reading in
Zrotations, in radians per second
Position — Data points representing latitude, longitude, speed, course, altitude, and horizontal accuracy. Position data is obtained from GPS, Wi-Fi®, or the cellular network, using whichever is available. The measurements indicate:
Latitude in degrees relative to the equator, with positive values indicating latitudes north of the equator
Longitude in degrees relative to the zero meridian, with positive values extending east of the meridian
Speed in m/s (meters per second)
Course in degrees relative to true north
Altitude in meters above sea level
Horizontal Accuracy in meters defined by a circle around the latitude and longitude
Tap the toggle switches to turn on and off individual sensors.
When you turn on a sensor, the measurement readings begin and are displayed in each sensor's section. In this example, Acceleration and Magnetic Field are turned on.
Note: The microphone option does not appear on iOS devices.
After you have turned on one or more sensors, use the Start button to log data. To send the data to MATLAB on the MathWorks Cloud instead, go to the sensor settings and change the Stream to setting. See Stream Sensor Data with Mobile Device Controls.
You can also start the transmission of data from MATLAB programmatically using the
Logging property of the
mobiledev object. See Stream Sensor Data with MATLAB Object Properties. You must
enable MATLAB programmatic access first in sensor settings.
Use the Sensors settings to manage sensor data collection on your device. The sensor settings appear before the sensor displays.
The options are:
Stream to — Select either MATLAB (in the Cloud) or Log.
View logs on MATLAB Drive — Displays a list of sensor logs uploaded to your MATLAB Drive™
Configure (also available via Sensors > More)
Sensor Access— Controls MATLAB access to the sensors. The access needs to remain on to control the sensors and data streaming from MATLAB.
Camera — Controls MATLAB access to the cameras. This option is available when Sensor Access is enabled, and needs to remain on to control camera input from MATLAB.
Acquire Data in Background (Android) — This setting is off by default, but you can turn it on to continue to send sensor data when the application goes into the background on the device.
Send Position Data in Background (iOS) — This setting is off by default, but you can turn it on to continue to send Position data when the application goes into the background on the device. iOS background acquisition is limited to only Position data.
Upload Folder — The destination folder for uploading log files. The default folder is
MATLAB Drive/MobileSensorData. You can change the upload folder in this setting.
Auto Upload — This setting determines how data log files are uploaded to MATLAB Drive.
Enabled — If Auto Upload is on, and you have a network connection on your device, log files are automatically uploaded to MATLAB Drive. If Auto Upload is on and you do not currently have a network connection, the files will automatically upload the next time the device detects a network connection (WiFi or cellular, if selected).
Disabled — If Auto Upload is off, you must manually upload the file to your MATLAB Drive. See Transfer Sensor Logs.
Logs on Your Device — Displays a list of sensor logs on your device. Logs that have already been successfully uploaded to your MATLAB Drive display a successful Cloud icon . When there is a failure uploading a log file, this display shows a failure Cloud icon .
Sample rate — Enter the sample rate to apply to the following sensors: acceleration, magnetic field, orientation, and angular velocity.
Tap More to access the same options shown above in Sensors > Sensor Logs > Configure.
The Acceleration, Angular Velocity, Magnetic Field, and Orientation sensors all
log data in relation to the
Z axes. This diagram shows these axes relative to the
Note that the Z axis is a positive value when the device is lying face-up flat on a surface. This is by design and is consistent with MATLAB conventions. When the device lies flat on a surface, the acceleration value along the Z axis is +9.81, which corresponds to the acceleration of the device (0 m/s^2) minus the acceleration of gravity (-9.81 m/s^2).