手机怎么知道你是在遛弯儿,还是在狂奔?

21ic电子网 2025-09-08 17:59

你有没有这样的经历?


刚下班慢悠悠踩着夕阳回家,手机健康 App 给你发勋章:“今日步行6000 步” 。


第二天你追公交狂奔 200 m,App又跳出来:“检测到跑步 0.2 km,消耗 20 kcal”。


资讯配图


你心里犯嘀咕:我也没告诉它啥时候换档啊,它怎么分得这么清?


其实答案就藏在手机里的一对“小间谍”——加速度计陀螺仪,它们每天24h不眠不休地采样、算数、打小报告,无比敬业!


今天咱们把这两个小间谍拎出来,审审它们到底怎么“出卖”你。


1



间谍1(加速度计)档案



主攻方向:测“推背感”的高手

实现原理


想象一个密封的小盒子,里面用弹簧吊着一颗微型铅锤。


只要你一晃盒子,铅锤就偏离原位。


资讯配图

手机里面的加速度计就是这样一个盒子,只是它被缩小到了1 mm³ 大小,用一小块硅做“铅锤”(质量块m),用几根比头发还细的硅梁做“弹簧”(弹簧系数k)。


当手机往右加速,“铅锤”因为惯性想“赖在原地”,就会相对外壳往左偏移。


偏得越多,硅梁弯得越狠。


因为在硅上镀了金属,使得“铅锤”形成了一个可移动的电极,它与加速度计MEMS(Micro-Electro-Mechanical Systems,微机电系统)底座上固定着的两对静止电极(一个在上、一个在下)形成两个背靠背的电容:


静止电极1 ─── “铅锤” ─── 静止电极2

(固定) (可动) (固定)


当手机加速时,“铅锤”微微位移,离某一静止电极更近、离另一静止电极更远,两个电容的电容值一个增大、一个减小。


MEMS里的电路测的正是这一对电容的差值 ΔC,从而算出位移 Δx,通过胡克定律( F = k · Δx)和牛顿第二定律(F = m · a) ,算出加速度a = (k / m) · Δx。


资讯配图


因此,不管你是在走路时,手机在口袋里轻微晃,还是跑步时手机在口袋里猛烈的颠,加速度计都会全部忠实记录手机感受到的“推背感”的情况。


资讯配图


2



间谍2(陀螺仪)档案



主攻方向测“转体”的专家

实现原理


想象你用手指轻轻拨动一只高速旋转陀螺,无论怎么扭手腕,陀螺的转轴都倔强地指向原来的方向。


手机里的陀螺仪就类似于把这只陀螺缩成一粒沙大小,并用电流“拨”它永远旋转。


在陀螺仪MEMS的中央悬浮着一个硅环,四条细若发丝的硅梁把它悬空固定。


此硅环被静电力驱赶着在平面内高速振动,振动方向设为 X 轴。


就像是那只高速旋转的陀螺。


资讯配图


当你突然旋转手机(跑步摆臂、甩腕拍照),硅环因为惯性想保持原振动方向,而手机外壳却被你带走。


两者之间产生一股“科里奥利力”,像一双隐形的手,把硅环的振动“掰”到 Y 轴上一点点——掰得越远,说明转得越快。


MEMS在硅环两侧各放一排固定电极,形成差分电容。


硅环被掰到 Y 轴后,一边电容变大,一边变小,测出电容差值 ΔC,就能换算成角速度 θ(单位 rad/s,弧度每秒)。


因为走路时,手机几乎不旋转,而跑步时,手臂大幅摆动,手机随之来回翻转,角速度信号陡增。


所以手机通过这个角速度,就已经知道你在“原地转身”还是“冲刺摆臂”啦。


3



两个间谍是如何打配合算出步数的?



一句话招供手机用加速度计把每一步上下颠簸形成的“波峰”数出来,再用陀螺仪剔除假抖动,而两个波峰=一步,累计就是总步数。


资讯配图


展开说:


1. 采样:加速度计输出加速度后,通过高通滤波器去掉重力,留下人体运动的信号数据。


2. 找峰值:在步行频率 (1 Hz~2 Hz)、跑步 (2 Hz~3.5 Hz) 的范围内,用阈值检测每个上下峰值。两个有效峰值之间的时间差≈一步周期。


3. 验证 & 累加:若陀螺仪角速度同步出现周期性摆动,则确认为真实步伐;若仅有加速度峰值而无陀螺仪对应摆动(如手抖),视为假步并剔除。


4. 通过计数后的有效峰值周期数即为总步数,实时累加并上报给健康 App。


4



走了多远距离,又是怎么算出来的呢?



一句话招供:先算“一步多长”,再乘“多少步”。


资讯配图


展开说


1. 算步长:用加速度峰值和步频实时估算——步频↑、峰值↑时,步长↑;通过机器学习模型把加速度峰值和步频映射成动态步长。


2. 算距离:距离 = Σ(每一步的步长)。


5



卡路里,又是怎么算出来的?



一句话招供卡路里 = 消耗功率 × 时间,而消耗功率 = 体重 × 移动距离 × 经验系数。


展开说


1. 拿体重:你填过健康资料就用你的;没填就按性别+年龄+地区平均估算。


2. 拿距离:步数 × 动态步长(前面已算)。


3. 拿经验系数:走路 ≈ 0.57 kcal/kg/km;跑步 ≈ 1.03 kcal/kg/km。(不同算法略有差异,但数量级一致)


4. 套公式:消耗卡路里 = 体重× 距离 × 经验系数 × 时间


END


资讯配图



最后提一句,21ic论坛(bbs.21ic.com)正在招募原创作者,单篇文章奖励最高500元,欢迎广大网友踊跃投稿!资讯配图 点击了解活动详情

往期精选:

资讯配图
扫描二维码,关注视频号

请点下【♡】给小编加鸡腿



资讯配图

声明:内容取材于网络,仅代表作者观点,如有内容违规问题,请联系处理。 
Copyright © 2025 成都区角科技有限公司
蜀ICP备2025143415号-1
  
川公网安备51015602001305号