当前位置:首页 » 操作系统 » 计步算法

计步算法

发布时间: 2022-01-11 22:19:24

Ⅰ 手机怎么计算步数

第一点:根据陀螺仪计算

可能很多的用户都了解这个陀螺仪,在我们现在玩儿的比较多的吃鸡游戏中,有一种操作就是使用陀螺仪,通过手机的角度来进行操作。那么手机中存在的这一种陀螺仪也是跟游戏中的陀螺仪一样,利用检测手机的角度来进行判断我们人体重心的偏移。因为我们人在走路的时候身体是一个活动的状态,不管手机是放在手机里面还是口袋里面,都是会随着走路的步伐而变动的,所以这也是一个计算我们每天行走多少步数的一个关键。如果说你的手机没有办法计算步数的时候,那么很有可能就是手机中的这个陀螺仪坏掉了。

第二点:根据加速度传感器计算

在很多低端的手机中使用的就是这一个来计算我们平时行走的步数,这是根据我们平时在走路的时候位置的变化以及速度的变化来测试走路的步数,因为我们人在走路的时候,是以一个相对比较均匀的速度行走,手机就是通过这样的硬件配置来感知我们活动的时间从而计算出频率,以此形成步数,这一种计算方式还是较为准确的,就比如说我们在走路的时候和在跑步的时候,甚至是骑车的时候,这个时间长短形成的速度和频率是完全不一样的,就根据这样来进行判断。

第三点:根据压电陶瓷材料的加速度传感器计算

这一中种传感器跟上面的一种是不一样的,虽说也是加速度的传感器,但是它采用的原理是根据作用力的大小导致电压的变化来进行测量,也就是我们在走路的时候速度以及变换的方位会影响电压的大小变化,以此来判断我们行走的频率机型一个步数的多少测量。准确度跟上面的一种一样,只是利用的方式原理不相同罢了。

总结:以上的三种方式,说白了就是一种是根据手机的角度变化来进行测试,另外两种是根据运动的频率来进行测试,三个方法对于当前计算步数来说,都是相当的准确的,有所偏差也只会是一两步,很多的网友觉得两个手机的步数不一样,但是都是一样的行走,其实就是因为使用的测试方法不一样,但是大概的数据是不会改变的。

Ⅱ 微信运动是如何计算步数的

1.手机内置了振动传感器或协助处理器,比如陀螺仪,重力感应等,根据这些设备的震动频率来储存数据。就是人在步行时重心都有一点上下移动,传感器和协作器感应到这种重心移动并进行记数。

2.物理原理:看似匀速的闲庭信步,对我们携带的设备来说(如手机、运动手环),每一步都经历了过山车般的加速度变化。

3.一般来说,抬腿迈出一步的时候,加速度是最大的。我们把它放到一个坐标轴上,加速度的变化看起来就像一个cos波形。

4.两个波峰之间,可以被认为是一步,如果连续出现了8个波峰,就可以基本确定这个人在运动状态。设备就开始把这些前面的波动以及后面的波动,算成步数,这就是最基本的计步原理了。


(2)计步算法扩展阅读:

记步功能是由一个采集器(加速度传感器)和一个处理器(Sensor Hub,协处理器)共同完成的。

采集器采集加速度信息,并提供给处理器进行分析。目前iPhone 5s及以上的苹果手机和部分安卓手机都集成了这个采集、分析的框架。而运动手环等外接设备,也是基于类似框架对数据采集和分析后,通过蓝牙传给手机。

在关注微信运动时,系统提示想要访问活动记录记得选择好,如果不允许的话,则会无法记录运动步数的。

Ⅲ 计步器是怎样来记步数的

计步器使用的是振动传感器来记步数的。

Ⅳ 运动计步数

现在主流的计步软件(以微信运动计步数为例),是通过手机内置的陀螺仪、重力感应器和加速器度传感器等组合完成的,根据这些设备的震动频率来储存数据,从而计算出每天走路的步数。

其中陀螺仪可以测量出手机的角度,从而检测到人体的重心偏移。当人在行走时,手机会随着运动出现角度偏移。陀螺仪检测到持续且有规律的角度偏移时,手机就会开始判断用户正在走路。

陀螺仪还可以判断用户是在走路还是在骑自行车。由于骑车过程相对走路时,人体姿态更加平稳,重心偏移量很小,陀螺仪收集到的角度变化也很小。

当我们携带手机走路时,每一步都经历了过山车般的加速度变化。抬腿迈出第一步的时候,加速度是最大的。我们把它放到一个坐标轴上,加速度的变化看起来就像一个cos波形。两个波峰之间,可以被认为是走了一步。

如果连续出现几个波峰,就可以基本确定用户是在走路的状态。传感器设备就把这些前面的波动以及后面的波动算成步数,记录到手机里。

在实际场景中,算法还要去掉一些“干扰项”。比如我们走路时,手机放兜里会上下抖动,产生不同方向的加速度。这时算法就要判断并过滤掉无用的干扰项,只留下最主要的运动特征。

手机里的压电陶瓷也会根据力的大小产生不同的形变,从而产生不同的电压变化,通过作用在上面的力测量出加速度,计算用户在走路时的频率大小。

其实就是手机硬件的重力感应,比如我们看电影转动手机时,屏幕会自动跟着转,就是它感应到向下重力作出的反应。

更加精确的计步软件还会辅助利用GPS来定位用户的运动路线,然后计算出平均时速。

上述的这些工作是由采集器(加速度传感器等)和处理器(Sensor Hub,协处理器)共同完成的。

Ⅳ 小米手环计步原理

简单来说:小米手环能够精准计步由硬件和软件算法两方面组成,缺一不可。
硬件是指小米手环里内置的那枚强悍的三轴加速度传感器ADXL362 (注1),军用级,大家知道想要达到军用级,这得有多苛刻。其实三轴加速度传感器不神秘,在大多数中高档手机里都有配备加速度传感器,只是在侦测精度上达不到到小米手环的级别。
三轴加速度传感器(注2)的三轴是指空间中的X,Y,Z三个维度,有了这3个维度,手环就可以捕捉到手环在使用中的加速度变化,从而生成数据。重力加速度大家初中物理课上都学过,在此就不多说了。
软件算法:华米程序猿根据三轴加速度实时捕捉到的三个维度的各项数据,经过滤波、峰谷检测等过程,使用各种算法和科学缜密的逻辑运算,最终将这些数据转变成手环APP端的可读数字,步数、距离、消耗的卡路里数值等呈现在最终用户面前。
望采纳,回答不易!

Ⅵ 我要用计步功能,如何实现

计步器读取手机传感器(读取三轴陀螺仪数据)收集的数据,进行二次解读和算法的过程。因为行走时人体做垂直运动,就会有个加速度,检测加速度峰值从而记步。至于准确与否取决于传感器灵敏度及软件分析 重力传感器: 原理:利用压电效应实现,传感器内部一块重物和压电片整合在一起,通过正交两个方向产生的电压大小,来计算出水平方向。 用途:手机横竖屏智能切换、拍照照片朝向、重力感应类游戏(如滚钢珠)。 加速度传感器 原理:与重力传感器相同,也是压电效应,通过三个维度确定加速度方向,但功耗更小,但精度低。 用途:计步、手机摆放位置朝向角度。 个人使用过魅族MX4、PRO6,两款都支持计步。华为P7不支持计步。从参数上看,计步功能是霍尔传感器的功劳? P7:重力感应器,光线传感器,距离传感器,陀螺仪 MX4:重力感应器,光线传感器,触摸感应器,环境色温感应器,霍尔磁感应器,红外距离感应器,陀螺仪,电子罗盘 PRO6:霍尔磁感应、 重力感应、红外距离感应、陀螺仪、环境光度感应、触摸感应、电子罗盘、气压计(支持高度) 拿陀螺仪计步的是比较低级的计步功能,具体表现就是把手机拿在手里摇一摇也会计步。 高级一些的是拿“加速度计”来采集数据,准确度会有所提高。当然最好的还是两者结合使用,单独使用各有利弊。 多说一点:安卓手机因为系统原因,锁屏的时候可能将后台的进程(应用)杀死,所以有时候锁屏的时候,没有计上就是这个原因。 其实手机计步器也没有什么特殊的,它只是在手机中作为一类传感器进行使用,下面给你列出计步算法相关的传感器: 1、Sensor_ TYPE_ACCELEROMETER 加速度传感器,单位是m/s2,测量应用于设备X、Y、Z轴上的加速度 传感器类型值(Sensor Type):1 (0x00000001) 2、Sensor_ TYPE_STEP_DETECTOR 步行检测传感器,用户每走一步就触发一次事件 传感器类型值(Sensor Type):18 (0x00000012) 3、Sensor_ TYPE_STEP_COUNTER 计步传感器 传感器类型值(Sensor Type):19 (0x00000013) 一般来说,如何判断某款手机是否支持自带计步器,一个方法即可实现: /** * Returns true if this device is supported. It needs to be running Android KitKat (4.4) or * higher and has a step counter and step detector sensor. * This check is useful when an app provides an alternative implementation or different * functionality if the step sensors are not available or this code runs on a platform version * below Android KitKat. If this functionality is required, then the minSDK parameter should * be specified appropriately in the AndroidManifest. * * @return True iff the device can run this sample */public static boolean isKitkatWithStepSensor(Context cxt) { // Require at least Android KitKat int currentApiVersion = android.os.Build.VERSION.SDK_INT; // Check that the device supports the step counter and detector sensors PackageManager packageManager = cxt.getPackageManager(); return currentApiVersion >= android.os.Build.VERSION_CODES.KITKAT&& packageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_STEP_COUNTER) && packageManager.hasSystemFeature(PackageManager.FEATURE_SENSOR_STEP_DETECTOR); } 根据Google官方发布的Androd版本,在Android4.4以后的版本应该要封装StepListener,至于为什么有的国产手机在测试时出现的种种问题,我只在实事求是的这里说明一下,并不针对某个品牌! 测试结果: 华为P9:不带计步器,不能使用Sensor_DETECTOR或者Sensor_COUNTER进行计步,并不知道为什么华为手机里面自带的计步软件为何使用正常,估计是把接口封死了,只能自己的应用使用! 魅族MX4-Pro:虽然自带计步器,但是Sensor_DETECTOR中去取vales[0]时,正常应返回1.0,代表正常走一步,但是测试时一直返回0.0,注意:这不是表情,这是0,一直为0!现象比较奇怪吧,所以我又换成Sensor_COUNTER,返回值有时为:第100步,返回100;第101步,返回90;第102步,返回91,然后又恢复正常累加。 三星S7-Edge:自带计步器,且计步相对准确,两种计步方式都可以使用,一直以它为其他手机的参考。 Google Nexus6:自带计步器,准确度与三星的基本保持一致,未出现特殊错误。 以上为手机的测试结果,因为手里就这几块手机,所以测试的宽容度有点低,也希望大家能够了解计步器这个东东也没有什么特殊的,只是一个传感器而已,里面专门对走路的数据进行封装最后传递出来,不用我们自己通过三轴陀螺仪测波峰波谷来判断是否为一个有效的一步,这就大大简化了我们开发者的工作。 还是希望全部的手机厂商能够按照Google的设计来,如果把某些接口封了,你可以给一个说明什么的吧,什么也不说,什么也不给,这种态度有点问题 再次确认:华为P9只携带StepCounter,没有StepDetector。而且在屏幕关闭后StepCounter不会继续工作,估计是为了省电,现在项目里面华为手机全部为模拟计步了。

Ⅶ 微信运动怎么计算步数

微信运动工作原理:

  1. 微信运动的基本原理是走路时会先有一个向前的加速度再有一个向后的加速度,根据身高体重调整这两次加速度大小和时间间隔的阈值就能统计步数,当然还有很多优化的细节。

  2. 手机内置了振动传感器或协助处理器,根据这些设备的震动频率来储存数据。简单地说,就是人在步行时重心都有一点上下移动,传感器和协作器感应到这种重心移动并进行记数。

(7)计步算法扩展阅读:

  1. 微信运动确实是计算步数,与距离无关,也与步伐大小无关。

  2. 计步数据不会受地形影响。无论是走路还是爬楼梯,都是走一步记一步,误差基本在2步以内。

  3. 来回甩动手机或是手环确实能增加步数,“作弊”一说确实可行。

  4. 不想别人看到自己的步行数据?这也是有办法的。以iPhone6为例,只要取消公众号里“加入排行榜”的选项,或是在手机的设置中,找到“隐私”一栏,点击进入,找到“运动与健身”一栏,点击关闭即可。


参考资料:微信运动_网络

Ⅷ 手机计步app的实现原理是怎样的精确度如何

原理最主要通过加速度传感器来感知水平垂直左右方向的加速度变化。手环的优势是位置固定在手上,做计步应用场景时相对来说算法比较好写,缺点在于低功耗,CPU计算能力和内存大小限制了算法的复杂度。手机和手环比较起来是位置不固定,所以计步算法相对要复杂的多,优点是CPU强大,内存容量以G为单位,所以算法复杂度要强大很多,另外可以结合GPS来综合判断。另外想说大多数手环是没有GPS的。

Ⅸ 微信运动,小米手环等都是怎么实现计步的

小米手环的计步是通过将手环内置的加速度传感器以及专用的计步算法进行计步,只需要将手环佩戴在手上并选择正确的佩戴习惯,即可进行准确的计步,小米手环经过算法优化,会将刷牙等小幅度重复动作通过算法进行过滤。

热点内容
频率计源码 发布:2024-09-08 07:40:26 浏览:778
奥迪a6哪个配置带后排加热 发布:2024-09-08 07:06:32 浏览:100
linux修改apache端口 发布:2024-09-08 07:05:49 浏览:208
有多少个不同的密码子 发布:2024-09-08 07:00:46 浏览:566
linux搭建mysql服务器配置 发布:2024-09-08 06:50:02 浏览:995
加上www不能访问 发布:2024-09-08 06:39:52 浏览:811
银行支付密码器怎么用 发布:2024-09-08 06:39:52 浏览:513
苹果手机清理浏览器缓存怎么清理缓存 发布:2024-09-08 06:31:32 浏览:554
云服务器的优点与缺点 发布:2024-09-08 06:30:34 浏览:734
上传下载赚钱 发布:2024-09-08 06:14:51 浏览:258