我目前正在开展一个项目,我想在Android手机内部使用振动电机。
我想通了,在清单中设置了正确的权限并获得了振动器的实例:
Vibrator v = (Vibrator) game.getSystemService(Context.VIBRATOR_SERVICE);
会让我访问它。据我所知,振动的唯一方法是:
public abstract void vibrate(long milliseconds)
和
public abstract void vibrate(long [] pattern,int repeat)
然而,我想控制振动的力量:
如何控制振动的力量?
更新
速度是否应该通过改变电压(或PWM DC)来控制?
答案 0 :(得分:4)
如下所示,我认为无法控制强度。您可以做的是使用短脉冲,以便设备不会以如此快的速度振动?但是我没有亲自测试过这个。
http://developer.android.com/reference/android/os/Vibrator.html 和 controlling vibration intensity in android phones? is it possible?
答案 1 :(得分:2)
确实,API没有提供控制振动强度的直接方法。但正如您在更新中所建议的那样,PWM可用于产生各种脉冲宽度的振动模式,从而降低振动电机的平均电压(从而减少振动输出)。
我发布了一个简单的概念验证方法here。此方法将根据指定的强度生成模式。该方法的过渡并不是非常线性的,所以我发布了一笔赏金以希望获得一些替代建议。当我有更好的算法时会更新。
答案 2 :(得分:1)
Vibrator Class不允许这样做,你只能设置模式和持续时间:
vibrate(long[] pattern, int repeat)
vibrate(long milliseconds)
强度与硬件“Vibration Motor”
相关