为什么手机能计算出我们行走的步数?
随着科技的高速发展,智能手机的功能也越来越强大,很多手机中都有计算步数的功能,为什么手机能计算出我们行走的步数呢?
▲手机计算行走步数
计步器最早是由意大利的伦纳德·达芬奇想出来的,由于当时技术水平有限,直到150年后的1667年,计步器才真正的做出来,早期计步机比较简陋,还是机械式的。
▲早期机械式计步器
机械式计步器的原理很简单,就跟摆锤一样。人在走路的时候,计步器里的摆锤会随着摆动,人走一步摆锤就动一下,金属摆锤摆动一下会和金属电极接触通电,这样就记录了一个步数。
现在主流的计步软件(以微信运动为例),是通过手机内置的陀螺仪、重力感应器和加速器度传感器等组合完成的,根据这些设备的震动频率来储存数据,从而计算出每天走路的步数。
其中陀螺仪可以测量出手机的角度,从而检测到人体的重心偏移。当人在行走时,手机会随着运动出现角度偏移。陀螺仪检测到持续且有规律的角度偏移时,手机就会开始判断用户正在走路。
▲手机内置的陀螺仪
陀螺仪还可以判断用户是在走路还是在骑自行车。由于骑车过程相对走路时,人体姿态更加平稳,重心偏移量很小,陀螺仪收集到的角度变化也很小。
▲手机内置的陀螺仪结构
当我们携带手机走路时,每一步都经历了过山车般的加速度变化。抬腿迈出第一步的时候,加速度是最大的。我们把它放到一个坐标轴上,加速度的变化看起来就像一个cos波形。两个波峰之间,可以被认为是走了一步。
如果连续出现几个波峰,就可以基本确定用户是在走路的状态。传感器设备就把这些前面的波动以及后面的波动算成步数,记录到手机里。
在实际场景中,算法还要去掉一些“干扰项”。比如我们走路时,手机放兜里会上下抖动,产生不同方向的加速度。这时算法就要判断并过滤掉无用的干扰项,只留下最主要的运动特征。
手机里的压电陶瓷也会根据力的大小产生不同的形变,从而产生不同的电压变化,通过作用在上面的力测量出加速度,计算用户在走路时的频率大小。
其实就是手机硬件的重力感应,比如我们看电影转动手机时,屏幕会自动跟着转,就是它感应到向下重力作出的反应。
更加精确的计步软件还会辅助利用GPS来定位用户的运动路线,然后计算出平均时速。
上述的这些工作是由采集器(加速度传感器等)和处理器(Sensor Hub,协处理器)共同完成的。
其实计步功能只是加速度传感器的一部分应用。在车辆安全、桥梁健康等方面,加速度传感器也有着非常重要的作用。
当汽车在高速行驶时速度突然降下来,安全气囊就会弹出来。这里有一个加速度传感器测量车辆在前进方向的负加速度,从而判断是否应该将安全气囊弹出。
如今,越来越多的互联网公司希望用户使用这个功能,因为通过我们的步行数据,可以分析用户的出门时间,活动地点和区域,从而得知用户的社交圈子和消费习惯,这成为互联网公司制定营销方案的辅助资料。
相关文章
- 云原生第1课:云原生发展历程与技术体系
- 《云原生:运用容器、函数计算和数据构建下一代应用》思维导图
- 实战技能分享,一劳永逸的解决BOOT跳转APP失败问题,含MDK AC5,AC6和IAR,同时制作了一个视频操作说明
- 十行代码完成公众号对话,VFP的能力就是这么强悍,你学会了吗?
- Argo CD系列视频配套图文版-Argo CD初步认识
- 应用安全经理候选人:开发人员还是安全工作人员?
- 不是只有数字化水平高,才可以落地知识图谱
- 火星救援计划已发布,虎年限定玩偶等你来拿!
- 【日志服务CLS】应用TKE事件日志排查异常场景体验
- 【技术种草】巧用云函数打造微信网页授权公用服务
- 【技术种草】十分钟带你白嫖腾讯云个人专属云盘
- 业务-应用-数据-技术架构的正向设计
- 你写过的所有代码都逃不过这两方面:API 和抽象
- Netty: WebSocket应用,代码demo
- Netty应用:快速了解http各版本的特性 HttpServer的小demo
- 2020年度CCF-腾讯犀牛鸟基金—结题评优结果出炉!
- Aggregated APIServer 构建云原生应用最佳实践
- Android 常用设计模式
- 优酷app参数分析
- android加密参数定位方法