传感器数据流
控制传感器并采集数据
此示例说明一个控制移动设备传感器并从中采集数据的简单工作流。
此示例假设您已在移动设备上安装并设置了 MATLAB® Mobile™,并已将其连接到 MathWorks Cloud。如果没有,请参阅在您的设备上安装 MATLAB Mobile。
在您的移动设备上启动 MATLAB Mobile。
如有提示,请登录到 Cloud。
在传感器屏幕上,使用拨动开关打开要发送数据的传感器。
在传感器设置中,点击流式传输至,然后选择 MATLAB。
将设备放置在您要采集传感器数据的位置。
在 MATLAB 中,创建一个
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
在显示的内容中,
1
表示启用或打开,0
表示未启用或关闭。在此示例中,您可以看到设备和 Cloud 已连接,所有传感器都已启用(从“传感器”屏幕),但尚未记录数据。该设备包含所有五个传感器,但您的设备不一定全部包含。如果您的设备没有某特定传感器,则在显示的内容中,该传感器始终为0
。时间戳为空,因为尚未记录任何数据。InitialTimestamp
是mobiledev
收到的第一个数据点的时间戳。所有传感器的所有其他时间戳都与InitialTimestamp
相关。通过设置
Logging
属性,开始记录来自选定传感器的数据。m.Logging = 1
该操作开始传输来自所有选定传感器的数据。您也可以点击设备上 MATLABMobile 中的开始按钮开始传输。
现在您已开始记录数据,请使用
disp
函数查看mobiledev
对象。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
在显示的内容中,您可以看到设备和 Cloud 已连接,现在正在记录数据。现在,您还可以看到
InitialTimestamp
属性值;还显示了传感器值,该值为创建对象时的当前测量值。记录数据时,可以使用传感器读取属性显示任何传感器的当前值。
Acceleration
、AngularVelocity
、Orientation
和MagneticField
属性分别显示其传感器的当前读数。如果位置传感器正在记录数据,您可以使用Latitude
、Longitude
、HorizontalAccuracy
、Altitude
、Course
和Speed
属性获取单个位置读数。例如,要获取对象
m
的加速度传感器读数,请使用以下命令:m.Acceleration
ans = 0.6945 -0.2579 9.9338
要从位置传感器获取经度读数,请使用以下命令:
m.Longitude
ans = -71.3517
您可以在 MATLAB 中使用传感器控制属性来打开和关闭传感器。使用控制属性与切换 MATLABMobile 中的传感器按钮相同。每个控制属性包含两个值:
1
表示打开或已启用,0
表示关闭或已禁用。例如,要从 MATLAB 中关闭加速度传感器,请使用以下命令:m.AccelerationSensorEnabled = 0
要重新打开加速度传感器,请使用以下命令:
m.AccelerationSensorEnabled = 1
停止记录传感器数据。
m.Logging = 0
当您记录数据时,可以使用传感器读取属性来获取传感器的当前值,如步骤 7 所示。如果您要查看所有读数的完整日志,请使用日志函数。您可以在记录数据期间使用这些函数,也可以在停止数据记录后使用。每种传感器类型都有一个日志函数,例如,
accellog
从加速度传感器返回记录的加速度数据。要从对象
m
获取记录的加速度数据,请使用变量a
表示记录的加速度数据,使用变量t
表示时间戳。[a, t] = accellog(m);
然后,您可以绘制数据或进行其他数据处理。
完成会话后,删除该对象。
clear m