主要内容

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

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

设置移动设备

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

从MATLAB移动设置登录到MathWorks®Cloud。

创建到移动设备的连接

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

m = mobiledev;

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

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

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

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

开始获取数据

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

m.Logging = 1;

该设备现在正在传输传感器数据。

在开始记录时,设备平躺在桌子上,屏幕朝上。角速度传感器的正y轴被定义为从设备的顶部向外延伸。定位传感器的正滚动定义为面向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的第一个数据点的绝对时间。它作为使用函数访问的所有传感器数据的时间戳的参考点angvellog而且orientlog,单位是相对于InitialTimestamp

转换为绝对时间戳

将所有传感器时间戳转换为绝对时间戳InitialTimestamp值转换为datetime对象。以秒为单位的各个传感器时间戳被转换为.这简化了将相对时间戳转换为绝对时间戳的日期算术。

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

绘制绝对时间下的多个传感器图

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

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

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

清理

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

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