MATLAB社区

MATLAB,社区等

用MATLAB Mobile从Android设备传感器获取数据

有了新的MATLAB®Android™传感金宝app器支持包,您现在可以使用MATLAB Mobile™从Android设备上的传感器获取数据。这些数据可以发送到计算机上运行的MATLAB会话,以便进一步分析和可视化。

内容

你会问,什么数据?

在Android设备上,MATLAB Mobile支持从运动传感器(金宝app如加速度计)和位置传感器(如GPS)采集数据。所有传感器的列表如下所示。

支持的传感器在M金宝appATLAB移动列表

查看传感器数据

控件可以访问这些传感器传感器选项从下拉菜单中的MATLAB移动。您可以轻按传感器启用它,并查看相关的测量。下面的截图是打开加速度计和磁力计的结果。

加速度与磁场

MATLAB数据分析

显示这些数据很酷,但要使其真正有用,还需要执行进一步的分析和处理。幸运的是,Android传感器的MATLAB支持金宝app包可以帮助您做到这一点!它使您能够将传感器数据发送到计算机上的MATLAB会话。这样做:

  • 使用MATLAB连接器将MATLAB Mobile连接到计算机。此特性仅在MATLAB R2014a及更高金宝app版本上受支持,因此请确保您使用的是兼容版本。
  • 安装Android传感器的MATLAB金宝app支持包。选择附加组件从MATLAB工具条,然后选择获取硬件支持包金宝app.这将打开支持包安装程序。金宝app选择安卓系统传感器从列表中,并按照说明。
  • 要在设备上的传感器和MATLAB之间建立通信,请创建一个mobiledev对象,如下所示:
M = mobiledev;

示例:通过捕获加速度数据计算步数

mobiledev对象促进了Android设备上的传感器与计算机上运行的MATLAB会话之间的通信。让我们通过一个示例来探索这个工作流,该示例演示了加速数据的收集,并使用它来计算所采取的步骤数。

第一步:打开加速度计
一旦你完成了上述3个步骤,转到MATLAB Mobile并打开加速度计。你应该会看到类似这样的东西:

加速度


您也可以直接从MATLAB中启用传感器,通过执行以下命令:
m.AccelerationSensorEnabled = 1;
步骤2:将数据发送到MATLAB
你注意到enabled了吗开始发送屏幕底部的按钮?轻敲它,瞧!您现在正在向MATLAB发送数据。或者,您可以通过以下命令直接从MATLAB开始发送数据:
m.Logging = 1;
你可以在MATLAB中验证这一点,注意结果中的电流传感器值:
m = mobiledev with properties: Connected: 1 Logging: 1 InitialTimestamp: '02- 10 -2014 21:53:26.707' AccelerationSensorEnabled: 1(20个Logged values) AngularVelocitySensorEnabled: 0 MagneticSensorEnabled: 0 OrientationSensorEnabled: 0 PositionSensorEnabled: 0 Current Sensor values:加速度:[0.2631 5.9226 8.1850](m/s^2)
步骤3:停止数据获取和日志检索
带着你的设备在校园里/家里/地板上走动。一旦你满意了,停止向MATLAB发送这个数据。你可以点击停止发送按钮,或在MATLAB中发出以下命令:
m.Logging = 0;
要检索数据,使用accellog变量:
[a, t] = accellog(m);
步骤4:绘制原始传感器数据
一旦你检索了记录的加速度数据,你可以在MATLAB中绘制它:
情节(t);传奇(“X”“Y”“Z”);包含(相对时间(秒));ylabel (“加速度(m / s ^ 2)”);

matlab_mobile_sensors_01


计算大小以将X、Y和Z向量转换为标量值。然后画出来。
X = a(:,1);Y = a(:,2);Z = a(:,3);计算并绘制幅值。Mag =√(sum(x。²+ y.²+ z.²,2));情节(t,杂志);包含(“时间(s)”);ylabel (“加速度(m / s ^ 2)”);

加速度幅值图


要去除诸如重力等常量影响,可以从该数据中减去平均值。
考虑到重力。magNoG = mag - mean(mag);%图大小。情节(t, magNoG);包含(“时间(s)”);ylabel (“加速度(m / s ^ 2)”);

加速度大小图(去除重力)


绘制的数据现在以零为中心,并显示与行走时所走的一步相对应的峰值。

第五步:计算步数
要确定所采取的步骤数,可以使用信号处理工具箱中的FINDPEAKS函数。在这个例子中,我们只将最小高度高于一个标准差的峰值作为一个步长。这个阈值应该通过实验来调整,以匹配一个人走路时的运动水平,地板表面的硬度等。
使用FINDPEAKS来确定局部最大值。minPeakHeight = std(magNoG);[pks, locs] = findpeaks(magNoG,“MINPEAKHEIGHT”, minPeakHeight);
所走的步数就是峰的数量:
numSteps = nummel (pks)
numSteps = 15
最后,你还可以在加速度大小数据图上识别这些位置:
持有在峰值对应的位置上做一个红色标记。情节(t (loc),“r”“标记”“v”“线型”“没有”);标题(的计算步骤);包含(“时间(s)”);ylabel (加速度大小,重力移除(m/s^2));持有

加速度幅值图(带峰)


第六步:清理
完成之后,请确保关闭加速度传感器并清除mobiledev对象。
m.AccelerationSensorEnabled = 0;清晰的

试试吧!

要了解有关从移动设备上的传感器获取数据的更多信息,请参阅以下链接:

您获得了哪些数据,您从分析这些数据中获得了哪些见解?

请在下方留言告诉我们。

发布与MATLAB®R2014b

|
  • 打印
  • 发送电子邮件

댓글

댓글을남기려면링크를클릭하여MathWorks계정에로그하거나계정을새로만드십시오。