5

我目前正在做一个项目,我想使用位于 Android 手机内部的振动电机。

我想通了,在清单中设置正确的权限并获取振动器的实例:

Vibrator v = (Vibrator) game.getSystemService(Context.VIBRATOR_SERVICE);

会让我访问它。据我所知,使其振动的唯一方法是:

公共抽象虚空振动(长毫秒)

公共抽象无效振动(long []模式,int重复)

然而,我想控制振动的力量:

如何控制振动的力量?

更新:

不应该通过改变电压(或 PWM 直流)来控制速度吗?

4

3 回答 3

5

根据以下内容,我不相信可以控制强度。你能做的是使用短脉冲,这样设备就不会振动得那么快?但我没有亲自测试过。

http://developer.android.com/reference/android/os/Vibrator.html控制安卓手机的振动强度?可能吗?

于 2012-07-14T11:02:16.643 回答
2

诚然,API 没有提供直接控制振动强度的方法。但正如您在更新中建议的那样,PWM可用于产生各种脉冲宽度的振动模式,从而降低振动电机的平均电压(从而降低振动输出)。

我在这里发布了一个简单的概念验证方法。此方法将根据指定的强度生成模式。该方法的转换不是很线性,所以我发布了一个赏金,希望能得到一些替代建议。当我有更好的算法时会更新。

于 2013-12-31T14:55:42.227 回答
1

振动器类不允许这样做,您只能设置模式和持续时间:

vibrate(long[] pattern, int repeat)

vibrate(long milliseconds)

强度与硬件“振动马达”有关

于 2012-07-14T11:05:00.327 回答