バイブレーター(振動モーター)は、触覚フィードバックや通知のために携帯電話に振動を生成する電気機械装置です。現代のスマートフォンでは、偏心回転質量(ERM)と線形共振アクチュエーター(LRA)の2つの主要なタイプの振動モーターが使用されています。All About Circuits, 2024によると、LRAアクチュエーターはERMと比較して3倍の応答速度を提供します。
重要なポイント
振動モーター(バイブレーター)は、電気エネルギーを機械的振動に変換してスマートフォンのボディに振動を生み出す小型の電気機械装置です。振動モーターの主な目的は、音声信号を使用せずに着信、メッセージ、アラートを触覚的に通知することです。現代の端末では、振動モーターはタッチスクリーンとの操作時の触覚フィードバックにも使用されています。
携帯電話に初めて振動モーターが搭載されたのは1992年のMotorola Startacで、着信を静かに通知するためでした。現在、振動は通知だけでなく、キー押下、スワイプ、タッチなどのユーザー操作の確認にも使用されています。現代のスマートフォンでは、振動モーターはTaptic Engineや圧電アクチュエーターとともに触覚フィードバックシステムの一部を構成しています。振動の品質は端末の印象に直接影響し、正確で素早い振動はプレミアム品質と関連付けられます。
モバイル業界では、回転する不均衡おもりを持つERM(偏心回転質量)と、磁石を直線移動させるLRA(線形共振アクチュエーター)の2つの主要なタイプの振動モーターが使用されています。タイプの選択は、触覚フィードバックの品質、コスト、スマートフォン内部の利用可能なスペースの要件によって決まります。低価格端末ではERMが、プレミアム端末ではLRAが多く採用されています。
ERM(Eccentric Rotating Mass)は、シャフトに不均衡なおもりを備えたDCモーターで構成される古典的な振動モーターです。電圧が印加されるとローターが回転を始め、不均衡おもりの遠心力が端末のボディに伝達されて振動を生み出します。振動の振幅は電圧(2~5V)、周波数は回転速度によって調整されます。ERMモーターは製造コストが安いですが、慣性があり、動作速度までの加速時間は20~50ミリ秒、停止後も10~20ミリ秒の慣性残響があります。
LRA(Linear Resonant Actuator)は、磁石がコイルの磁場内で一軸に沿って移動する振動モーターです。磁石は弾性要素に吊り下げられ、元の位置に戻ることを保証します。LRAは共振周波数(通常150~200Hz)で動作し、最小消費電力で最大振幅を実現します。LRAの応答時間は5~15ミリ秒で、ERMと比較して大幅に応答性が高くなります。LRAは同等の振動強度でERMよりコンパクトで、プレミアム端末に最適です。
| パラメーター | ERM | LRA |
|---|---|---|
| 原理 | 不均衡おもりの回転 | 磁石の直線運動 |
| 応答時間 | 20~50ミリ秒 | 5~15ミリ秒 |
| 残響 | 10~20ミリ秒 | 1~3ミリ秒 |
| 精度 | 低い | 高い |
| コスト | 低い | 中程度 |
スマートフォン用の振動モーターを選択する際、メーカーは応答時間、振幅制御精度、消費電力、サイズなどのいくつかの主要パラメーターを考慮します。ERMモーターはコストと制御の容易さで優れており、動作にはDC電圧のみが必要です。LRAアクチュエーターは共振周波数のAC信号を生成するより複雑なドライバーを必要としますが、3~4倍正確な触覚を提供します。
Precision Microdrivesの調査によると、LRAアクチュエーターは同等の振動を生成する際にERMモーターより40~50%少ないエネルギーを消費します。これは共振モード動作によるもので、最小入力電力で最大振幅が達成されます。一方、ERMモーターはより広い周波数範囲で動作でき、電圧を変更するだけで異なる強度の振動を生成できます。
スマートフォン内の振動モーターは、ベースプロセッサーまたは専用の触覚フィードバックコントローラーからコマンドを受け取るドライバーを介して制御されます。ドライバーはデジタルコマンドを電気信号に変換します。ERMの場合は特定レベルのDC電圧、LRAの場合は調整可能な振幅を持つ共振周波数のAC信号です。振動モーターの供給電圧は通常、50~200mAの電流で2~5Vです。
現代のSnapdragonチップセット(Qualcomm)やDimensity(MediaTek)には、カスタム触覚パターンをサポートする内蔵振動制御ブロックがあります。プロセッサーは各パルスの振幅、持続時間、波形を指定するコマンドシーケンスをドライバーに送信します。プリセット効果のライブラリに基づいて、システムは10~30種類の異なる通知に対して個別の触覚特性を持つ振動を生成できます。
iOSでは、振動モーターの制御はCore Hapticsを介して複雑なパターンをサポートして行われます。Android 8.0(API 26)より前では、制御は限定的で、開発者は固定の持続時間で振動をオン/オフすることしかできませんでした。Android 8.0以降、VibrationEffectクラスが登場し、複合波形、波状効果、調整可能な振幅をサポートしています。
モバイルアプリケーションにおける振動は、イベント通知(着信、メッセージ)、操作の触覚確認(ボタン押下、スイッチ切り替え)、ゲームの触覚フィードバック、聴覚障害者向けアクセシビリティ機能など、いくつかのシナリオで使用されます。各シナリオには異なる振動パラメーターが必要です。確認には短いパルス、通知には長めの振動が必要です。
適切に設定された振動は、ユーザーエクスペリエンスを大幅に向上させます。ボタン押下時の短い触覚応答は、物理的な操作感を生み出し、認知負荷を軽減します。ゲームでは、振動は没入感のために使用され、銃撃、衝突、エンジン動作などをシミュレートします。Google Material Designによると、触覚確認には10~40ミリ秒、通知には200~1000ミリ秒の振動を使用し、ユーザーに不快感を与えないようにすることが推奨されています。
アクセシビリティにおいて、振動は重要な役割を果たします。視覚障害のあるユーザーが画面上のイベントに関する触覚フィードバックを受け取ることができます。AndroidのTalkBackやiOSのVoiceOverは、インターフェース要素の強調表示、操作の確認、通知の受信時に振動信号を送信します。適応型振動パターンは、視覚的な制御なしでイベントタイプを区別するのに役立ちます。
Androidで振動モーターを操作するには、getSystemService()メソッドを介してアクセス可能なシステムサービスVibratorを使用します。Android 10(API 29)以降、複数の振動モーターを搭載した端末で振動を管理するための統合APIであるVibratorManagerが追加されました。古いバージョンとの互換性のために、開発者はcreateOneShot()メソッドの利用可能性を確認しながらVibratorを直接使用します。
import android.os.VibrationEffect
import android.os.Vibrator
import android.os.VibratorManager
import android.content.Context
class VibrationHelper(private val context: Context) {
private val vibrator: Vibrator get() {
return if (Build.VERSION.SDK_INT >= 31) {
val manager = context.getSystemService(Context.VIBRATOR_MANAGER_SERVICE)
as VibratorManager
manager.getDefaultVibrator()
} else {
context.getSystemService(Context.VIBRATOR_SERVICE) as Vibrator
}
}
fun playShortClick() {
val effect = VibrationEffect.createOneShot(30L, VibrationEffect.DEFAULT_AMPLITUDE)
vibrator.vibrate(effect)
}
fun playWaveform() {
val timings = longArrayOf(0L, 50L, 100L, 50L)
val amplitudes = intArrayOf(128, 255, 64, 255)
val effect = VibrationEffect.createWaveform(timings, amplitudes, -1)
vibrator.vibrate(effect)
}
}
VibrationEffectクラスは2種類のエフェクトをサポートしています。createOneShotは指定された持続時間と振幅の単一パルス、createWaveformはタイミングと振幅の配列による複合波形パターンです。createWaveformを使用する場合、タイミング配列は起動と休止のシーケンスを指定し、振幅配列は各セグメントの振動レベル(0~255)を指定します。repeatパラメーターはパターンの繰り返しを開始するインデックスを示します(-1は単一回再生)。
よくある質問
現代のスマートフォンでは2つの主要なタイプの振動モーターが使用されています。低価格端末にはERM(偏心回転質量)、プレミアムモデルにはLRA(線形共振アクチュエーター)です。ERMは安価ですが低速で精度が低く、LRAは明確な触覚を提供します。
ERMは不均衡おもりを回転させて振動を生成し、応答時間は20~50ミリ秒で慣性残響があります。LRAはコイルの磁場内で磁石を直線移動させ、応答時間は5~15ミリ秒で残響はほぼありません。LRAはより正確で多様な触覚を提供します。
はい、ユーザーはスマートフォンのサウンドと触覚の設定で振動をオフにできます。Androidでは「サウンドとバイブレーション」→「触覚フィードバック」、iOSでは「サウンドと触覚」→「システム触覚」から設定します。オフにするとすべてのアプリに適用されます。
振動モーターはエンジニアリングメニューから確認できます。Samsungでは*#0*#、Xiaomiでは*#*#6484#*#*をダイヤルし、振動テストを選択します。iPhoneでは「設定」→「アクセシビリティ」→「タッチ」→「バイブレーション」で「着信時バイブレーション」をオンにします。振動がない場合はモーターの故障の可能性があります。
Androidでは、「設定」→「通知」→「アプリの通知カテゴリ」から個別のアプリの振動を設定できます。iOSでは「サウンドと触覚」→通知タイプを選択→「触覚」からプリセットパターンを選択して振動を設定します。
まとめ
ターンキー方式のモバイルアプリケーションを開発します
IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。