Tutorial: Deteksi Getaran Ponsel – Beragampengetahuan
Pelajari cara mendeteksi gerakan perangkat tanpa perpustakaan apa pun.
Untuk mendeteksi getaran, kami menggunakan browser devicemotion API. Tutorial ini mencakup matematika, persyaratan izin iOS, dan implementasi akhir.
Contents
Langkah 1: Matematika (Mengukur Gravitasi)
Akselerometer memberikan nilai untuk sumbu X, Y dan Z. Untuk mendeteksi getaran (terlepas dari orientasi ponsel), kami menghitung besaran total vektor percepatan.
rumus: Amplitudo = √(x² + y² + z²)
kami menggunakan accelerationIncludingGravity. Ukuran telepon rumah kira-kira 9.8 (Gravitasi bumi). Getaran sering kali menghasilkan paku 15 atau 20.
Langkah 2: Menangani Izin iOS 13+
IPhone modern mengharuskan pengguna memberikan izin secara manual untuk menggunakan sensor gerak. Anda tidak bisa begitu saja mulai mendengarkan; Anda harus memicu permintaan melalui interaksi pengguna (seperti mengklik tombol).
function requestPermission() {
if (typeof DeviceMotionEvent.requestPermission === 'function') {
DeviceMotionEvent.requestPermission()
.then(response => {
if (response == 'granted') {
window.addEventListener('devicemotion', handleMotion);
}
})
.catch(console.error);
} else {
// Non-iOS devices don't need permission
window.addEventListener('devicemotion', handleMotion);
}
}
Langkah Ketiga: Kocok Logikanya
Kami menambahkan pengatur waktu “Debounce”. Tanpa ini, guncangan fisik dapat memicu kode tersebut 50 kali dalam satu detik. Kami memaksa kode untuk menunggu (misalnya 1000 milidetik) sebelum mendeteksi getaran baru.
let lastShake = 0;
const MIN_INTERVAL = 1000; // Wait 1 sec between shakes
function handleMotion(event) {
const acc = event.accelerationIncludingGravity;
if (!acc) return;
// Calculate Magnitude
const total = Math.sqrt(acc.x**2 + acc.y**2 + acc.z**2);
// Threshold of 15 is a good starting point
if (total > 15) {
const now = Date.now();
if (now - lastShake > MIN_INTERVAL) {
lastShake = now;
alert("Shake Detected!");
}
}
}
Demonstrasi langsung
Uji kodenya di sini. Jika Anda menggunakan perangkat seluler, klik tombol di bawah dan goyangkan ponsel Anda.
Status: Tidak valid
rencana pengembangan website
metode pengembangan website
jelaskan beberapa rencana untuk pengembangan website, proses pengembangan website, kekuatan dan kelemahan bisnis pengembangan website
, jasa pengembangan website, tahap pengembangan website, biaya pengembangan website
#Tutorial #Deteksi #Getaran #Ponsel