从移动设备获取和绘制角速度和方向数据
这个例子展示了如何在一个时间轴中绘制来自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)”);
数据是以秒为单位绘制的mobiledev
的InitialTimestamp
财产。该属性提供传感器记录并发送到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;清晰的米;