导航:首页 > 源码编译 > 安卓计步算法

安卓计步算法

发布时间:2022-06-21 06:03:36

Ⅰ 手机是如何计步的

一些比较古老的测量记不清部署的工具通常都是一些机械的计步器,而这些计步器的工作原理有些类似于我们的老的摆锤,在人们走路的时候记不记得摆锤就晃,系不系就会记录下走到这一步而随着后来科学的发展,智能手机里面用的计步器已经比这种摆锤先进了不少。

同时现在这些基本软件的另一个好处就是可以让你和你的朋友之间产生一个竞争,同时这种良性竞争也可以帮助你们更好的在每天上下班的路上多走一些路,可以起到锻炼身体的作用,并且还可以在社交网站上上传自己的成绩,促进了人们运动的积极性。

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

计步器读取手机传感器(读取三轴陀螺仪数据)收集的数据,进行二次解读和算法的过程。因为行走时人体做垂直运动,就会有个加速度,检测加速度峰值从而记步。至于准确与否取决于传感器灵敏度及软件分析 重力传感器: 原理:利用压电效应实现,传感器内部一块重物和压电片整合在一起,通过正交两个方向产生的电压大小,来计算出水平方向。 用途:手机横竖屏智能切换、拍照照片朝向、重力感应类游戏(如滚钢珠)。 加速度传感器 原理:与重力传感器相同,也是压电效应,通过三个维度确定加速度方向,但功耗更小,但精度低。 用途:计步、手机摆放位置朝向角度。 个人使用过魅族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不会继续工作,估计是为了省电,现在项目里面华为手机全部为模拟计步了。

Ⅲ Android 微信运动中的的步数是怎么实现的

工具:安卓手机、微信

  1. 首先安卓手机的版本最好在4.4版本以上,可以在手机的 设置->关于手机中查看,没有升级的建议升级系统;


Ⅳ 华为手机计步工作原理

工作原理是工作核心就是震动传感器,一般根据传感器的形式可分为2D计步器和 3D 计步器。 按功能分又可以分为单功能计步器, 计步器手表, 脂肪测量计步器等等。

手机型就是使用手机内的应用或微信内工具进行记步。用户可以不用购买任何计步器设备,直接手机就能使用计步器功能。跑步爱好者可以通过手机设置自己的身高、体重、年龄等数据,直接通过菜单功能开启计步器,就能统计跑步的步数了。

计步器一种计量工具,是通过统计步数、距离、速度、时间等数据,测算卡路里或热量消耗,用以掌控运动量,防止运动量不足,或运动过量。计步器主要由震动传感器和电子计数器组成,人在步行时重心都要有一点上下移动,以腰部的上下位移最为明显,所以记步器挂在腰带上最为适宜。

(4)安卓计步算法扩展阅读:

计步器注意事项:

合格判断:

1、判断一款机械式振动传感计步器计步是否准确,需保持计步器机身同水平面垂直,并轻轻的用力使计步器上下摆动,摆动距离大约为3~5厘米最为合适。此时计步器需百分百正确才为合格。

2、判断一款3D振动传感(重力加速度传感)计步器计步是否准确,捏住机身,使机身最为扁平的平面同水平面平行,并轻轻的用力使计步器上下摆动,观察计数。

参考资料来源:网络-计步器

Ⅳ 哪位技术大神能分析微信运动Android版本计步算法吗

在知乎上引用答案 我再自己理解一下
是根据水平陀螺仪、重力感应器等硬件根据一定算法算出来的。

资料来源https://www.hu.com/question/19808224

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

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

Ⅶ 为什么安卓系统每一个软件的步数都是不同的

每个计步软件,他们用的计步算法都是不一样的模式

Ⅷ 手机计步器的原理是什么

电子计步器的工作核心就是振动传感器,一般根据传感器的形式可分为2D计步器和 3D 计步器。 按功能分又可以分为单功能计步器, 计步器手表, 脂肪测量计步器等等。由于机械运动是物质运动的最简单的形式,因此人们最先想到的是用机械方法测量振动,从而制造出了机械式测振仪(如盖格尔测振仪等)。

传感器的机械接收原理就是建立在此基础上的。相对式测振仪的工作接收原理是在测量时,把仪器固定在不动的支架上,使触杆与被测物体的振动方向一致,并借弹簧的弹性力与被测物体表面相接触。

当物体振动时,触杆就跟随它一起运动,并推动记录笔杆在移动的纸带上描绘出振动物体的位移随时间的变化曲线,根据这个记录曲线可以计算出位移的大小及频率等参数。



(8)安卓计步算法扩展阅读

手机型计步器使用手机内的应用或微信内工具进行记步。用户可以不用购买任何计步器设备,直接手机就能使用计步器功能。跑步爱好者可以通过手机设置自己的身高、体重、年龄等数据,直接通过菜单功能开启计步器,就能统计跑步的步数。

由于人体无时无刻不在动的状态,而每一次稍大的动作或者乘坐的交通工具的震动都会触发计步器内的运动传感器。计步器为了尽量减少记录这些人体的无效移动,采用了缓存技术。

就是从静止状态开始记录的人体动态次数都放置在计步器的临时缓存中,如果连续动态次数超过设定值,则开始记录步数。 反之计步器在若干秒钟之后会将缓存中的步数清零。

一般2D计步器由于寄存器的局限通常采用5步缓存, 3D计步器一般采用10步缓存, 计步器手表也一般采用10步缓存技术并加入了手工暂停计步模式以达到最佳纠错效果。

Ⅸ 手机计步器不计步了,解决久法!

不一定是手机坏了。
计步算法可以分为四大类,一是峰值检测算法,二是变换域算法,三是滤波算法,四是模式识别算法。根据所设计的计步器在人体上布放的位置不同,如腕部、腰部、鞋底等,可以选择不同的计步算法。

峰值检测类算法原理简单,易于实现,应用较为广泛。这里简单介绍峰值检测类算法。用户在运动中,可能把设备放置于口袋或者包中,亦或拿在手中。所以设备的放置方向不确定。那么首先,我们通过计算三个加速度的矢量长度,可以获得一条步行运动的正弦曲线轨迹。

第二步就是峰值检测,我们记录了上次矢量长度和运动方向,通过矢量长度的变化,可以判断当前加速度的方向,并和上一次保存的加速度方向进行比较。如果是相反的,即是刚过峰值状态,则进入计步逻辑进行计步,否则就舍弃这段。通过对峰值次数的累加,那我们就可得计算得到用户步行的步数。

最后,就是去噪音(干扰)。手机或智能手表等手持设备会有一些低幅度和快速的抽动状态,即我们俗称的手抖,或者某个用户想通过短时快速反复摇动设备来模拟人走路,这些干扰数据如果不剔除,会影响记步的准确值,对于这种干扰,我们可以通过给检测加上阀值和步频判断来过滤。目前人类最快的跑步频率为5HZ(当然不排除人类借助其它设备跑步频率超过这个频率),也就是说相邻两步的时间间隔的至少大于0.2秒,如图中的计步时间,若两次计步之间的时间间隔小于0.2秒,则不计步。这样我们就过滤了高频噪声,即步频过快的情况。同时我们通过和上次加速度大小进行比较,设置一定的阀值Threshold来判断运动是否属于有效(如图中的绿线),有效运动才可进行记步。

如果已知步行和跑步的步数,那么再通过人体身高,体重及性别就可以大致知道此人的步长,改进后即可变成一个测距离及测速计。通过三轴加速度传感器,我们可以知道用户的运动状态。除了计步,还可以利用加速度传感器与陀螺仪及磁传感器融合进行步行航迹推算。

Ⅹ 手机上的计步功能是怎么实现的

封闭期最后半个月由于特殊原因,工作比较繁忙,更新比较慢了。让大家久等了!

昨天(4月23日)是世界读书日,也是大同市高三学生解除一个月的封闭学习的日子,值得纪念。

手机是如何实现计步的?

昨天指挥学生撤离等工作中,我居然走了35347步,前天也走了25595步连续两天蝉联自己朋友圈微信运动第1名。





手机是如何实现计步功能的,其中的基础原理是什么呢?用中学物理知识能解释一二吗?

有时我们乘坐飞机、火车、汽车以很高的速度走很远的路,手机也记录不了多少步数,这是怎么回事呢?

人的行走

通常中学物理中描述人走步或者跑步等运动都按“匀速直线运动”处理的。因为中学阶段研究的运动主要是平动,把人看成了质点。但是要研究手机计步这个问题,人的高矮,走路的姿态在所研究的问题中就是主要因素,这样人就不能看成质点了。



人走步时身体的重心在不停的变化着,而且人在走步时也不是严格的匀速运动,而是不停的加速减速运动。人在开始迈步时可以近似地看做加速运动,当脚落地时,又可以看做减速运动,深究细节是很复杂的运动。

手机测量哪个物理量呢?

现在的智能手机里面有一个非常小的芯片,叫三轴加速度传感器,通过这个传感器可以测量手机在三个不同的方向上(三维坐标系)的加速度,然后通过这个加速度的值进行一些算法的运算(要想了解这一步,那得进行深度学习啦),最后进行统计就可以测出来走步的大约步数了。

当然这里最后的结果会存在一些误差的。



在加速度传感器中有一种特殊的材料,叫压电陶瓷材料,根据作用在上面的力的大小产生不同的形变,就可以产生不同的电压的变化,就可以通过作用在上面的力来测量出加速度,然后通过加速度能够判断出这个人是走路的时候,他是在哪个方向进行运动,或者说频率大概是多少。

怎么避免人站在原地拿着手机时晃动,误测步数呢?

人走路的时候,频率一定是在某一个范围之内的,比方说一秒钟跨出多少步,或者说一分钟只能走出多远。如果是人的手拿着手机在晃的话,第一晃的频率会非常的快,第二拿着手机晃的时候,加速度变化是比人在走路的加速度变化要大的多的,基本上通过这两个方面,能够判断出来到底是人拿着手机在晃,还是真正的一个人在走。

当然利用手机检测人走路的步数,终究会有偏差,微信运动刚开始流行时,有人为了刷步数,到了晚上“骗”手机,模拟走步姿态晃手机,确实可以增加步数。现在某些网络平台还售卖专门给懒人设计的刷步数的神器。



我很好奇什么人愿意为此买单,为此我还专门看了看评论,顿时感觉世界真大,无奇不有,不能以自己的想法去想这个世界。

阅读全文

与安卓计步算法相关的资料

热点内容
python编程电话费计算话费 浏览:460
c编译文件怎么改名 浏览:624
pdf转格式软件 浏览:873
单片机原理及应用第二版第八章答案 浏览:533
服务器一百个节点相当于什么 浏览:342
绥化电气编程培训 浏览:372
轻量应用服务器怎么添加软件上去 浏览:811
资产管理pdf 浏览:168
制冷压缩机热负荷过低 浏览:361
服务器出现两个IPV4地址 浏览:846
宜兴云存储服务器 浏览:221
如何开放远程服务器上的端口号 浏览:69
大规模单片机厂家供应 浏览:954
3dmax编辑样条线快捷命令 浏览:708
怎么获得音乐的源码 浏览:251
郭麒麟参加密室完整版 浏览:320
单片机排线怎么用 浏览:485
java字符串太长 浏览:870
python变量计算 浏览:117
网银pdf 浏览:136