MATLAB社区

MATLAB、社区和更多

从Android设备与MATLAB移动传感器获得数据

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

内容

你问,什么数据呢?

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

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

查看传感器数据

您可以访问这些传感器通过选择传感器选择从下拉菜单中MATLAB移动。你可以点击一个传感器,使它和视图相关的测量。下面的截图是把加速度计和磁强计的结果。

加速度和磁场

与MATLAB分析数据

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

  • 将MATLAB移动连接到你的电脑与MATLAB连接器。这个功能只支持在MATLAB R2014a金宝app后来,所以确保你在一个兼容的版本。
  • 为Android传感器安装MATLAB金宝app支持包。选择附加组件从MATLAB将来发布,然后选择有硬件支持包金宝app。这将打开支持包安装程序。金宝app选择安卓系统传感器从列表中,按提示操作。
  • 建立传感器之间的通信设备和MATLAB,创建一个mobiledev对象,如下:
m = mobiledev;

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

mobiledev对象促进传感器在你的Android设备之间的通信和MATLAB会话运行在您的计算机上。让我们探索这个工作流通过一个例子说明了加速度数据的收集和使用它来计算步骤的数量。

步骤1:打开加速度计
一旦你已经完成了3个步骤从上面的部分,去MATLAB移动和加速计。您应该看到类似于:

加速度


你也可以直接从MATLAB使传感器,通过执行下面的命令:
m。AccelerationSensorEnabled = 1;
步骤2:将数据发送给MATLAB
你注意到启用了吗开始发送按钮在屏幕的底部吗?点击它,瞧!现在,您将数据发送到MATLAB。或者,您可以直接从MATLAB开始发送数据,通过以下命令:
m。日志= 1;
您可以验证这MATLAB,注意电流传感器值的结果:
m = mobiledev属性:连接:1日志:1 InitialTimestamp:‘02 - 10月- 2014 21:53:26.707 AccelerationSensorEnabled: 1(20记录值)AngularVelocitySensorEnabled: 0 MagneticSensorEnabled: 0 OrientationSensorEnabled: 0 PositionSensorEnabled: 0电流传感器值:加速度:[0.2631 5.9226 8.1850](m / s ^ 2)
第三步:停止获取数据和检索日志
走在你的校园/ home /地板与你的设备。一旦你感到满意,停止向MATLAB发送这些数据。你可以点击停止发送按钮在MATLAB移动,或者在MATLAB发出以下命令:
m。日志= 0;
检索数据,使用accellog变量:
[t] = accellog (m);
步骤4:情节原始传感器数据
一旦检索到记录的加速度数据,您可以在MATLAB情节:
情节(t);传奇(“X”,“Y”,“Z”);包含(“相对时间(s)”);ylabel (“加速度(m / s ^ 2)”);

matlab_mobile_sensors_01


计算级转换你的X, Y和Z标量值向量。然后,情节。
x = (: 1);y = (:, 2);z = (:, 3);%计算大小和情节。杂志=√(x和。y ^ 2 +。^ 2 + z。^ 2,2));情节(t,杂志);包含(“时间(s)”);ylabel (“加速度(m / s ^ 2)”);

加速度大小图


删除常数如重力影响,可以从这些数据减去均值。
%占重力。magNoG =杂志-意味着(mag);%情节大小。情节(t, magNoG);包含(“时间(s)”);ylabel (“加速度(m / s ^ 2)”);

加速度大小的阴谋(重力删除)


绘制数据现在集中在零,显示了峰值对应于一个一步而走。

第五步:计算的步骤
确定数量的步骤,您可以使用从信号处理工具箱FINDPEAKS函数。在这个例子中,我们只把山峰,最低高度作为一个步骤一个标准差。这个阈值应该调整实验匹配一个人的水平运动,散步,地板表面的硬度等。
%使用FINDPEAKS确定当地的最大值。minPeakHeight =性病(magNoG);(pks, loc) = findpeaks (magNoG,“MINPEAKHEIGHT”,minPeakHeight);
步骤的数目是山峰的数量:
numSteps =元素个数(pks)
numSteps = 15
最后,你还可以识别这些位置的加速度大小数据:
持有;%的地方一个红色标记的位置对应于峰值。情节(t (loc),“r”,“标记”,“v”,“线型”,“没有”);标题(的计算步骤);包含(“时间(s)”);ylabel (“重力加速度大小,删除(m / s ^ 2)”);持有;

加速度大小的阴谋(峰值)


第六步:清理
一旦你完成,确保你关掉加速度传感器和清除mobiledev对象。
m。AccelerationSensorEnabled = 0;清晰的;

试一下!

学习更多的关于收购来自传感器的数据在你的移动设备,参考以下链接:

你获得什么数据,以及见解是什么你从分析获得的数据?

下面让我们知道你的评论。

发表与MATLAB®R2014b

|
  • 打印
  • 发送电子邮件

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。