Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Sensor memungkinkan aplikasi Anda mengetahui hubungan antara perangkat dan dunia fisik di sekitarnya. Sensor dapat memberi tahu aplikasi Anda arah, orientasi, dan pergerakan perangkat. Sensor ini dapat membantu membuat game Anda, aplikasi realitas tertambung, atau aplikasi utilitas lebih berguna dan interaktif dengan memberikan bentuk input yang unik, seperti menggunakan gerakan perangkat untuk mengatur karakter di layar atau untuk mensimulasikan berada di kokpit dan menggunakan perangkat sebagai roda kemudi.
Sebagai aturan umum, putuskan dari outset apakah aplikasi Anda akan bergantung secara eksklusif pada sensor atau apakah sensor hanya akan menawarkan mekanisme kontrol tambahan. Misalnya, game mengemudi menggunakan perangkat sebagai roda kemudi virtual dapat dikontrol melalui GUI di layar - dengan cara ini, aplikasi berfungsi terlepas dari sensor yang tersedia pada sistem. Di sisi lain, labirin kembung marmer dapat dikodekan untuk hanya bekerja pada sistem yang memiliki sensor yang sesuai. Anda harus membuat pilihan strategis apakah akan sepenuhnya mengandalkan sensor. Perhatikan bahwa skema kontrol mouse/sentuhan mengorbankan rasa imersif demi kendali yang lebih baik.
| Topic | Description |
|---|---|
| Mengkalibrasi sensor | Sensor dalam perangkat berdasarkan magnetometer - kompas, inklinometer, dan sensor orientasi - dapat menjadi membutuhkan kalibrasi karena faktor lingkungan. Enumerasi MagnetometerAccuracy dapat membantu menentukan tindakan saat perangkat Anda membutuhkan kalibrasi. |
| Orientasi sensor | Data sensor dari kelas OrientationSensor ditentukan oleh sumbu referensinya. Sumbu ini ditentukan oleh orientasi lanskap perangkat dan berputar mengikuti perangkat saat pengguna memutarnya. |
| Menggunakan akselerometer | Pelajari cara menggunakan akselerometer untuk merespons pergerakan pengguna. |
| Menggunakan kompas | Pelajari cara menggunakan kompas untuk menentukan judul saat ini. |
| Gunakan gyrometer | Pelajari cara menggunakan gyrometer untuk mendeteksi perubahan dalam pergerakan pengguna. |
| Menggunakan inklinometer | Pelajari cara menggunakan inklinometer untuk menentukan pitch, roll, dan yaw. |
| Menggunakan sensor cahaya | Pelajari cara menggunakan sensor cahaya sekitar untuk mendeteksi perubahan pencahayaan. |
| Menggunakan sensor orientasi | Pelajari cara menggunakan sensor orientasi untuk menentukan orientasi perangkat. |
Pengelompokan sensor
Beberapa sensor mendukung konsep batching. Ini akan bervariasi tergantung pada masing-masing sensor yang tersedia. Saat sensor menerapkan batching, sensor mengumpulkan beberapa titik data selama interval waktu yang ditentukan dan kemudian mentransfer semua data tersebut sekaligus. Ini berbeda dari perilaku normal di mana sensor melaporkan temuannya segera setelah melakukan pembacaan. Pertimbangkan diagram berikut yang menunjukkan bagaimana data dikumpulkan lalu dikirimkan, pertama dengan pengiriman normal lalu dengan pengiriman batch.
Keuntungan utama untuk batching sensor adalah memperpanjang masa pakai baterai. Ketika data tidak segera dikirim, hal itu menghemat daya prosesor dan mencegah data harus segera diproses. Bagian dari sistem dapat tidur sampai diperlukan, yang menghasilkan penghematan daya yang signifikan.
Anda dapat memengaruhi seberapa sering sensor mengirim batch dengan menyesuaikan latensi. Misalnya, sensor Accelerometer memiliki properti ReportLatency. Ketika properti ini diatur untuk aplikasi, sensor akan mengirim data setelah jumlah waktu yang ditentukan. Anda dapat mengontrol berapa banyak data yang diakumulasikan atas latensi tertentu dengan mengatur properti ReportInterval .
Ada beberapa peringatan yang perlu diingat sehubungan dengan pengaturan latensi. Peringatan pertama adalah bahwa setiap sensor memiliki MaxBatchSize yang dapat didukung berdasarkan sensor itu sendiri. Ini adalah jumlah peristiwa yang dapat di-cache sensor sebelum dipaksa untuk mengirimnya. Jika Anda mengalikan MaxBatchSize dengan ReportInterval, hasilnya menentukan nilai maksimum ReportLatency. Jika Anda menentukan nilai yang lebih tinggi dari ini, latensi maksimum akan digunakan sehingga Anda tidak kehilangan data. Selain itu, beberapa aplikasi masing-masing dapat mengatur latensi yang diinginkan. Untuk memenuhi kebutuhan semua aplikasi, periode latensi terpendek akan digunakan. Karena fakta-fakta ini, latensi yang Anda tetapkan dalam aplikasi Anda mungkin tidak cocok dengan latensi yang diamati.
Jika sensor menggunakan pelaporan batch, memanggil GetCurrentReading akan menghapus batch data saat ini dan memulai periode latensi baru.
Akselerometer
Sensor Accelerometer mengukur nilai G-force di sepanjang sumbu X, Y, dan Z perangkat dan sangat bagus untuk aplikasi berbasis gerakan sederhana. Perhatikan bahwa nilai G-force mencakup akselerasi karena gravitasi. Jika perangkat memiliki SimpleOrientationFaceUp pada tabel, maka akselerometer akan membaca -1 G pada sumbu Z. Dengan demikian, akselerometer tidak selalu mengukur hanya akselerasi koordinat - tingkat perubahan kecepatan. Saat menggunakan akselerometer, pastikan untuk membedakan antara vektor gravitasi dari gravitasi dan vektor akselerasi linier dari gerakan. Perhatikan bahwa vektor gravitasi harus menormalkan ke 1 untuk perangkat stasioner.
Diagram berikut mengilustrasikan:
- V1 = Vektor 1 = Paksa karena gravitasi
- V2 = Vektor 2 = sumbu -Z dari sasis perangkat (mengarah ke luar dari bagian belakang layar)
- Θi = Sudut miring (kecekatan) = sudut antara sumbu –sumbu Z sasis perangkat dan vektor gravitasi
Aplikasi yang mungkin menggunakan sensor akselerometer mencakup permainan di mana marmer di layar bergulir ke arah Anda memiringkan perangkat (vektor gravitasi). Jenis fungsionalitas ini sangat mirip dengan fungsionalitas Inclinometer dan hal ini juga dapat dilakukan dengan sensor tersebut menggunakan kombinasi kemiringan longitudinal dan kemiringan lateral. Menggunakan vektor gravitasi dari akselerometer sedikit menyederhanakan ini dengan menyediakan vektor kemiringan perangkat yang mudah dimanipulasi secara matematis. Contoh lain adalah aplikasi yang mengeluarkan suara letupan cambuk ketika pengguna mengibaskan perangkat ke udara (vektor akselerasi linier).
Untuk contoh implementasi, lihat Menggunakan akselerometer.
Sensor aktivitas
Sensor Activity menentukan status perangkat saat ini yang melekat pada sensor. Sensor ini sering digunakan dalam aplikasi kebugaran untuk mengetahui apakah pengguna yang membawa perangkat sedang berlari atau berjalan. Lihat ActivityType untuk daftar kemungkinan aktivitas yang dapat dideteksi oleh API sensor ini.
Untuk contoh implementasinya, lihat contoh sensor aktivitas.
altimeter
Sensor Altimeter mengembalikan nilai yang menunjukkan ketinggian sensor. Ini memungkinkan Anda melacak perubahan ketinggian dalam hal meter dari permukaan laut. Salah satu contoh aplikasi yang mungkin menggunakan ini adalah aplikasi yang sedang berjalan yang melacak perubahan elevasi selama eksekusi untuk menghitung kalori yang dibakar. Dalam hal ini, data sensor ini dapat dikombinasikan dengan sensor Activity untuk memberikan informasi pelacakan yang lebih akurat.
Untuk contoh implementasi, lihat sampel altimeter.
Barometer
Sensor Barometer memungkinkan aplikasi mendapatkan pembacaan barometrik. Aplikasi cuaca dapat menggunakan informasi ini untuk memberikan tekanan atmosfer saat ini. Ini dapat digunakan untuk memberikan informasi yang lebih rinci dan memprediksi potensi perubahan cuaca.
Untuk contoh implementasi, lihat sampel barometer.
Kompas
Sensor Compass memberikan arah 2D terhadap utara magnetis berdasarkan bidang horizontal Bumi. Sensor kompas tidak boleh digunakan dalam menentukan orientasi perangkat tertentu atau untuk mewakili apa pun dalam ruang 3D. Karakteristik geografis dapat menyebabkan deklinasi alami pada haluan, sehingga beberapa sistem mendukung HeadingMagneticNorth dan HeadingTrueNorth. Pikirkan mana yang lebih disukai aplikasi Anda, tetapi ingatlah bahwa tidak semua sistem akan melaporkan nilai utara yang sebenarnya. Sensor girometer dan magnetometer (perangkat yang mengukur besarnya kekuatan medan magnet) menggabungkan data dari keduanya untuk menghasilkan arah kompas, sehingga data menjadi lebih stabil (kekuatan medan magnet sangat tidak stabil karena komponen sistem kelistrikan).
Aplikasi yang ingin menampilkan mawar kompas atau menavigasi di peta biasanya akan menggunakan sensor kompas.
Untuk contoh implementasi, lihat Menggunakan kompas.
Girometer
Sensor Gyrometer mengukur kecepatan sudut di sepanjang sumbu X, Y, dan Z. Hal ini sangat berguna dalam aplikasi berbasis gerakan sederhana yang tidak memperhatikan orientasi perangkat, tetapi memperhatikan perangkat yang berotasi pada kecepatan yang berbeda-beda. Gyrometers dapat menderita kebisingan dalam data atau bias konstan di sepanjang satu atau beberapa sumbu. Anda harus meminta akselerometer untuk memverifikasi apakah perangkat bergerak untuk menentukan apakah gyrometer menderita bias, lalu mengimbanginya di aplikasi Anda.
Contoh aplikasi yang dapat menggunakan sensor girometer adalah game yang memutar roda roulette berdasarkan rotasi cepat perangkat.
Untuk contoh implementasi, lihat Menggunakan gyrometer.
inklinometer
Sensor Inclinometer menunjukkan nilai yaw, pitch, dan roll perangkat dan paling sesuai digunakan dengan aplikasi yang memerlukan informasi tentang bagaimana posisi perangkat dalam ruang. Pitch dan roll diperoleh dengan menggunakan vektor gravitasi akselerometer dan dengan mengintegrasikan data dari girometer. Yaw ditentukan dari data magnetometer dan giroskop (mirip dengan arah kompas). Inklinometer menawarkan data orientasi tingkat lanjut dengan cara yang mudah dicerna dan dapat dimengerti. Gunakan inklinometer saat Anda membutuhkan orientasi perangkat tetapi tidak perlu memanipulasi data sensor.
Aplikasi yang mengubah tampilannya agar sesuai dengan orientasi perangkat dapat menggunakan sensor inklinometer. Selain itu, aplikasi yang menampilkan pesawat yang cocok dengan yaw, pitch, dan roll perangkat juga akan menggunakan pembacaan inklinometer.
Untuk contoh implementasi, lihat Menggunakan inklinometer.
Sensor cahaya
Sensor LightSensor mampu menentukan cahaya sekitar di sekitar sensor. Ini memungkinkan aplikasi untuk menentukan kapan pengaturan cahaya di sekitar perangkat telah berubah. Misalnya, pengguna dengan perangkat slate mungkin berjalan dari dalam ruangan ke luar ruangan pada hari yang cerah. Aplikasi pintar dapat menggunakan nilai ini untuk meningkatkan kontras antara latar belakang dan font yang dirender. Itu akan membuat konten masih dapat dibaca di pengaturan luar ruangan yang lebih cerah.
Untuk contoh implementasi, lihat Menggunakan sensor cahaya.
Sensor orientasi
Orientasi perangkat dinyatakan melalui kuaternion dan matriks rotasi. OrientationSensor menawarkan tingkat presisi yang tinggi dalam menentukan orientasi perangkat di ruang terhadap arah hadap absolut. Data OrientationSensor berasal dari akselerometer, gyrometer, dan magnetometer. Dengan demikian, baik sensor inklinometer maupun sensor kompas dapat diturunkan dari nilai kuaternion. Kuaternion dan matriks rotasi sangat sesuai untuk manipulasi matematika tingkat lanjut dan sering digunakan dalam pemrograman grafis. Aplikasi yang menggunakan manipulasi kompleks sebaiknya mengutamakan sensor orientasi karena banyak transformasi didasarkan pada kuaternion dan matriks rotasi.
Sensor orientasi sering digunakan dalam aplikasi realitas tertambah canggih yang menampilkan hamparan pada lingkungan sekitar Anda berdasarkan arah yang ditunjuk oleh bagian belakang perangkat.
Untuk contoh implementasi, lihat Menggunakan sensor orientasi.
Pedometer
Sensor Pedometer melacak jumlah langkah yang diambil oleh pengguna yang membawa perangkat yang terhubung. Sensor dikonfigurasi untuk melacak jumlah langkah selama periode waktu tertentu. Beberapa aplikasi kebugaran ingin melacak jumlah langkah yang diambil untuk membantu pengguna menetapkan dan mencapai berbagai tujuan. Informasi ini kemudian dapat dikumpulkan dan disimpan untuk menunjukkan kemajuan dari waktu ke waktu.
Untuk contoh implementasi, lihat sampel pedometer.
Sensor kedekatan
Sensor Proximity dapat digunakan untuk menunjukkan apakah objek terdeteksi oleh sensor atau tidak. Selain menentukan apakah objek berada dalam rentang perangkat atau tidak, sensor kedekatan juga dapat menentukan jarak ke objek yang terdeteksi. Salah satu contoh di mana ini dapat digunakan adalah dengan aplikasi yang ingin muncul dari status tidur ketika pengguna berada dalam rentang tertentu. Perangkat bisa dalam keadaan tidur bertenaga rendah sampai sensor kedekatan mendeteksi objek, dan kemudian dapat memasuki status yang lebih aktif.
Untuk contoh implementasi, lihat contoh sensor proksimitas.
Orientasi sederhana
SimpleOrientationSensor mendeteksi orientasi kuadran perangkat yang ditentukan saat ini atau apakah perangkat menghadap ke atas atau ke bawah. Ini memiliki enam kemungkinan status SimpleOrientation (NotRotated, Rotated90, Rotated180, Rotated270, FaceUp, FaceDown).
Aplikasi pembaca yang mengubah tampilannya berdasarkan perangkat yang dipegang secara paralel atau tegak lurus ke tanah akan menggunakan nilai dari SimpleOrientationSensor untuk menentukan bagaimana perangkat ditahan.
Untuk contoh implementasi, lihat sampel sensor orientasi simple.
Windows developer