学生休息室

分享学生如何在日常项目中使用MATLAB和Simulink的技术和现实例子#学生成功#金宝app

用MATLAB在线和MATLAB移动创建自己的健身跟踪器

你在寻找一些有趣的东西来尝试使用MATLAB吗?你知道你可以用吗MATLAB移动而且MATLAB在线创建自己的健身追踪器?如果你想了解更多,你可以此处下载代码

智能手机配备了复杂的传感器套件,包括GPS、加速度计、陀螺仪等。你可以将这些传感器数据与算法或数学模型一起使用,以提取卡路里燃烧、步数或飞行次数等指标,以告知某人他们的锻炼效果如何。你的任务不仅是找出你想要提取的指标,而且是算法或数学模型,以帮助你将原始传感器数据转换为你想要的指标。

如何开始

1.请使用MathWorks帐户进行访问MATLAB在线

2.下载MATLAB移动适用于iOS或Android

  • 打开应用程序,选择“连接到MathWorks云”
  • 使用MathWorks帐户登录

3.熟悉MATLAB Mobile中的传感器

  • 加速度(m / s ^ 2)
  • GPS的位置
    • 纬度(度)
    • 经度(度)
  • 速度(米/秒)
  • 高度(米)
  • 课程/标题(度)
  • 水平精度(m)
  • 方向(度)
  • 角速度(rad/s)

要了解更多关于这些传感器的信息,请查看这个文档页面

4.研究健身模型

工作流程表

适应度模型是跟踪器的计算部分;该算法将接受来自您选择的传感器的数据,然后计算并返回您想要的指标。这里的挑战是理解将为跟踪器选择的原始传感器数据转换为有意义的指标所需的数学操作。如果你从GitHub下载了代码,ExampleModel.mlx包含一个示例健身追踪器模型,以激励您。

收集并记录数据

在记录数据以构建模型时,除了确定要使用的正确传感器数据外,还必须确保有各种活动数据来表示预期的活动,例如,如果您仅在步行时收集的数据上测试模型,那么您的模型将不足以跟踪和奖励更剧烈的活动,如跑步或骑自行车。如果想要一个健壮的模型,就必须考虑尽可能多的活动,并适当地收集数据。要记录传感器数据,使用MATLAB移动应用程序:

  1. 通过点击左上方的三行图标导航到“传感器”屏幕
  2. 设置字段日志-这将记录传感器数据到一个mat文件,并保存到您的MATLAB开车在名为“MobileSensorData”的文件夹中
  3. 选择要记录数据的传感器
  4. 点击Start开始记录数据和MOVE!!
  5. 单击“停止”以将日志保存到MATLAB驱动器-使用'在后台获取数据选项,可以在手机锁定时记录数据

Android:

截图

iPhone:

截图

访问数据

在使用MATLAB Online时,可以从左侧标记为“CURRENT FOLDER”的平面访问MATLAB Drive,如下所示。

截图

任何记录的传感器数据存储在MobileSensorData文件夹在您的MATLAB驱动器;要加载数据,双击该文件夹中相应的mat文件或使用以下命令:

> >负载(“filename.mat”);%替换文件名。使用适当的文件名填充

数据作为控件加载到工作区中时间表;时间表是MATLAB中的一种表,它将时间戳关联到每一行。命令的属性位置时间表。

截图

> >位置。属性

代码

有两个维度位置时间表:变量- >传感器采集的数据和时间戳- >对应传感器样本的日期和时间。

使用如下所示的括号符号来访问如下所示的特定范围的传感器数据。

>> first6 =位置(1:6,:);

代码

要将数据提取为一个不包含时间戳和变量名的字符串元素的数组,请使用如下所示的花括号符号。

>> first6 =位置{1:6,:};

代码

第二个时间表维度- >时间戳包含年、月、日、小时,一直到采样的毫秒;使用以下命令访问时间戳信息。

>> positionTime =位置。时间戳;

检查数据的最好方法是绘制图表。MATLAB为您提供了各种各样的图表,以帮助您深入了解您正在处理的数据。研究此数据的一种有效方法是将其与以秒为单位的运行时间进行绘制。positionTime是一个datetime数组;若要将其转换为经过时间的数组,同时仍保持采样数据的时间完整性,请使用timeElapsed在GitHub存储库中提供的函数。将文件添加到MATLAB路径或当前文件夹。使用以下命令来运行它。

>> positionTime = timeElapsed(positionTime);

开发模型

一种可能实现这一目标的模型是将GPS数据转换为所采取的步骤。记住,这只是一个可能的模型,我鼓励你们尝试其他可能更准确的模型。该模型通过除法计算步数旅行总距离通过1步长1步所走的距离。

\ \大量\美元;;步骤= \压裂{\ \;距离;(英尺)}{跨步\;长度\(\压裂{英尺}{一步})}$

在上面的方程中,对于平均步幅,比如2.5英尺,mysound。需要计算才能使用这个模型。GPS传感器或经纬度传感器可以提供帮助;取起点和终点,计算它们之间的距离。当所覆盖的距离是在一条直线上时,这种方法很有效。如果从起点到终点的路径不是一条直线会发生什么?考虑以下场景:

截图

使用这个方程,在这种情况下,移动的距离将是300英尺,因为起始位置和结束位置相距3平方,而在现实中,这个人走得更远。为了解决这个问题,沿着路径上行进的每个点或每个采样的GPS点使用模型,并加上这些点之间的距离来计算行进的总距离,因此您必须使用每个数据点计算沿着路径的距离。现在我们得到了1500英尺的距离,这是非常不同的。还记得我建议收集数据或不同的情况吗?

GPS传感器的经纬度数据是以度为单位的,所以GPS传感器计算出的经纬度点之间的距离实际上为degreesTravelled将其转换为distanceTravelled在feet中,使用以下关系:

$ \大\frac{距离\;走过\;(ft)}{地球的周长\;(ft)}= \frac{度\;走过\;(度)}{地球的总\;度\;(度)}$

该模型的MATLAB实现如下图所示。

初始化变量earthCirc = 24901*5280;% 24901英里,换算成英尺乘以5280 totaldis = 0;步幅= 2.5;%脚拉=位置{1,:};lon =位置{2,:};%%处理循环for i = 1:(length(lat)-1) %遍历每个数据样本lat1 = lat(i);%第i个样本的纬度lon1 = lon(i);%第i个样本的经度lat2 = lat(i+1);%第(i+1)个样本的纬度lon2 = lon(i+1);% (i+1)第个样本的纬度diff =距离(lat1, lon1, lat2, lon2);% MATLAB函数计算球体上2点之间的距离dis = (diff/360)*earthCirc;%转换角度为英尺totaldis = totaldis +dis;结束步骤= totaldis_ft/stride;

分享你的发现

如果你不能做出一个漂亮的图表,为什么还要费心开发一个健身追踪器模型呢?使用MATLAB的绘图功能向您未来的可穿戴技术客户和我们展示数据!

情节(纬度、经度);情节(- r的纬度,经度,纬度(1),朗(1)* g, lat(结束),朗(结束),“* b”,“线宽”,3,MarkerSize, 10);抓住;传奇('路线','起点','终点');包含(纬度)ylabel(经度);title(sprintf('锻炼总结:你走了%0.0f步,移动了%0.3f英里',steps, totaldis_ft/5280));推迟

截图

总之,这是一个有趣的MATLAB项目,通过使用口袋里的手机和MATLAB来探索可穿戴技术的世界。一群来自富兰克林高中在马萨诸塞州,设计了一款使用全套手机传感器套件的健身追踪器,可以计算行走的距离、爬的楼梯和燃烧的卡路里.在MATLAB Central的文件交换或GitHub上发布您的文件,并将您的存储库链接发送给我们!我们很想看看你能取得什么成就!

|
  • 打印
  • 发送电子邮件

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。