เซ็นเซอร์

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

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

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

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

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

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

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

เซ็นเซอร์ Android แต่ละตัวมี "ประเภท" ที่แสดงลักษณะการทำงานของเซ็นเซอร์และข้อมูลที่ให้

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

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

เหตุการณ์แต่ละรายการประกอบด้วยข้อมูลต่อไปนี้

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

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

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

มีกลุ่มเป้าหมายเป็นนักพัฒนาแอป

มีกลุ่มเป้าหมายเป็นผู้ผลิต

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