Main Content

处理记录的传感器数据

此示例说明如何绘制从移动设备采集的方向数据。您可以在采集期间或采集后使用记录的传感器数据进行绘图和其他分析。

此示例假设您已在移动设备上安装并设置了 MATLAB® Mobile™,并已将其连接到 MathWorks Cloud。有关这些步骤的信息,请参阅在您的设备上安装 MATLAB Mobile登录到 Cloud

  1. 在您的移动设备上启动 MATLAB Mobile

  2. 如有提示,请登录到 Cloud。

  3. 传感器屏幕上,点击方向传感器。

  4. 在传感器设置中,点击流式传输至,然后选择 MATLAB

  5. 将设备放在所需的位置,以便发送传感器数据。

  6. 在 MATLAB 中,创建 mobiledev 对象 m

    m = mobiledev
    m = 
    mobiledev with properties:
    
                       Connected: 1
               Available Cameras: {'back' 'front'}
                         Logging: 0
                InitialTimestamp: ''
    
       AccelerationSensorEnabled: 0
    AngularVelocitySensorEnabled: 0
           MagneticSensorEnabled: 0
        OrientationSensorEnabled: 1
           PositionSensorEnabled: 0
                                                                    
    Supported functions

    在创建对象后显示的内容中,值 1 表示已启用或打开,0 表示未启用或关闭。在此示例中,您可以看到设备和 Cloud 已连接,但尚未记录数据。方向传感器显示为已启用,因为您在设备上选择了该传感器。

  7. 通过设置 Logging 属性,开始记录来自选定传感器的数据。

    m.Logging = 1

    该操作开始传输来自所有选定传感器的数据。您也可以点击设备上 MATLABMobile 中的开始按钮开始传输。

  8. 您可以使用 disp 函数随时查看对象属性显示。现在您已开始记录数据,显示的内容将包含详细信息。

    disp(m)
    mobiledev with properties:
    
                       Connected: 1
               Available Cameras: {'back' 'front'}
                         Logging: 1
                InitialTimestamp: '06-08-2014 13:45:56.529'
    
       AccelerationSensorEnabled: 0
    AngularVelocitySensorEnabled: 0
           MagneticSensorEnabled: 0
        OrientationSensorEnabled: 1
           PositionSensorEnabled: 0
    
    Current Sensor Values:
                    Acceleration: [0x3 double]  (m/s^2)
                 AngularVelocity: [0x3 double]  (rad/s)
                   MagneticField: [0x3 double]  (microtesla)
                     Orientation: [1.8102 0.0101 -0.0418]  (degrees)
    
           Position Data: 
                        Latitude: [0x1 double]  (degrees)
                       Longitude: [0x1 double]  (degrees)
                           Speed: [0x1 double]  (m/s)
                          Course: [0x1 double]  (degrees)
                        Altitude: [0x1 double]  (m)
              HorizontalAccuracy: [0x1 double]  (m)
                                                                     
    Supported functions

    在显示的内容中,您可以看到设备和 Cloud 已相互连接,并且正在记录数据。InitialTimestamp 值显示记录第一个数据包时的时间戳。显示传感器值,该值指示当前测量值。

  9. 采集完所需的数据量后,停止记录传感器数据。

    m.Logging = 0
  10. 您可以使用日志函数查看所有读数的完整日志。您可以记录期间使用这些函数,也可以在停止记录后使用。每种传感器类型都有一个日志函数:

    accellog - 记录的加速度数据

    angvellog - 记录的角速度数据

    magfieldlog - 记录的磁场数据

    orientlog - 记录的方向数据

    poslog - 记录的位置数据,包括纬度、经度、速度、航向、海拔和水平精度的数据点。

    请参阅设备方向,查看 XYZ 轴相对于设备的方位图。

    要从对象 m 获取记录的方向数据,请用变量 o 表示记录的方向数据,用变量 t 表示时间戳。

    [o, t] = orientlog(m);

    然后,您可以绘制数据图。

    plot(t, o) 

    Data plotted in MATLAB

    在本例中,方向数据来自将设备短距离移动几分钟所获得的数据。该图显示方向 (o) 对时间 (t) 的关系。

  11. 您可以保留日志以再次访问数据,也可以使用以下命令从 MATLAB 会话中丢弃日志:

    discardlogs(m)
  12. 完成会话后,删除该对象。

    clear m

相关主题