SL.pro
Blog · · 9 menit bacaan

Cara Kerja Aplikasi Tingkat Roh: Akselerometer Dijelaskan

Ponsel Anda tahu arah mana yang ke bawah karena punya sensor kecil bernama akselerometer MEMS. Sensor itu mengukur bagaimana gravitasi menarik ponsel di sepanjang tiga arah sekaligus. Aplikasi waterpas membaca ketiga angka itu, menjalankan sedikit trigonometri, lalu menampilkan sudutnya kepada Anda. Semua ini terjadi ratusan kali per detik, di dalam chip yang sulit dilihat dengan mata telanjang. Artikel ini menjelaskan apa yang sebenarnya terjadi.

Poin Penting
  • Akselerometer mengukur bagaimana gravitasi tersebar di tiga sumbu. Ia tidak mengukur gerakan saat ponsel diam.
  • Pitch dan roll berasal dari rumus arctan yang diterapkan pada ketiga bacaan gravitasi itu.
  • Spirit Level Pro menjalankan bacaan mentah melalui exponential moving average (alpha=0,15) agar gelembung tidak bergetar.
  • Sensor MEMS bergeser mengikuti suhu, jadi kalibrasilah di tempat Anda bekerja.
  • Untuk ponsel yang ditahan diam di permukaan, akselerometer mengerjakan seluruhnya. Anda tidak butuh giroskop.
Foto makro close-up dari chip akselerometer tri-axis MEMS Kionix dari perangkat mobile
Chip akselerometer MEMS di dalam ponsel Anda lebih kecil dari butir beras namun mengukur gravitasi dengan presisi.

Apa itu akselerometer MEMS?

MEMS adalah singkatan dari Micro-Electro-Mechanical Systems. Elemen sensor di dalam akselerometer ponsel sangat kecil, beberapa ratus mikron saja, lebih kecil dari sebutir garam. Ia berada di silikon yang sama dengan elektronik chip biasa dan dibuat dengan cara yang sama. Itulah sebabnya sensor ini murah dan hampir ada di setiap ponsel.

Cara kerjanya sederhana kalau Anda membayangkannya. Massa kecil menggantung pada pegas silikon yang diukir ke dalam chip. Ketika chip dimiringkan, gravitasi menarik massa itu sedikit dari pusatnya. Gerakan itu mengubah celah antara jari-jari logam berbentuk sisir, dan perubahan celah itu mengubah kapasitansi di antara mereka. Chip membaca perubahan tersebut dan mengubahnya menjadi angka akselerasi, dalam satuan g.

Inilah bagian yang membuat waterpas mungkin. Ketika ponsel diam, akselerometer tidak membaca gerakan. Ia membaca seberapa besar gravitasi menarik di sepanjang tiap-tiap dari ketiga sumbunya. Gravitasi adalah gaya yang tetap dan diketahui. Begitu Anda tahu bagaimana ia terbagi di antara ketiga sumbu, Anda bisa menghitung persis bagaimana ponsel dimiringkan.

Bagaimana akselerometer 3-sumbu mengukur kemiringan?

Akselerometer tiga sumbu memberi ponsel kumpulan arahnya sendiri: X membentang kiri ke kanan, Y membentang atas ke bawah, dan Z membentang depan ke belakang. Letakkan ponsel datar di meja dan gravitasi menarik hampir seluruhnya di sepanjang Z, sehingga Z membaca sekitar 9,81 m/s² dan X serta Y membaca mendekati nol. Miringkan ponsel dan gravitasi bergeser, lebih sedikit di Z, lebih banyak di X dan Y, sebanding dengan sudutnya.

Mengubah ketiga bacaan itu menjadi sudut adalah trigonometri dasar. Pitch adalah kemiringan depan-belakang, roll adalah kemiringan kiri-kanan, dan keduanya berasal dari tangen terbalik:

Pitch = arctan( Y / sqrt(X² + Z²) ) Roll = arctan( X / sqrt(Y² + Z²) )

Dua baris itu adalah seluruh inti matematis dari aplikasi waterpas. Masukkan ketiga nilai mentah, jalankan perhitungannya, dan Anda mendapat pitch dan roll dalam radian. Kalikan dengan 180/π untuk mendapat derajat. Itulah angka di layar Anda.

Anda mungkin bertanya kenapa penyebutnya memakai akar kuadrat dari dua sumbu lain, bukan hanya satu. Ini menjaga bacaan tetap stabil sepanjang putaran penuh. Kalau Anda membagi dengan satu sumbu saja, rumusnya rusak di dekat posisi tegak, karena sumbu itu turun ke nol dan Anda jadi membagi dengan angka yang hampir tidak ada. Memakai besaran gabungan dari dua sumbu lainnya menghindari hal itu.

Papan breakout akselerometer MEMS tri-axis Freescale Semiconductor pada latar belakang putih
Akselerometer 3-sumbu mengukur tarikan gravitasi pada sumbu X, Y, dan Z secara bersamaan.
Lihat fisikanya bekerja secara langsung

Spirit Level Pro menampilkan sudut pitch dan roll secara langsung dengan penghalusan EMA, lima preset toleransi, dan kalibrasi satu ketukan. Tanpa perlu mengunduh.

Coba Spirit Level Pro Gratis

Mengapa data sensor mentah begitu bising?

Keluaran akselerometer mentah bergoyang lebih banyak dari yang Anda kira. Bahkan ponsel yang benar-benar diam menunjukkan getaran kecil pada bacaannya. Sebagian berasal dari kebisingan listrik di dalam sensor itu sendiri, sebagian dari getaran yang merambat lewat permukaan, dan sebagian lagi dari kesalahan pembulatan saat sinyal analog diubah menjadi angka. Tampilkan aliran mentah itu di layar dan gelembung akan berkedut tanpa henti, yang tidak berguna untuk pekerjaan teliti.

Kebisingan berasal dari beberapa sumber. Kebisingan termal adalah fluktuasi listrik acak akibat panas. Anda tidak bisa menghilangkannya, dan ia menentukan batas seberapa senyap sensor bisa jadi. Kebisingan getaran datang dari dunia sekitar Anda: kompresor kulkas, langkah kaki, lalu lintas di luar. Dan titik nol sensor perlahan bergeser sendiri seiring waktu. Masing-masing butuh penanganan berbeda.

Solusi perangkat lunak yang lazim adalah filter lulus-rendah. Ia meloloskan perubahan lambat, seperti kemiringan sungguhan, dan menahan perubahan cepat, seperti getaran. Cara umum melakukannya adalah exponential moving average, atau EMA. Setiap bacaan baru dihitung sebesar sepersekian, alpha, dan sisanya dibawa dari nilai tersaring sebelumnya:

filtered = alpha × new_reading + (1 - alpha) × previous_filtered

Spirit Level Pro memakai EMA dengan alpha=0,15. Kami menetap pada angka itu setelah mencoba beberapa nilai secara manual. Pada alpha=0,05 bacaannya sangat mulus tapi lambat, dan gelembung tertinggal di belakang ponsel saat Anda menggerakkannya. Pada alpha=0,3 ia mengikuti dengan baik tapi cukup berkedut sehingga bacaan yang presisi sulit ditangkap. Alpha=0,15 ada di tengah. Gelembung terasa hidup tanpa terasa gelisah.

Kompromi: Alpha yang lebih tinggi membuat tampilan lebih cepat mengikuti kemiringan sungguhan, tapi juga meloloskan lebih banyak getaran. Alpha yang lebih rendah menghaluskan lebih kuat tapi menambah jeda. Alpha=0,15 menyeimbangkan keduanya dan mantap dalam sekitar 150ms.

Apa peran giroskop?

Giroskop mengukur seberapa cepat ponsel berputar, dalam derajat per detik. Ia tidak mengukur ke arah mana ponsel menghadap. Perbedaan itu penting. Sendirian, giroskop tidak bisa memberi tahu Anda apakah ponsel rata. Ia hanya tahu apakah ponsel sedang berputar dan secepat apa. Untuk bacaan rata dengan ponsel ditahan diam, akselerometer sudah punya semua yang Anda butuhkan.

Giroskop baru berguna ketika ponsel bergerak, lewat sensor fusion. Akselerometer membaca kemiringan diam dengan baik tapi jadi lambat dan bising saat ada gerakan cepat. Giroskop melacak putaran cepat dengan baik tapi bergeser, karena kesalahan kecilnya menumpuk seiring waktu. Filter komplementer atau filter Kalman memadukan keduanya: giroskop menangani gerakan cepat, dan akselerometer menarik bacaan jangka panjang kembali ke nilai yang benar.

Sebagian besar aplikasi waterpas, termasuk Spirit Level Pro, melewatkan sensor fusion karena tugasnya statis. Anda meletakkan ponsel, ia mantap, Anda baca sudutnya. Akselerometer menangani itu sendiri dengan baik. Sensor fusion lebih penting saat ada sesuatu yang sedang terbang, seperti drone yang melacak gerakannya sendiri, ketimbang saat Anda memeriksa rak.

Mengapa kalibrasi begitu penting?

Setiap sensor MEMS keluar dari pabrik dengan offset bawaan yang kecil. Itu adalah bias yang ditetapkan saat produksi, dan sama pada setiap bacaan: jumlah tetap, arah tetap. Jadi chip bisa membaca meleset satu atau dua derajat bahkan ketika ponsel benar-benar datar. Ini adalah alasan tunggal terbesar mengapa aplikasi waterpas tampak salah saat baru dipakai.

Kalibrasi memperbaikinya dengan mengukur offset itu pada permukaan yang Anda yakini datar, lalu menyimpannya. Spirit Level Pro menyimpan nilainya di localStorage di bawah calibrationPitch dan calibrationRoll. Sejak itu, setiap bacaan mengurangi angka tersimpan itu sebelum sampai ke layar. Offset-nya hilang.

Perbedaannya besar. Lewati kalibrasi dan ponsel dengan bias 1,5° akan membaca meleset 1,5° pada segalanya. Ia bisa menampilkan 0,0° padahal berada di kemiringan 1,5° yang sebenarnya. Kalibrasilah ponsel yang sama dan selisihnya turun ke beberapa persepuluh derajat. Itu adalah peningkatan akurasi terbesar yang bisa Anda peroleh, dan biayanya hanya beberapa detik.

Bagaimana suhu memengaruhi akurasi?

Sensor MEMS bereaksi terhadap suhu. Pegas silikon yang menahan massa uji memuai dan menyusut saat chip memanas dan mendingin, sehingga titik nolnya bergeser. Jadi bawalah ponsel dari mobil yang hangat ke garasi yang dingin dan bacaannya bergeser sedikit sebelum sensor mantap di suhu baru. Bukan pergeseran besar, tapi nyata.

Kesimpulan praktisnya sederhana: kalibrasi pada suhu tempat Anda akan bekerja. Kalibrasi yang dilakukan di kantor yang hangat tidak akan bertahan penuh di garasi yang dingin. Anda tidak perlu ambil pusing soal ini untuk setiap pekerjaan. Untuk menggantung foto atau memeriksa rak, pergeserannya terlalu kecil untuk terlihat. Untuk pekerjaan ketat dalam beberapa persepuluh derajat, beri ponsel satu-dua menit untuk mantap setelah perubahan suhu yang besar, lalu kalibrasi.

Tingkat roh yang dipasang di kamera yang menunjukkan cara kerja pengukuran sudut
Berbagai sensor bekerja bersama untuk menentukan orientasi perangkat yang tepat dalam tiga dimensi.

iPhone vs Android: apakah perangkat keras sensornya berbeda?

Ya, dan itu terasa pada bagaimana aplikasinya bekerja. Apple membangun tumpukan gerakannya sendiri. iPhone dari 6s ke atas membawa koprosesor gerakan Apple yang menangani data sensor terpisah dari CPU utama. Samsung Galaxy flagship mengandalkan komponen STMicroelectronics yang mengemas akselerometer 3-sumbu dan giroskop 3-sumbu pada satu die. Ponsel Google Pixel memakai sensor Bosch dan TDK InvenSense, tergantung tahunnya.

Setelah kalibrasi, iPhone flagship dan Android flagship keluar dengan hasil yang kurang lebih sama. Selisih yang benar-benar penting adalah antara flagship dan Android murah. Ponsel murah memakai MEMS lebih murah dengan resolusi lebih rendah, dan keluaran mentahnya lebih bising. Kalibrasi tetap menariknya mendekat, dan untuk sebagian besar pekerjaan DIY hasilnya sudah memadai.

Yang membuat iPhone menonjol dalam aplikasi waterpas bukan akselerometernya, melainkan koprosesor gerakan itu. Ia terus mengumpulkan data sensor pada laju tinggi bahkan ketika aplikasi tidak sedang di depan, sehingga filter penghalus punya lebih banyak sampel untuk diolah. Itu sebagian besar alasan mengapa iPhone terasa begitu mulus di sini, bahkan dibanding ponsel Android dengan sensor yang di atas kertas sama bagusnya.

Pertanyaan yang sering diajukan

Bagaimana cara kerja aplikasi waterpas di ponsel?

Aplikasi membaca akselerometer MEMS ponsel, yang mengukur bagaimana gravitasi menarik di sepanjang tiga sumbu (X, Y, Z). Miringkan ponsel dan gravitasi bergeser di antara sumbu-sumbu itu. Aplikasi menjalankan rumus arctan untuk mendapat pitch dan roll, menghaluskan hasilnya agar kebisingan sensor tenang, lalu menampilkannya sebagai vial gelembung atau sebuah angka. Seluruhnya berjalan ratusan kali per detik.

Seberapa akurat akselerometer ponsel untuk pemakaian waterpas?

Ponsel flagship yang terkalibrasi membaca hingga beberapa persepuluh derajat. Ponsel Android murah membaca lebih buruk tanpa kalibrasi, karena sensornya lebih murah dan lebih bervariasi antar unit. Faktor tunggal terbesar adalah kalibrasi: ia menghilangkan offset pabrik dan menarik hampir semua ponsel jadi mendekat. Untuk sebagian besar pekerjaan DIY dan tukang, ponsel kelas menengah yang terkalibrasi sudah cukup akurat.

Apakah aplikasi waterpas menggunakan giroskop?

Untuk ponsel yang diam, tidak. Akselerometer sendiri memberi Anda sudut kemiringannya. Giroskop mengukur kecepatan putaran, bukan posisi, jadi ia tidak bisa memberi tahu apakah ponsel rata, hanya seberapa cepat ia berputar. Beberapa aplikasi memadukan kedua sensor untuk bacaan yang lebih mulus saat bergerak, tapi untuk menempelkan ponsel ke dinding dan membaca sudut, akselerometer mengerjakan seluruhnya.

Mengapa aplikasi waterpas saya membaca sedikit salah bahkan di permukaan datar?

Biasanya itu offset pabrik. Setiap chip MEMS punya bias bawaan kecil yang membuatnya membaca bukan-nol bahkan ketika ponsel datar. Kalibrasi pada permukaan yang Anda percayai menghapusnya. Penyebab lain adalah pergeseran suhu, casing ponsel yang mengangkat satu sisi di permukaan, atau debu di bawah ponsel. Kalibrasi di meja kaca bersih setelah perubahan suhu besar menyelesaikan sebagian besarnya.

Gambaran utuhnya

Aplikasi waterpas bekerja karena fisika di baliknya bisa diandalkan. Gravitasi konstan, akselerometer mengukurnya sepanjang waktu, dan trigonometri mengubah tiga angka menjadi sudut. Jalur dari elemen sensor ke gelembung adalah matematika yang pasti dari awal hingga akhir. Tidak ada tebak-tebakan di dalamnya.

Yang membuat satu aplikasi waterpas lebih baik dari yang lain bukan perangkat kerasnya. Setiap ponsel flagship sudah datang dengan sensor yang lebih dari cukup baik. Bedanya ada di perangkat lunak: seberapa baik aliran mentah disaring, bagaimana kalibrasi disimpan dan diterapkan, seberapa pas preset toleransi dengan pekerjaan nyata. Kerjakan itu dengan benar dan chip MEMS murah bisa mengimbangi alat khusus yang harganya jauh lebih mahal.

Memahami cara kerja sensor juga membuat Anda lebih mahir memakainya. Kalibrasi pada suhu kerja. Lepaskan casing untuk bacaan presisi. Beri angka satu detik untuk mantap sebelum Anda memercayainya. Setiap kebiasaan itu datang langsung dari memahami apa yang sedang dilakukan perangkat kerasnya.

Coba Spirit Level Pro Gratis

Bekerja di ponsel atau tablet apa pun. Tidak perlu diunduh. Fitur Pro dari $10 sekali.

Buka Spirit Level Pro

Tidak ada akun yang diperlukan · Bekerja offline · 20 bahasa