เซ็นเซอร์

ไอคอน Android เซ็นเซอร์ HAL

เซ็นเซอร์ Android ช่วยให้แอปพลิเคชันสามารถเข้าถึงเซ็นเซอร์กายภาพพื้นฐานของอุปกรณ์เคลื่อนที่ได้ เป็นอุปกรณ์เสมือนที่ให้ข้อมูลที่กำหนดโดย sensors.h ซึ่งเป็นเซ็นเซอร์ Hardware Abstraction Layer (HAL)

เซ็นเซอร์ Android คืออะไร

เซ็นเซอร์ Android เป็นอุปกรณ์เสมือนที่ให้ข้อมูลที่มาจากชุดเซ็นเซอร์ทางกายภาพ ได้แก่ เซ็นเซอร์วัดความเร่ง ไจโรสโคป เครื่องวัดสนามแม่เหล็ก บารอมิเตอร์ ความชื้น ความดัน แสง เซ็นเซอร์วัดความใกล้ชิด และเซ็นเซอร์วัดอัตราการเต้นของหัวใจ

ไม่รวมอยู่ในรายการอุปกรณ์ทางกายภาพที่ให้ข้อมูล ได้แก่ กล้อง เซ็นเซอร์ลายนิ้วมือ ไมโครโฟน และหน้าจอสัมผัส อุปกรณ์เหล่านี้มีกลไกการรายงานของตัวเอง การแยกเป็นไปตามอำเภอใจ แต่โดยทั่วไปแล้ว เซ็นเซอร์ Android จะให้ข้อมูลแบนด์วิธที่ต่ำกว่า ตัวอย่างเช่น “100hz x 3 ช่อง” สำหรับมาตรความเร่งเทียบกับ “25hz x 8 MP x 3 ช่อง” สำหรับกล้องหรือ “44kHz x 1 ช่อง” สำหรับไมโครโฟน

Android ไม่ได้กำหนดวิธีการเชื่อมต่อเซ็นเซอร์ทางกายภาพต่างๆ กับระบบบนชิป (SoC)

  • บ่อยครั้งที่ชิปเซ็นเซอร์เชื่อมต่อกับ SoC ผ่าน ฮับเซ็นเซอร์ ซึ่งช่วยให้สามารถตรวจสอบและประมวลผลข้อมูลได้โดยใช้พลังงานต่ำ
  • บ่อยครั้งที่ Inter-Integrated Circuit (I2C) หรือ Serial Peripheral Interface (SPI) ถูกใช้เป็นกลไกการขนส่ง
  • เพื่อลดการใช้พลังงาน สถาปัตยกรรมบางตัวจึงมีลำดับชั้น โดยมีการประมวลผลเพียงเล็กน้อยในวงจรรวมเฉพาะแอปพลิเคชัน (เช่น การตรวจจับการเคลื่อนไหวบนชิปตัววัดความเร่งของ ASIC) และอื่นๆ อีกมากมายในไมโครคอนโทรลเลอร์ (เช่น การตรวจจับขั้นตอนในฮับเซ็นเซอร์) ).
  • ขึ้นอยู่กับผู้ผลิตอุปกรณ์ในการเลือกสถาปัตยกรรมโดยพิจารณาจากความแม่นยำ พลังงาน ราคา และลักษณะขนาดบรรจุภัณฑ์ ดู กลุ่มเซ็นเซอร์ สำหรับข้อมูลเพิ่มเติม
  • ความสามารถในการแบทช์ถือเป็นข้อพิจารณาที่สำคัญสำหรับการเพิ่มประสิทธิภาพพลังงาน ดู การแบทช์ สำหรับข้อมูลเพิ่มเติม

เซ็นเซอร์ Android แต่ละตัวมี "ประเภท" ที่แสดงถึงพฤติกรรมของเซ็นเซอร์และข้อมูลใดบ้างที่เซ็นเซอร์มอบให้

  • ประเภทเซ็นเซอร์ Android อย่างเป็นทางการถูกกำหนดไว้ใน sensors.h ภายใต้ชื่อ SENSOR_TYPE_...
    • เซ็นเซอร์ส่วนใหญ่มีประเภทเซ็นเซอร์ที่เป็นทางการ
    • ประเภทเหล่านั้นได้รับการบันทึกไว้ใน Android SDK
    • พฤติกรรมของเซ็นเซอร์ประเภทดังกล่าวได้รับการทดสอบในชุดทดสอบความเข้ากันได้ของ Android (CTS)
  • หากผู้ผลิตรวมเซ็นเซอร์ชนิดใหม่ไว้ในอุปกรณ์ Android ผู้ผลิตสามารถกำหนดประเภทชั่วคราวของตนเองเพื่ออ้างอิงถึงเซ็นเซอร์นั้นได้
    • ประเภทเหล่านี้ไม่มีเอกสาร ดังนั้นนักพัฒนาแอปพลิเคชันจึงไม่น่าจะใช้ประเภทเหล่านี้ เนื่องจากไม่ทราบเกี่ยวกับประเภทเหล่านี้ หรือทราบว่าไม่ค่อยมีให้เห็น (เฉพาะในอุปกรณ์บางรุ่นจากผู้ผลิตรายนี้เท่านั้น)
    • พวกเขาไม่ได้ทดสอบโดย CTS
    • เมื่อ Android กำหนดประเภทเซ็นเซอร์อย่างเป็นทางการสำหรับเซ็นเซอร์ประเภทนี้ ผู้ผลิตจะต้องหยุดใช้ประเภทเซ็นเซอร์ชั่วคราวของตนเองและใช้ประเภทเซ็นเซอร์อย่างเป็นทางการแทน วิธีนี้จะทำให้นักพัฒนาแอปพลิเคชันใช้เซ็นเซอร์มากขึ้น
  • รายการเซ็นเซอร์ทั้งหมดที่มีอยู่ในอุปกรณ์ได้รับการรายงานโดยการใช้งาน HAL
    • อาจมีเซ็นเซอร์ประเภทเดียวกันได้หลายตัว ตัวอย่างเช่น พรอกซิมิตี้เซนเซอร์สองตัวหรือมาตรความเร่งสองตัว
    • แอปพลิเคชันส่วนใหญ่ต้องการเซ็นเซอร์เพียงตัวเดียวในประเภทที่กำหนด ตัวอย่างเช่น แอปพลิเคชันที่ขอมาตรความเร่งเริ่มต้นจะได้รับมาตรความเร่งตัวแรกในรายการ
    • เซ็นเซอร์มักถูกกำหนดโดยคู่ การปลุก และ ไม่ปลุก โดยเซ็นเซอร์ทั้งสองชนิดใช้ประเภทเดียวกัน แต่แตกต่างกันตามคุณลักษณะการปลุก

เซ็นเซอร์ Android ให้ข้อมูลเป็นชุดของเหตุการณ์เซ็นเซอร์

แต่ละ เหตุการณ์ ประกอบด้วย:

  • ที่จับกับเซ็นเซอร์ที่สร้างมันขึ้นมา
  • การประทับเวลาที่ตรวจพบหรือวัดเหตุการณ์ ตาม SystemClock.elapsedRealtimeNanos()
  • และข้อมูลบางส่วน

การตีความข้อมูลที่รายงานจะขึ้นอยู่กับประเภทของเซนเซอร์ ดูคำจำกัดความ ประเภทเซ็นเซอร์ สำหรับรายละเอียดเกี่ยวกับข้อมูลที่รายงานสำหรับเซ็นเซอร์แต่ละประเภท

เอกสารที่มีอยู่

กำหนดเป้าหมายไปที่นักพัฒนา

มุ่งเป้าไปที่ผู้ผลิต

  • ภาพรวม
  • เลเยอร์นามธรรมของฮาร์ดแวร์ (HAL)
    • /platform/hardware/libhardware/+/main/include/hardware/sensors.h
    • เรียกอีกอย่างว่า “เซ็นเซอร์.h”
    • แหล่งที่มาของความจริง เอกสารแรกที่จะได้รับการอัปเดตเมื่อมีการพัฒนาคุณสมบัติใหม่
  • Android CDD (เอกสารคำจำกัดความความเข้ากันได้)
    • /ความเข้ากันได้/android-cdd.pdf
    • ดูส่วนที่เกี่ยวข้องกับเซนเซอร์
    • CDD นั้นผ่อนปรน ดังนั้นการปฏิบัติตามข้อกำหนด CDD จึงไม่เพียงพอที่จะรับประกันเซ็นเซอร์คุณภาพสูง