เซนเซอร์

ไอคอน Android Sensors 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/+/master/include/hardware/sensors.h
    • หรือที่เรียกว่า “sensors.h”
    • ที่มาของความจริง เอกสารฉบับแรกที่จะอัปเดตเมื่อมีการพัฒนาคุณสมบัติใหม่
  • Android CDD (เอกสารคำจำกัดความความเข้ากันได้)
    • https://source.android.com/compatibility/android-cdd.pdf
    • ดูส่วนที่สัมพันธ์กับเซ็นเซอร์
    • CDD ผ่อนปรน ดังนั้นการปฏิบัติตามข้อกำหนด CDD จึงไม่เพียงพอที่จะรับประกันว่าเซ็นเซอร์คุณภาพสูง