Bagikan melalui


Sensor

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/sentuh memperdagangkan perendaman untuk kontrol yang lebih besar.

Topik Deskripsi
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 didefinisikan oleh orientasi lanskap perangkat dan diputar dengan perangkat saat pengguna mengubahnya.
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.

Batching 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.

Koleksi batch sensor

Keuntungan utama untuk batching sensor adalah memperpanjang masa pakai baterai. Ketika data tidak segera dikirim, yang menghemat daya prosesor dan mencegah data perlu 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, yang menentukan nilai ReportLatency maksimum. 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 SimpleOrientation dari FaceUp 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 sasis perangkat (titik di belakang layar)
  • Θi = Sudut miring (kecekatan) = sudut antara sumbu –sumbu Z sasis perangkat dan vektor gravitasi

AkselerometerPengukuran akselerometer

Aplikasi yang mungkin menggunakan sensor akselerometer mencakup permainan di mana marmer di layar bergulir ke arah Anda memiringkan perangkat (vektor gravitasi). Jenis fungsionalitas ini mencerminkan dengan cermin erat dari Inclinometer dan juga dapat dilakukan dengan sensor tersebut dengan menggunakan kombinasi pitch dan roll. Menggunakan vektor gravitasi akselerometer menyederhanakan hal ini dengan menyediakan vektor yang mudah dimanipulasi secara matematis untuk perangkat miring. Contoh lain adalah aplikasi yang membuat suara retak cambuk ketika pengguna berkedip perangkat melalui udara (vektor akselerasi linier).

Untuk contoh implementasi, lihat sampel akselerometer.

Sensor aktivitas

Sensor Aktivitas menentukan status perangkat saat ini yang terpasang pada sensor. Sensor ini sering digunakan dalam aplikasi kebugaran untuk melacak kapan pengguna yang membawa perangkat berjalan atau berjalan. Lihat ActivityType untuk daftar kemungkinan aktivitas yang dapat dideteksi oleh API sensor ini.

Untuk contoh implementasi, lihat sampel 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 Aktivitas untuk memberikan informasi pelacakan yang lebih akurat.

Untuk contoh implementasi, lihat sampel altimeter.

Barometer

Sensor Barometer memungkinkan aplikasi untuk 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.

Compass

Sensor Kompas mengembalikan judul 2D sehubungan dengan magnet utara berdasarkan bidang horizontal bumi. Sensor kompas tidak boleh digunakan dalam menentukan orientasi perangkat tertentu atau untuk mewakili apa pun dalam ruang 3D. Fitur geografis dapat menyebabkan penurunan alami dalam judul, 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 gyrometer dan magnetometer (perangkat yang mengukur kekuatan magnetik) menggabungkan data mereka untuk menghasilkan judul kompas, yang memiliki efek bersih menstabilkan data (kekuatan medan magnet sangat tidak stabil karena komponen sistem listrik).

Pembacaan Kompas sehubungan dengan Magnetic North Pole

Aplikasi yang ingin menampilkan kompas naik atau menavigasi peta biasanya akan menggunakan sensor kompas.

Untuk contoh implementasi, lihat sampel kompas.

Girometer

Sensor Gyrometer mengukur kecepatan sudut di sepanjang sumbu X, Y, dan Z. Ini sangat berguna dalam aplikasi berbasis gerakan sederhana yang tidak menyangkut diri mereka sendiri dengan orientasi perangkat tetapi peduli tentang perangkat yang berputar pada kecepatan yang berbeda. 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.

Gyrometer dengan pitch, roll, dan yaw

Contoh aplikasi yang dapat menggunakan sensor girometer adalah game yang memutar roda roulette berdasarkan rotasi cepat perangkat.

Untuk contoh implementasi, lihat sampel girometer.

Inclinometer

Sensor Inclinometer menentukan nilai yaw, pitch, dan roll perangkat dan bekerja paling baik dengan aplikasi yang peduli tentang bagaimana perangkat berada di ruang angkasa. Pitch dan roll diturunkan dengan mengambil vektor gravitasi akselerometer dan dengan mengintegrasikan data dari gyrometer. Yaw didirikan dari magnetometer dan girometer (mirip dengan judul 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.

Inklinometer dengan data pitch, roll, dan yaw

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 sampel https://github.com/Microsoft/Windows-universal-samples/tree/main/Samples/Inclinometerinklinometer .

Sensor cahaya

Sensor Cahaya mampu menentukan cahaya sekitar yang mengelilingi 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 sampel sensor cahaya.

Sensor orientasi

Orientasi perangkat dinyatakan melalui kuaternion dan matriks rotasi. OrientationSensor menawarkan tingkat presisi tinggi dalam menentukan bagaimana perangkat berada di ruang angkasa sehubungan dengan judul absolut. Data OrientationSensor berasal dari akselerometer, gyrometer, dan magnetometer. Dengan demikian, sensor inklinometer dan kompas dapat berasal dari nilai kuaternion. Kuaternion dan matriks rotasi meminjamkan diri dengan baik untuk manipulasi matematika tingkat lanjut dan sering digunakan dalam pemrograman grafis. Aplikasi yang menggunakan manipulasi kompleks harus mendukung sensor orientasi karena banyak transformasi didasarkan pada kuaternion dan matriks rotasi.

Data sensor orientasi

Sensor orientasi sering digunakan dalam aplikasi realitas tertambah tingkat lanjut yang melukis overlay pada lingkungan Anda berdasarkan arah belakang perangkat menunjuk.

Untuk contoh implementasi, lihat sampel 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 implemenasi, lihat sampel pedometer.

Sensor kedekatan

Sensor Kedekatan 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 sampel sensor kedekatan.

Orientasi sederhana

SimpleOrientationSensor mendeteksi orientasi kuadrian perangkat yang ditentukan saat ini atau menghadap ke atas atau menghadap 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 sederhana.