手机之所以能够感知方向变化并旋转屏幕显示,是因为手机内置了加速度计。首先我们来了解一下加速度计的一些相关知识。它由两个基本部分组成,一个连接到要测量加速度的物体的外壳,以及一个连接到外壳但仍可以自由移动的质量。图中,弹簧连接到金属球。

当我们向上移动外壳时,金属球会因为惯性而将弹簧向下拉动。这时我们只需要测量弹簧的拉伸量就可以计算出重力。因此,三个这样的加速度计可以测量物体在三个维度上的运动方向。

当Z轴上的加速度计垂直于重力方向时,只有X轴上的滚珠拉簧产生张力 拉伸。当翻转发生时,Z轴指向上方,只有加速度计沿Z轴的弹簧被拉伸。

那么这个加速计芯片是如何工作的呢?下图显示了早期 iPhone 中的传感设备。内部有一个加速度计芯片装置。那么手机中的芯片是如何检测这种重力变化的呢?尽管它比上面示例中的球和弹簧模型复杂得多。但它们的组成部分仍然相同。

该芯片配备了一个由硅制成的微型加速度计,包括一个固定在手机上的外壳,形状与我们类似日常生活中使用的梳子是一种可以前后移动的部件。其作用类似于金属球产生的惯性质量。在这里,弹簧变成了连接到外壳的可灵活移动的硅片。显然,如果我们能够测量出中间部件的位移,就可以得到运动的方向。

通过加速度计上的三个指针来解释一下它的工作原理,这三个指针组成了一个差分电容,也就是说只要中间指针的移动就会产生电流。在最初的设计中,电流和加速度是相关的。

对于大多数手机来说,当手机处于默认竖屏状态时orientation,会相对于手机屏幕定义一个三维屏幕,坐标系如下图所示,其中,在与手机屏幕同一平面的X轴和Y轴中,X轴水平向右为正,Y轴垂直向上为正,Z轴垂直于屏幕向外为正。在这个坐标系中,屏幕后面的坐标将会有负Z值。

手机可以感知屏幕的重力加速度,可以想象成一个小小的l 球位于这个坐标系中,在三个方向上都有加速度。始终以手机屏幕作为绘图的标准,而不是外界。

注意:关于这个坐标系,需要特别注意的一点是,传感器的坐标系不会随着位置的变化而变化。设备移动。 。

当手机屏幕如上图所示水平放置时,手机中加速度计的坐标为(x, y, z) = (0, 0, -9.8)。当手机顶部抬起时:y减小,为负值;当手机底部抬起时:y增加,且为正值;当手机右侧抬起时:x减小,为负值;当手机左侧抬起时:x增加,且为正值;当手机屏幕水平向上放置时,z=-9.81;当手机屏幕垂直放置时,z=0;当手机屏幕亮起时reen 水平向下放置,z=9.81。

因此,在系统中设置手机屏幕切换的坐标阈值。当您使用手机时,当y坐标值达到阈值时,就会发生垂直切换。同样,当 x 值达到阈值 时,手机将进行水平切换。

现在你知道为什么你的手机屏幕可以旋转了吗?欢迎大家点赞和关注!