เซ็นเซอร์

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

เซ็นเซอร์ Android ช่วยให้แอปพลิเคชันเข้าถึงเซ็นเซอร์จริงพื้นฐานของอุปกรณ์เคลื่อนที่ได้ ซึ่งเป็นอุปกรณ์เสมือนที่ให้ข้อมูลซึ่งกำหนดโดย sensors.h ซึ่งเป็น Hardware Abstraction Layer (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)
  • CDD (เอกสารคำจำกัดความความเข้ากันได้) ของ Android
    • /compatibility/android-cdd.pdf
    • ดูส่วนที่เกี่ยวข้องกับเซ็นเซอร์
    • CDD มีความยืดหยุ่น ดังนั้นการปฏิบัติตามข้อกำหนดของ CDD จึงไม่เพียงพอที่จะรับประกัน เซ็นเซอร์คุณภาพสูง