主要内容

从移动设备中获取和绘制角速度和方向数据

这个例子展示了如何在一个时间轴上绘制来自Android™或iOS移动设备上多个传感器的数据。角速度和方向的测量将从设备中收集,并绘制在绝对时间内。这将允许基于实际测量时间可视化两个传感器之间的数据相关性。

设置你的移动设备

为了从MATLAB®中的移动设备接收数据,您需要在移动设备上安装和设置MATLAB mobile™应用程序。

从MATLAB移动设置登录MathWorks®云。

创建到移动设备的连接

命令屏幕的MATLAB移动,使用mobiledev命令创建代表您的移动设备的对象。

m = mobiledev;

应该会显示显示的输出联系:1,表示mobiledev对象已成功建立到应用程序的连接。

准备从多个传感器的数据采集

使用适当的mobiledev属性使能设备上的传感器。

m.AngularVelocitySensorEnabled = 1;m.OrientationSensorEnabled = 1;

开始获取数据

启用传感器后,将传感器Matlab Mobile的屏幕将显示由传感器测量的当前数据。的日志记录属性允许开始将传感器数据发送到mobiledev

m.Logging = 1;

该装置现在正在传输传感器数据。

在日志记录开始时,设备在桌子上平放,屏幕朝上。角速度传感器的正y轴定义为从装置的顶部延伸。当面对轴的正方向时,定向传感器的正辊被定义为绕Y轴的顺时针旋转。

在记录过程中,设备会围绕y轴朝上和朝下翻转几次。这就产生了y轴角速度的变化和滚动方向的变化。

停止获取数据

日志记录再次使用属性以使设备停止将传感器数据发送到mobiledev

m.Logging = 0;

检索记录数据

每个传感器的数据都可以从中访问mobiledev对象。因为角速度和方向数据可能不会同时被设备记录,所以会创建两个不同的时间戳变量。

(av, tav) = angvellog (m);[o] = orientlog (m);

绘制原始传感器数据

来自传感器的感兴趣数据分离为单独的变量并绘制。

yAngVel = av (:, 2);滚= o (: 3);情节(yAngVel,抗议者,卷);传奇(“Y”角速度,“滚”);包含(“相对时间(s)”);

数据以秒为单位绘制mobiledevInitialTimestamp财产。该属性提供了传感器记录的第一个数据点的绝对时间并发送给MATLAB。它作为使用函数访问的所有传感器数据的时间戳的参考点angvellogorientlog,这相对于几秒钟InitialTimestamp

转换为绝对时间戳

若要将所有传感器时间戳转换为绝对时间戳,则InitialTimestamp值转换为约会时间对象。以秒为单位的单个传感器时间戳被转换为。这简化了将相对时间戳转到绝对时间戳的日期算术。

tInit = datetime (m。InitialTimestamp,“InputFormat”,“dd-MM-yyyy HH: mm: ss。瑞士的);tAngVel = tInit + seconds(tav);tOrient = tInit + seconds(to);

在绝对时间内绘制多个传感器

两个传感器现在都有使用的绝对时间戳表示约会时间。这使得传感器读数中重要事件发生的实际时间很容易可视化。

方向传感器使用的单位是度,而角速度传感器使用的单位是弧度每秒。再次之前策划,yAngVel转换为每秒度。

yAngVelDeg = yAngVel * 180/pi;情节(tAngVel yAngVelDeg、tOrient卷);传奇(“Y”角速度,“滚”);包含('绝对的时间(s)');

清理

关闭已启用的传感器并清除mobiledev

m.AngularVelocitySensorEnabled = 0;m.OrientationSensorEnabled = 0;清晰的;