Loại cảm biến

Phần này mô tả các trục cảm biến, cảm biến cơ sở và cảm biến tổng hợp (hoạt động, thái độ, chưa được hiệu chuẩn và tương tác).

Trục cảm biến

Giá trị sự kiện cảm biến từ nhiều cảm biến được thể hiện trong một khung hình cụ thể tĩnh so với thiết bị.

Trục thiết bị di động

API cảm biến chỉ liên quan đến hướng tự nhiên của màn hình (các trục không được hoán đổi khi hướng màn hình của thiết bị thay đổi.

Hệ thống toạ độ của API cảm biến cho thiết bị di động

Hình 1. Hệ toạ độ (so với thiết bị di động) mà API cảm biến sử dụng

Rìu ô tô

Trong quá trình triển khai Android Automotive, các trục được xác định theo khung thân xe. Xuất xứ của khung tham chiếu xe là tâm của trục sau. Khung tham chiếu xe được định hướng sao cho:

  • Trục X chỉ về bên phải và nằm trên một mặt phẳng ngang, vuông góc với mặt phẳng đối xứng của xe.
  • Trục Y hướng về phía trước và nằm trên mặt phẳng nằm ngang.
Hệ toạ độ của API cảm biến cho thiết bị ô tô

Hình 2. Hệ toạ độ (so với thiết bị ô tô) mà Sensor API sử dụng

Khung tham chiếu của xe là hệ toạ độ thuận tay phải. Do đó, trục Z hướng lên trên.

Trục Z của khung tham chiếu được căn chỉnh theo trọng lực, có nghĩa là cả trục X và trục Y đều nằm ngang. Do đó, trục Y có thể không phải lúc nào cũng đi qua trục trước.

Cảm biến cơ sở

Các loại cảm biến cơ sở được đặt tên theo cảm biến thực tế mà chúng đại diện. Các cảm biến này chuyển tiếp dữ liệu từ một cảm biến vật lý duy nhất (trái ngược với các cảm biến kết hợp tạo dữ liệu từ các cảm biến khác). Sau đây là một số ví dụ về các loại cảm biến cơ sở:

  • SENSOR_TYPE_ACCELEROMETER
  • SENSOR_TYPE_GYROSCOPE
  • SENSOR_TYPE_MAGNETOMETER

Tuy nhiên, cảm biến cơ sở không bằng và không nên bị nhầm lẫn với cảm biến vật lý cơ bản. Dữ liệu từ cảm biến cơ sở không phải là đầu ra thô của cảm biến vật lý vì các biện pháp sửa lỗi (chẳng hạn như bù độ lệch và bù nhiệt độ) được áp dụng.

Ví dụ: các đặc điểm của cảm biến cơ sở có thể khác với các đặc điểm của cảm biến vật lý cơ bản trong các trường hợp sử dụng sau:

  • Một khối con quay hồi chuyển được đánh giá là có phạm vi độ lệch là 1 deg/giây.
    • Sau khi hiệu chuẩn tại nhà máy, hệ thống sẽ áp dụng tính năng bù nhiệt độ và bù độ lệch, độ lệch thực tế của cảm biến Android sẽ giảm xuống, có thể là đến mức độ lệch được đảm bảo là dưới 0,01 deg/sec.
    • Trong trường hợp này, chúng ta nói rằng cảm biến Android có độ lệch dưới 0,01 độ/giây, mặc dù bảng dữ liệu của cảm biến cơ bản cho biết là 1 độ/giây.
  • Một áp kế có mức tiêu thụ điện năng là 100 uW.
    • Vì dữ liệu đã tạo cần được truyền từ chip sang SoC, nên chi phí điện năng thực tế để thu thập dữ liệu từ cảm biến Android của khí áp kế có thể cao hơn nhiều, chẳng hạn như 1000 uW.
    • Trong trường hợp này, chúng ta nói rằng cảm biến Android có mức tiêu thụ điện năng là 1000 uW, mặc dù mức tiêu thụ điện năng được đo tại đầu nối của chip áp kế là 100uW.
  • Một từ kế tiêu thụ 100uW khi được hiệu chỉnh, nhưng tiêu thụ nhiều hơn khi hiệu chuẩn.
    • Quy trình hiệu chỉnh của thiết bị này có thể yêu cầu kích hoạt con quay hồi chuyển, tiêu thụ 5000 uW và chạy một thuật toán nào đó, tiêu tốn thêm 900 uW.
    • Trong trường hợp này, chúng ta nói rằng mức tiêu thụ điện năng tối đa của cảm biến Android (máy đo từ trường) là 6000 uW.
    • Trong trường hợp này, mức tiêu thụ điện năng trung bình là biện pháp hữu ích hơn và là thông tin được báo cáo trong các đặc điểm tĩnh của cảm biến thông qua HAL.

Gia tốc kế

Chế độ báo cáo: Liên tục

getDefaultSensor(SENSOR_TYPE_ACCELEROMETER) trả về một cảm biến không đánh thức

Cảm biến gia tốc kế báo cáo gia tốc của thiết bị dọc theo ba trục cảm biến. Gia tốc được đo bao gồm cả gia tốc thực (thay đổi về vận tốc) và trọng lực. Kết quả đo lường được báo cáo trong các trường x, y và z củasensor_event_t.acceleration.

Tất cả các giá trị đều tính bằng đơn vị SI (m/s^2) và đo gia tốc của thiết bị trừ đi lực hấp dẫn dọc theo 3 trục của cảm biến.

Sau đây là ví dụ:

  • Giá trị chuẩn của (x, y, z) phải gần bằng 0 khi rơi tự do.
  • Khi thiết bị nằm phẳng trên mặt bàn và được đẩy ở bên trái về phía bên phải, giá trị gia tốc x sẽ dương.
  • Khi thiết bị nằm phẳng trên mặt bàn, giá trị gia tốc dọc theo trục z là +9,81 alo, tương ứng với gia tốc của thiết bị (0 m/s^2) trừ đi lực hấp dẫn (-9,81 m/s^2).
  • Khi thiết bị nằm phẳng trên mặt bàn và được đẩy về phía bầu trời, giá trị gia tốc lớn hơn +9,81, tương ứng với gia tốc của thiết bị (+A m/s^2) trừ đi lực hấp dẫn (-9,81 m/s^2).

Các kết quả đo được hiệu chuẩn bằng:

  • Bù trừ nhiệt độ
  • Hiệu chỉnh độ lệch trực tuyến
  • Hiệu chỉnh thang đo trực tuyến

Bạn chỉ được cập nhật độ lệch và hiệu chuẩn theo tỷ lệ khi cảm biến bị vô hiệu hoá để tránh gây ra sự biến động về giá trị trong quá trình truyền trực tuyến.

Gia tốc kế cũng báo cáo mức độ chính xác mà nó dự kiến sẽ đọc được thông qua sensors_event_t.acceleration.status. Hãy xem các hằng số SENSOR_STATUS_* của SensorManager để biết thêm thông tin về các giá trị có thể có cho trường này.

Nhiệt độ xung quanh

Chế độ báo cáo: Khi thay đổi

getDefaultSensor(SENSOR_TYPE_AMBIENT_TEMPERATURE) trả về một cảm biến không đánh thức

Cảm biến này cung cấp nhiệt độ môi trường xung quanh (trong phòng) tính theo độ C.

Cảm biến từ trường

Chế độ báo cáo: Liên tục

getDefaultSensor(SENSOR_TYPE_MAGNETIC_FIELD) trả về một cảm biến không đánh thức

SENSOR_TYPE_GEOMAGNETIC_FIELD == SENSOR_TYPE_MAGNETIC_FIELD

Cảm biến từ trường (còn gọi là nam châm kế) báo cáo từ trường xung quanh, được đo dọc theo ba trục cảm biến.

Kết quả đo lường được báo cáo trong các trường x, y và z của sensors_event_t.magnetic và tất cả các giá trị đều ở dạng micro-Tesla (uT).

Từ kế cũng cho biết độ chính xác dự kiến của từ kế cho đến hết sensors_event_t.magnetic.status. Hãy xem các hằng số SENSOR_STATUS_* của SensorManager để biết thêm thông tin về các giá trị có thể có cho trường này.

Kết quả đo được hiệu chỉnh dựa trên:

  • Bù nhiệt
  • Hiệu chỉnh từ tính mềm tại nhà máy (hoặc trực tuyến)
  • Hiệu chỉnh bàn ủi hơi nước trực tuyến

Con quay hồi chuyển

Chế độ báo cáo: Liên tục

getDefaultSensor(SENSOR_TYPE_GYROSCOPE) trả về một cảm biến không đánh thức

Một cảm biến con quay hồi chuyển báo cáo tốc độ xoay của thiết bị xung quanh 3 trục của cảm biến.

Độ xoay là dương theo hướng ngược chiều kim đồng hồ (quy tắc bàn tay phải). Tức là, một người quan sát nhìn từ một vị trí dương trên trục x, y hoặc z tại một thiết bị được đặt ở gốc sẽ báo cáo độ xoay dương nếu thiết bị có vẻ như đang xoay ngược chiều kim đồng hồ. Xin lưu ý rằng đây là định nghĩa toán học tiêu chuẩn về độ xoay dương và không đồng ý với định nghĩa về độ nghiêng trong ngành hàng không vũ trụ.

Kết quả đo lường được báo cáo trong các trường x, y và z của sensors_event_t.gyro và tất cả giá trị đều tính bằng radian trên giây (rad/s).

Kết quả đo được hiệu chỉnh dựa trên:

  • Bù trừ nhiệt độ
  • Bồi thường theo tỷ lệ ban đầu (hoặc trực tuyến)
  • Hiệu chỉnh độ lệch trực tuyến (để loại bỏ độ trễ)

Con quay hồi chuyển cũng cho biết độ chính xác của kết quả đo dự kiến cho đến hết sensors_event_t.gyro.status. Hãy xem các hằng số SENSOR_STATUS_* của SensorManager để biết thêm thông tin về các giá trị có thể có cho trường này.

Bạn không thể mô phỏng con quay hồi chuyển dựa trên máy đo từ trường và gia tốc kế, vì điều này sẽ làm giảm tính nhất quán và khả năng phản hồi cục bộ. Nó phải dựa trên một con chip con quay hồi chuyển thông thường.

Nhịp tim

Chế độ báo cáo: Khi thay đổi

getDefaultSensor(SENSOR_TYPE_HEART_RATE) trả về một cảm biến không đánh thức

Cảm biến tần số tim sẽ báo cáo nhịp tim hiện tại của người chạm vào thiết bị.

Nhịp tim hiện tại tính theo nhịp/phút được báo cáo trong sensors_event_t.heart_rate.bpm và trạng thái của cảm biến được báo cáo trong sensors_event_t.heart_rate.status. Hãy xem các hằng số SENSOR_STATUS_* của SensorManager để biết thêm thông tin về các giá trị có thể có cho trường này. Cụ thể, khi kích hoạt lần đầu tiên, trừ phi xác định là không có thiết bị trên nội dung, trường trạng thái của sự kiện đầu tiên phải được đặt thành SENSOR_STATUS_UNRELIABLE. Vì cảm biến này đang thay đổi, nên các sự kiện sẽ được tạo khi và chỉ khi heart_rate.bpm hoặc heart_rate.status thay đổi kể từ sự kiện gần đây nhất. Các sự kiện được tạo không nhanh hơn mỗi sampling_period.

sensor_t.requiredPermission luôn là SENSOR_PERMISSION_BODY_SENSORS.

Sáng

Chế độ báo cáo: Khi thay đổi

getDefaultSensor(SENSOR_TYPE_LIGHT) trả về một cảm biến không đánh thức

Cảm biến ánh sáng báo cáo độ sáng hiện tại theo đơn vị lux SI.

Kết quả đo lường được báo cáo trong sensors_event_t.light.

Cảm biến độ gần

Chế độ báo cáo: Khi thay đổi

Thường được định nghĩa là cảm biến đánh thức

getDefaultSensor(SENSOR_TYPE_PROXIMITY) trả về cảm biến đánh thức

Cảm biến tiệm cận báo cáo khoảng cách từ cảm biến đến bề mặt hiển thị gần nhất.

Cho đến Android 4.4, cảm biến khoảng cách luôn là cảm biến đánh thức, đánh thức SoC khi phát hiện sự thay đổi về khoảng cách. Sau Android 4.4, trước tiên, bạn nên triển khai phiên bản đánh thức của cảm biến này, vì đây là phiên bản dùng để bật và tắt màn hình trong khi thực hiện các cuộc gọi điện thoại.

Kết quả đo lường được báo cáo bằng cm trong sensors_event_t.distance. Xin lưu ý rằng một số cảm biến khoảng cách chỉ hỗ trợ phép đo lường nhị phân "gần" hoặc "xa". Trong trường hợp này, cảm biến sẽ báo cáo giá trị sensor_t.maxRange ở trạng thái "xa" và giá trị nhỏ hơn sensor_t.maxRange ở trạng thái "gần".

Áp lực

Chế độ báo cáo: Liên tục

getDefaultSensor(SENSOR_TYPE_PRESSURE) trả về một cảm biến không đánh thức

Cảm biến áp suất (còn gọi là khí áp kế) báo cáo áp suất khí quyển theo đơn vị hectopascal (hPa).

Các kết quả đo được hiệu chuẩn bằng

  • Bù trừ nhiệt độ
  • Hiệu chuẩn sai lệch ban đầu
  • Hiệu chỉnh theo tỷ lệ ban đầu

Khí áp kế thường được dùng để ước tính sự thay đổi độ cao. Để ước tính độ cao tuyệt đối, bạn phải sử dụng áp suất ở mực nước biển (thay đổi tuỳ thuộc vào thời tiết) làm tham chiếu.

Độ ẩm tương đối

Chế độ báo cáo: Khi thay đổi

getDefaultSensor(SENSOR_TYPE_RELATIVE_HUMIDITY) trả về một cảm biến không đánh thức

Cảm biến độ ẩm tương đối đo độ ẩm không khí xung quanh tương đối và trả về giá trị theo phần trăm.

Loại cảm biến tổng hợp

Cảm biến tổng hợp tạo dữ liệu bằng cách xử lý và/hoặc kết hợp dữ liệu từ một hoặc nhiều cảm biến thực. (Mọi cảm biến không phải là cảm biến cơ sở đều được gọi là cảm biến tổng hợp.) Ví dụ về cảm biến kết hợp bao gồm:

Cũng như cảm biến cơ sở, các đặc điểm của cảm biến tổng hợp đến từ các đặc điểm của dữ liệu cuối cùng. Ví dụ: mức tiêu thụ năng lượng của vectơ xoay trò chơi có thể bằng tổng mức tiêu thụ năng lượng của chip gia tốc kế, chip con quay hồi chuyển, chip xử lý dữ liệu và các bus truyền dữ liệu. Một ví dụ khác, độ lệch của vectơ xoay trò chơi phụ thuộc nhiều vào chất lượng của thuật toán hiệu chỉnh cũng như trên các đặc điểm cảm biến thực tế.

Bảng sau đây liệt kê các loại cảm biến tổng hợp có sẵn. Mỗi cảm biến tổng hợp dựa vào dữ liệu từ một hoặc nhiều cảm biến vật lý. Tránh chọn các cảm biến vật lý cơ bản khác để ước chừng kết quả vì chúng mang lại trải nghiệm kém cho người dùng.

Loại cảm biến Danh mục Cảm biến vật lý cơ bản Chế độ báo cáo

Vectơ xoay trò chơi

Thái độ

Gia tốc kế, con quay hồi chuyển, KHÔNG ĐƯỢC DÙNG con quay hồi chuyển

Liên tục

Vectơ xoay từ trường địa lý Cảm biến nguồn điện thấp

Thái độ

Gia tốc kế, từ kế, KHÔNG ĐƯỢC SỬ DỤNG con quay hồi chuyển

Liên tục

Cử chỉ xem nhanh Cảm biến tiết kiệm pin

Tương tác

Không xác định

Một lần

Gravity (Lực hấp dẫn)

Thái độ

Gia tốc kế, con quay hồi chuyển

Liên tục

Con quay hồi chuyển chưa được hiệu chuẩn

Chưa hiệu chuẩn

Con quay hồi chuyển

Liên tục

Tăng tốc tuyến tính

Hoạt động

Gia tốc kế, con quay hồi chuyển (nếu có) hoặc từ kế (nếu không có con quay hồi chuyển)

Liên tục

Chưa hiệu chuẩn từ trường

Chưa hiệu chuẩn

Từ kế

Liên tục

Hướng (không dùng nữa)

Thái độ

Gia tốc kế, từ kế, con quay hồi chuyển (nếu có)

Liên tục

Cử chỉ nhấc lên Cảm biến tiết kiệm pin

Tương tác

Không xác định

Một lần

Vectơ xoay

Thái độ

Gia tốc kế, từ kế, con quay hồi chuyển

Liên tục

Chuyển động đáng kể Cảm biến tiết kiệm pin

Hoạt động

Gia tốc kế (hoặc một cảm biến khác miễn là có công suất rất thấp)

Một lần

Bộ đếm bước Cảm biến tiết kiệm pin

Hoạt động

Gia tốc kế

Khi thay đổi

Thiết bị phát hiện bước Cảm biến tiết kiệm pin

Hoạt động

Gia tốc kế

Đặc biệt

Cảm biến độ nghiêng Cảm biến tiết kiệm pin

Hoạt động

Gia tốc kế

Đặc biệt

Cử chỉ đánh thức Cảm biến tiết kiệm pin

Tương tác

Không xác định

Một lần

Cảm biến pin yếu = Cảm biến tiết kiệm pin

Cảm biến tổng hợp hoạt động

Gia tốc tuyến tính

Cảm biến vật lý cơ bản: Gia tốc kế và con quay hồi chuyển (nếu có) (hoặc con quay hồi chuyển nếu không có)

Chế độ báo cáo: Liên tục

getDefaultSensor(SENSOR_TYPE_LINEAR_ACCELERATION) trả về một cảm biến không đánh thức

Cảm biến gia tốc tuyến tính báo cáo gia tốc tuyến tính của thiết bị trong khung cảm biến, không bao gồm trọng lực.

Về mặt lý thuyết, dữ liệu đầu ra là: đầu ra của gia tốc kế trừ đi đầu ra của cảm biến trọng lực. Giá trị này được báo cáo bằng m/s^2 trong các trường x, y và z của sensors_event_t.acceleration.

Giá trị đọc trên tất cả trục phải gần bằng 0 khi thiết bị không di chuyển.

Nếu thiết bị có con quay hồi chuyển, cảm biến gia tốc tuyến tính phải sử dụng con quay hồi chuyển và gia tốc kế làm đầu vào.

Nếu thiết bị không có con quay hồi chuyển, thì cảm biến gia tốc tuyến tính phải sử dụng gia tốc kế và từ kế làm đầu vào.

Chuyển động đáng kể

Cảm biến vật lý cơ bản: Gia tốc kế (hoặc một cảm biến khác miễn là có mức tiêu thụ điện năng thấp)

Chế độ báo cáo: Một lần

Tiết kiệm pin

Chỉ triển khai phiên bản đánh thức của cảm biến này.

getDefaultSensor(SENSOR_TYPE_SIGNIFICANT_MOTION) trả về cảm biến đánh thức

Một trình phát hiện chuyển động quan trọng sẽ kích hoạt khi phát hiện có chuyển động đáng kể: chuyển động có thể dẫn đến thay đổi về vị trí của người dùng.

Ví dụ về những chuyển động quan trọng đó là:

  • Đi bộ hoặc đi xe đạp
  • Ngồi trong ô tô, xe khách hoặc tàu đang di chuyển

Ví dụ về các tình huống không kích hoạt chuyển động đáng kể:

  • Điện thoại trong túi và người không di chuyển
  • Điện thoại đặt trên bàn và bàn hơi rung do lưu lượng truy cập hoặc máy giặt ở gần

Ở cấp cao, cảm biến chuyển động đáng kể được dùng để giảm mức tiêu thụ điện năng của tính năng xác định vị trí. Khi các thuật toán định vị phát hiện thiết bị ở trạng thái tĩnh, chúng có thể chuyển sang chế độ tiết kiệm pin, trong đó các thuật toán này dựa vào chuyển động đáng kể để đánh thức thiết bị khi người dùng thay đổi vị trí.

Cảm biến này phải có công suất thấp. Phương pháp này đánh đổi mức tiêu thụ điện năng có thể dẫn đến một lượng nhỏ kết quả âm tính giả. Việc này được thực hiện vì một số lý do:

  • Mục tiêu của cảm biến này là tiết kiệm pin.
  • Việc kích hoạt một sự kiện khi người dùng không di chuyển (dương tính giả) sẽ gây tốn kém về nguồn điện, vì vậy, bạn nên tránh thực hiện thao tác này.
  • Bạn có thể chấp nhận việc không kích hoạt sự kiện khi người dùng đang di chuyển (sai âm tính) miễn là điều này không xảy ra nhiều lần. Nếu người dùng đã đi bộ trong 10 giây, thì không được phép không kích hoạt sự kiện trong 10 giây đó.

Mỗi sự kiện cảm biến sẽ báo cáo 1 trong sensors_event_t.data[0].

Trình phát hiện bước

Cảm biến vật lý cơ bản: Gia tốc kế (+ có thể là cảm biến khác nếu pin yếu)

Chế độ báo cáo: Đặc biệt (một sự kiện trong mỗi bước thực hiện)

Pin yếu

getDefaultSensor(SENSOR_TYPE_STEP_DETECTOR) trả về một cảm biến không đánh thức

Trình phát hiện bước sẽ tạo một sự kiện mỗi khi người dùng đi một bước.

Dấu thời gian của sự kiện sensors_event_t.timestamp tương ứng với thời điểm chân chạm đất, tạo ra sự biến đổi lớn về gia tốc.

So với bộ đếm bước, trình phát hiện bước phải có độ trễ thấp hơn (dưới 2 giây). Cả trình phát hiện bước và bộ đếm bước đều phát hiện khi người dùng đang đi bộ, chạy và đi lên cầu thang. Các thông báo này không được kích hoạt khi người dùng đang đi xe đạp, lái xe hoặc ở trên các phương tiện khác.

Cảm biến này phải có công suất thấp. Tức là nếu không thể phát hiện bước trong phần cứng, bạn không nên xác định cảm biến này. Cụ thể, khi trình phát hiện bước được kích hoạt và gia tốc kế không được kích hoạt, chỉ các bước mới kích hoạt các ngắt (không phải mọi lần đọc gia tốc kế).

sampling_period_ns không ảnh hưởng đến trình phát hiện bước.

Mỗi sự kiện cảm biến sẽ báo cáo 1 trong sensors_event_t.data[0].

Bộ đếm số bước

Cảm biến vật lý cơ bản: Gia tốc kế (+ có thể có các cảm biến khác miễn là có công suất thấp)

Chế độ báo cáo: Khi thay đổi

Tiết kiệm pin

getDefaultSensor(SENSOR_TYPE_STEP_COUNTER) trả về một cảm biến không đánh thức

Bộ đếm bước sẽ báo cáo số bước mà người dùng đã đi kể từ lần khởi động lại gần đây nhất trong khi kích hoạt.

Giá trị đo lường được báo cáo dưới dạng uint64_t trong sensors_event_t.step_counter và chỉ được đặt lại về 0 khi khởi động lại hệ thống.

Dấu thời gian của sự kiện được đặt thành thời điểm thực hiện bước cuối cùng của sự kiện đó.

Xem loại cảm biến Trình phát hiện bước để biết ý nghĩa của thời gian của một bước.

So với trình phát hiện bước, bộ đếm bước có thể có độ trễ cao hơn (lên đến 10 giây). Nhờ độ trễ này, cảm biến này có độ chính xác cao; số bước sau một ngày đo lường đầy đủ phải nằm trong khoảng 10% số bước thực tế. Cả trình phát hiện bước và bộ đếm bước đều phát hiện thời điểm người dùng đi bộ, chạy và đi cầu thang bộ. Các thông báo này không được kích hoạt khi người dùng đi xe đạp, lái xe hoặc ngồi trên các phương tiện khác.

Phần cứng phải đảm bảo số bước bên trong không bao giờ tràn. Kích thước tối thiểu của bộ đếm nội bộ của phần cứng phải là 16 bit. Trong trường hợp tràn nước sắp xảy ra (tối đa mỗi khoảng 2^16 bước), SoC có thể được đánh thức để trình điều khiển có thể thực hiện bảo trì bộ đếm.

Như đã nêu trong phần Tương tác, trong khi hoạt động, cảm biến này sẽ không làm gián đoạn bất kỳ cảm biến nào khác, đặc biệt là gia tốc kế có thể đang hoạt động.

Nếu một thiết bị cụ thể không thể hỗ trợ các chế độ hoạt động này, thì HAL không được báo cáo loại cảm biến này. Tức là bạn không được phép "mô phỏng" cảm biến này trong HAL.

Cảm biến này phải có công suất thấp. Tức là nếu không thể phát hiện bước đi trong phần cứng, bạn không nên xác định cảm biến này. Cụ thể, khi bộ đếm bước được kích hoạt và gia tốc kế không được kích hoạt, chỉ các bước mới kích hoạt các ngắt (không phải dữ liệu gia tốc kế).

Trình phát hiện độ nghiêng

Cảm biến vật lý cơ bản: Gia tốc kế (+ có thể có các cảm biến khác miễn là có công suất thấp)

Chế độ báo cáo: Đặc biệt

Công suất thấp

Chỉ triển khai phiên bản đánh thức của cảm biến này.

getDefaultSensor(SENSOR_TYPE_TILT_DETECTOR) trả về cảm biến đánh thức

Trình phát hiện độ nghiêng tạo ra một sự kiện mỗi khi phát hiện sự kiện nghiêng.

Sự kiện nghiêng được xác định theo hướng của trọng lực trung bình của cửa sổ trong 2 giây thay đổi ít nhất 35 độ kể từ khi cảm biến kích hoạt hoặc sự kiện gần đây nhất tạo ra. Sau đây là thuật toán:

  • reference_estimated_gravity = giá trị trung bình của các phép đo gia tốc kế trong giây đầu tiên sau khi kích hoạt hoặc trọng lực ước tính khi sự kiện nghiêng gần đây nhất được tạo.
  • current_estimated_gravity = giá trị trung bình của các phép đo gia tốc kế trong 2 giây qua.
  • Kích hoạt khi angle(reference_estimated_gravity, current_estimated_gravity) > 35 degrees

Gia tốc lớn mà không thay đổi hướng điện thoại sẽ không kích hoạt sự kiện nghiêng. Ví dụ: việc rẽ cua gấp hoặc tăng tốc mạnh khi lái xe không được kích hoạt sự kiện nghiêng, mặc dù góc của gia tốc trung bình có thể thay đổi hơn 35 độ. Thông thường, cảm biến này chỉ được triển khai với sự trợ giúp của một gia tốc kế. Bạn cũng có thể sử dụng các cảm biến khác nếu chúng không làm tăng mức tiêu thụ điện năng đáng kể. Đây là cảm biến tiêu thụ điện năng thấp, cho phép SoC chuyển sang chế độ tạm ngưng. Không mô phỏng cảm biến này trong HAL. Mỗi sự kiện cảm biến sẽ báo cáo 1 trong sensors_event_t.data[0].

Cảm biến tổng hợp của góc phương vị

Vectơ xoay

Các cảm biến vật lý cơ bản: Gia tốc kế, la bàn và con quay hồi chuyển

Chế độ báo cáo: Liên tục

getDefaultSensor(SENSOR_TYPE_ROTATION_VECTOR) trả về một cảm biến không đánh thức

Cảm biến vectơ xoay báo cáo hướng của thiết bị so với khung toạ độ Đông-Bắc-Lên. Thông tin này thường có được bằng cách tích hợp các chỉ số gia tốc kế, con quay hồi chuyển và từ kế. Hệ toạ độ Đông-Bắc-Lên được xác định là một cơ sở trực tiếp trực giao trong đó:

  • X điểm về phía đông và tiếp tuyến với mặt đất.
  • Y chỉ về hướng bắc và tiếp xúc với mặt đất.
  • Z hướng lên trời và vuông góc với mặt đất.

Hướng của điện thoại được biểu thị bằng độ xoay cần thiết để căn chỉnh toạ độ Đông-Bắc-Lên với toạ độ của điện thoại. Tức là việc áp dụng phép xoay cho khung thế giới (X,Y,Z) sẽ căn chỉnh các khung đó với toạ độ điện thoại (x,y,z).

Bạn có thể xem việc xoay điện thoại theo góc theta xung quanh trục rot_axis là chuyển từ hướng thiết bị tham chiếu (được căn chỉnh theo hướng Đông-Bắc-Lên) sang hướng thiết bị hiện tại. Độ xoay được mã hoá dưới dạng 4 thành phần x, y, z, w không có đơn vị của một quaternion đơn vị:

  • sensors_event_t.data[0] = rot_axis.x*sin(theta/2)
  • sensors_event_t.data[1] = rot_axis.y*sin(theta/2)
  • sensors_event_t.data[2] = rot_axis.z*sin(theta/2)
  • sensors_event_t.data[3] = cos(theta/2)

Trong trường hợp:

  • Các trường x, y và z của rot_axis là các toạ độ Đông-Bắc-Lên của một vectơ độ dài đơn vị đại diện cho trục quay
  • theta là góc xoay

Quaternion là một quaternion đơn vị: Nó phải là chuẩn 1. Nếu không đảm bảo điều này, ứng dụng sẽ có hành vi không ổn định.

Ngoài ra, cảm biến này báo cáo độ chính xác ước tính của tiêu đề:

sensors_event_t.data[4] = estimated_accuracy (tính bằng radian)

Lỗi tiêu đề phải nhỏ hơn estimated_accuracy 95% thời gian. Cảm biến này phải sử dụng con quay hồi chuyển làm đầu vào thay đổi hướng chính.

Cảm biến này cũng sử dụng đầu vào gia tốc kế và từ kế để bù cho độ lệch của con quay hồi chuyển và không thể triển khai chỉ bằng gia tốc kế và từ kế.

Vectơ xoay trò chơi

Cảm biến vật lý cơ bản: Gia tốc kế và con quay hồi chuyển (không có từ kế)

Chế độ báo cáo: Liên tục

getDefaultSensor(SENSOR_TYPE_GAME_ROTATION_VECTOR) trả về một cảm biến không đánh thức

Cảm biến vectơ xoay trò chơi tương tự như cảm biến vectơ xoay nhưng không sử dụng từ trường. Do đó, trục Y không chỉ về hướng bắc mà thay vào đó là một số tệp tham chiếu khác. Giá trị tham chiếu đó được phép trôi theo cùng thứ tự độ lớn khi con quay hồi chuyển trôi xung quanh trục Z.

Hãy xem cảm biến Vectơ xoay để biết thông tin chi tiết về cách đặt sensors_event_t.data[0-3]. Cảm biến này không báo cáo độ chính xác ước tính của tiêu đề: sensors_event_t.data[4] được dành riêng và cần được đặt thành 0.

Trong trường hợp lý tưởng, điện thoại xoay và quay lại cùng một hướng thực tế sẽ báo cáo cùng một vectơ xoay trò chơi.

Cảm biến này phải dựa trên con quay hồi chuyển và gia tốc kế. Ngoài ra, mô hình này không thể sử dụng từ kế làm đầu vào gián tiếp thông qua việc ước tính độ lệch con quay hồi chuyển.

Gravity (Trọng lực)

Cảm biến vật lý cơ bản: Gia tốc kế và con quay hồi chuyển (nếu có) (hoặc con quay hồi chuyển nếu không có)

Chế độ báo cáo: Liên tục

getDefaultSensor(SENSOR_TYPE_GRAVITY) trả về một cảm biến không đánh thức

Cảm biến trọng lực báo cáo hướng và cường độ trọng lực trong hệ toạ độ của thiết bị.

Các thành phần vectơ trọng lực được báo cáo theo m/s^2 trong các trường x, y và z của sensors_event_t.acceleration.

Khi thiết bị ở trạng thái nghỉ, đầu ra của cảm biến trọng lực phải giống hệt với đầu ra của gia tốc kế. Trên Trái Đất, gia tốc trọng lực là khoảng 9,8 m/s^2.

Nếu thiết bị có con quay hồi chuyển, cảm biến trọng lực phải sử dụng con quay hồi chuyển và gia tốc kế làm đầu vào.

Nếu thiết bị không có con quay hồi chuyển, thì cảm biến trọng lực phải sử dụng gia tốc kế và la bàn làm đầu vào.

Vectơ xoay địa từ

Cảm biến vật lý cơ bản: Gia tốc kế và la bàn (không có con quay hồi chuyển)

Chế độ báo cáo: Liên tục

Tiết kiệm pin

getDefaultSensor(SENSOR_TYPE_GEOMAGNETIC_ROTATION_VECTOR) trả về một cảm biến không đánh thức

Vectơ xoay từ trường địa lý tương tự như cảm biến vectơ xoay nhưng sử dụng máy đo từ trường và không có con quay hồi chuyển.

Cảm biến này phải dựa trên máy đo từ trường. Bạn không thể triển khai thao tác này bằng con quay hồi chuyển và cảm biến này không thể sử dụng dữ liệu đầu vào con quay hồi chuyển.

Hãy xem cảm biến Vectơ xoay để biết thông tin chi tiết về cách đặt sensors_event_t.data[0-4].

Giống như đối với cảm biến vectơ xoay, lỗi hướng phải nhỏ hơn độ chính xác ước tính (sensors_event_t.data[4]) 95% thời gian.

Cảm biến này phải có công suất thấp nên phải được triển khai trong phần cứng.

Hướng (không dùng nữa)

Các cảm biến vật lý cơ bản: Gia tốc kế, la bàn và con quay hồi chuyển (nếu có)

Chế độ báo cáo: Liên tục

getDefaultSensor(SENSOR_TYPE_ORIENTATION) trả về một cảm biến không đánh thức

Lưu ý: Đây là loại cảm biến cũ không còn được dùng trong SDK Android. Cảm biến này đã được thay thế bằng cảm biến vectơ xoay, được xác định rõ ràng hơn. Sử dụng cảm biến vectơ xoay thay vì cảm biến hướng bất cứ khi nào có thể.

Cảm biến hướng báo cáo tư thế của thiết bị. Các phép đo được báo cáo theo độ trong các trường x, y và z của sensors_event_t.orientation:

  • sensors_event_t.orientation.x: góc phương vị, góc giữa hướng bắc từ và trục Y, xung quanh trục Z (0<=azimuth<360). 0=Bắc, 90=Đông, 180=Nam, 270=Tây.
  • sensors_event_t.orientation.y: độ dốc, độ xoay xung quanh trục X (-180<=pitch<=180), với các giá trị dương khi trục Z di chuyển về phía trục Y.
  • sensors_event_t.orientation.z: lăn, xoay quanh trục Y (-90<=roll<=90), với các giá trị dương khi trục X di chuyển về phía trục Z.

Xin lưu ý rằng, vì lý do lịch sử, góc nghiêng là dương theo hướng kim đồng hồ. (Theo toán học, giá trị này phải là dương theo hướng ngược chiều kim đồng hồ):

Mô tả hướng tương ứng với một thiết bị

Hình 3. Hướng tương ứng với một thiết bị

Định nghĩa này khác với độ lệch hướng, độ dốc và độ nghiêng được dùng trong ngành hàng không, trong đó trục X nằm dọc theo cạnh dài của máy bay (đuôi đến mũi).

Cảm biến hướng cũng báo cáo mức độ chính xác mà cảm biến dự kiến sẽ đọc được thông qua sensors_event_t.orientation.status. Hãy xem các hằng số SENSOR_STATUS_* của SensorManager để biết thêm thông tin về các giá trị có thể có cho trường này.

Cảm biến chưa được hiệu chuẩn

Cảm biến chưa được hiệu chỉnh cung cấp nhiều kết quả thô hơn và có thể bao gồm một số độ lệch, nhưng cũng chứa ít "bước nhảy" hơn từ các biện pháp sửa lỗi được áp dụng thông qua quá trình hiệu chỉnh. Một số ứng dụng có thể ưu tiên những kết quả chưa được hiệu chỉnh này vì chúng mượt mà và đáng tin cậy hơn. Ví dụ: nếu một ứng dụng đang cố gắng thực hiện quá trình hợp nhất cảm biến của riêng mình, thì việc đưa ra thông tin hiệu chuẩn có thể làm méo kết quả.

Gia tốc kế chưa được hiệu chuẩn

Cảm biến vật lý cơ bản: Gia tốc kế

Chế độ báo cáo: Liên tục

getDefaultSensor(SENSOR_TYPE_ACCELEROMETER_UNCALIBRATED) trả về một cảm biến không đánh thức

Cảm biến gia tốc kế chưa được hiệu chuẩn báo cáo gia tốc của thiết bị dọc theo ba trục cảm biến mà không cần hiệu chỉnh độ lệch (độ lệch của nhà máy và hệ số bù nhiệt được áp dụng cho các phép đo chưa được hiệu chuẩn), cùng với một ước tính độ lệch. Tất cả giá trị đều tính theo đơn vị SI (m/s^2) và được báo cáo trong các trường của sensors_event_t.uncalibrated_accelerometer:

  • x_uncalib: gia tốc (không có bù độ lệch) dọc theo trục X
  • y_uncalib: gia tốc (không có bù độ lệch) dọc theo trục Y
  • z_uncalib: gia tốc (không có bù độ lệch) dọc theo trục Z
  • x_bias: độ lệch ước tính dọc theo trục X
  • y_bias: độ lệch ước tính dọc theo trục Y
  • z_bias: độ lệch ước tính dọc theo trục Z

Con quay hồi chuyển chưa được hiệu chuẩn

Cảm biến vật lý cơ bản: Con quay hồi chuyển

Chế độ báo cáo: Liên tục

getDefaultSensor(SENSOR_TYPE_GYROSCOPE_UNCALIBRATED) trả về một cảm biến không đánh thức

Con quay hồi chuyển chưa được hiệu chuẩn báo cáo tốc độ xoay xung quanh trục cảm biến mà không áp dụng biện pháp bù độ lệch cho các trục đó, cùng với ước tính độ lệch. Tất cả giá trị được tính bằng radian/giây và được báo cáo trong các trường của sensors_event_t.uncalibrated_gyro:

  • x_uncalib: tốc độ góc (không có bù trượt) xung quanh trục X
  • y_uncalib: tốc độ góc (không có bù trượt) xung quanh trục Y
  • z_uncalib: tốc độ góc (không có bù trượt) xung quanh trục Z
  • x_bias: độ lệch ước tính xung quanh trục X
  • y_bias: độ lệch ước tính xung quanh trục Y
  • z_bias: độ trôi ước tính quanh trục Z

Về mặt khái niệm, phép đo chưa được hiệu chuẩn là tổng của phép đo đã được hiệu chuẩn và giá trị ước tính độ lệch: _uncalibrated = _calibrated + _bias.

Các giá trị x_bias, y_biasz_bias dự kiến sẽ tăng lên ngay khi giá trị ước tính của độ lệch thay đổi và các giá trị này sẽ ổn định trong thời gian còn lại.

Xem định nghĩa của cảm biến con quay hồi chuyển để biết chi tiết về hệ toạ độ được sử dụng.

Bạn phải áp dụng quy trình hiệu chuẩn ban đầu và bù nhiệt độ cho các phép đo. Ngoài ra, bạn phải triển khai thông tin ước tính về độ trôi của con quay hồi chuyển để có thể báo cáo số liệu ước tính hợp lý trong x_bias, y_biasz_bias. Nếu quá trình triển khai không thể ước tính độ lệch, thì bạn không được triển khai cảm biến này.

Nếu có cảm biến này, thì cảm biến Con quay hồi chuyển tương ứng cũng phải xuất hiện và cả hai cảm biến phải có cùng giá trị sensor_t.namesensor_t.vendor.

Từ trường chưa được hiệu chỉnh

Cảm biến vật lý cơ bản: Máy đo từ trường

Chế độ báo cáo: Liên tục

getDefaultSensor(SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED) trả về một cảm biến không đánh thức

Cảm biến từ trường chưa được hiệu chỉnh sẽ báo cáo từ trường xung quanh cùng với số liệu ước tính về hiệu chuẩn cứng. Tất cả giá trị đều tính bằng micro-Tesla (uT) và được báo cáo trong các trường của sensors_event_t.uncalibrated_magnetic:

  • x_uncalib: từ trường (không có bù cứng) dọc theo trục X
  • y_uncalib: từ trường (không có bù sắt cứng) dọc theo trục Y
  • z_uncalib: từ trường (không có bù sắt cứng) dọc theo trục Z
  • x_bias: độ lệch từ tính cứng ước tính dọc theo trục X
  • y_bias: độ chệch ước tính của sắt cứng dọc theo trục Y
  • z_bias: độ chệch ước tính của sắt cứng dọc theo trục Z

Về mặt khái niệm, phép đo chưa được hiệu chuẩn là tổng của phép đo đã được hiệu chuẩn và giá trị ước tính độ lệch: _uncalibrated = _calibrated + _bias.

Máy đo từ trường chưa được hiệu chuẩn cho phép các thuật toán cấp cao hơn xử lý việc ước tính sắt cứng không tốt. Các giá trị x_bias, y_biasz_bias dự kiến sẽ tăng ngay khi giá trị ước tính của phần cứng thay đổi và sẽ ổn định trong thời gian còn lại.

Bạn phải áp dụng phương pháp hiệu chuẩn sắt mềm và bù trừ nhiệt độ cho các phép đo. Ngoài ra, bạn phải triển khai tính năng ước tính cứng để có thể báo cáo các số liệu ước tính hợp lý trong x_bias, y_biasz_bias. Nếu quá trình triển khai không thể ước tính độ chệch, thì bạn sẽ không được triển khai cảm biến này.

Nếu có cảm biến này, thì phải có cảm biến từ trường tương ứng và cả hai cảm biến phải có cùng giá trị sensor_t.namesensor_t.vendor.

Góc bản lề

Chế độ báo cáo: Khi thay đổi

getDefaultSensor(SENSOR_TYPE_HINGE_ANGLE) trả về cảm biến đánh thức

Cảm biến góc bản lề đo góc (theo độ) giữa hai phần tích hợp của thiết bị. Chuyển động của bản lề được loại cảm biến này đo lường dự kiến sẽ thay đổi cách người dùng có thể tương tác với thiết bị, chẳng hạn như bằng cách mở hoặc để lộ màn hình.

Cảm biến tổng hợp tương tác

Một số cảm biến chủ yếu được dùng để phát hiện các hoạt động tương tác với người dùng. Chúng tôi không xác định cách triển khai các cảm biến đó, nhưng chúng phải có mức tiêu thụ điện năng thấp và nhà sản xuất thiết bị có trách nhiệm xác minh chất lượng của các cảm biến đó về trải nghiệm người dùng.

Cử chỉ đánh thức

Cảm biến vật lý cơ bản: Chưa xác định (bất kỳ thiết bị nào có công suất thấp)

Chế độ báo cáo: Một lần

Tiết kiệm pin

Chỉ triển khai phiên bản đánh thức của cảm biến này.

getDefaultSensor(SENSOR_TYPE_WAKE_GESTURE) trả về cảm biến đánh thức

Cảm biến cử chỉ đánh thức cho phép đánh thức thiết bị dựa trên một chuyển động cụ thể của thiết bị. Khi cảm biến này kích hoạt, thiết bị sẽ hoạt động như thể nút nguồn đã được nhấn, bật màn hình. Người dùng có thể tắt hành vi này (bật màn hình khi cảm biến này kích hoạt) trong phần cài đặt thiết bị. Các thay đổi trong chế độ cài đặt không ảnh hưởng đến hành vi của cảm biến mà chỉ ảnh hưởng đến việc khung có bật màn hình khi kích hoạt hay không. Cử chỉ thực tế cần phát hiện không được chỉ định và có thể do nhà sản xuất thiết bị chọn.

Cảm biến này phải ở mức pin thấp vì có thể đã được kích hoạt 24/7.

Mỗi sự kiện cảm biến sẽ báo cáo 1 trong sensors_event_t.data[0].

Cử chỉ nhấc lên

Cảm biến vật lý cơ bản: Không xác định (bất kỳ thứ gì tiết kiệm pin)

Chế độ báo cáo: Một lần

Tiết kiệm pin

Chỉ triển khai phiên bản đánh thức của cảm biến này.

getDefaultSensor(SENSOR_TYPE_PICK_UP_GESTURE) trả về cảm biến đánh thức

Cảm biến cử chỉ nhấc lên sẽ kích hoạt khi thiết bị được nhấc lên bất kể vị trí trước đó (bàn, túi, túi xách).

Mỗi sự kiện cảm biến sẽ báo cáo 1 trong sensors_event_t.data[0].

Cử chỉ xem nhanh

Cảm biến vật lý cơ bản: Chưa xác định (bất kỳ thiết bị nào có công suất thấp)

Chế độ báo cáo: Một lần

Tiết kiệm pin

Chỉ triển khai phiên bản đánh thức của cảm biến này.

getDefaultSensor(SENSOR_TYPE_GLANCE_GESTURE) trả về cảm biến đánh thức

Cảm biến cử chỉ liếc nhanh cho phép bật nhanh màn hình để người dùng có thể xem nhanh nội dung trên màn hình dựa trên một chuyển động cụ thể. Khi cảm biến này kích hoạt, thiết bị sẽ bật màn hình trong giây lát để cho phép người dùng xem nhanh thông báo hoặc nội dung khác trong khi thiết bị vẫn ở trạng thái khoá không tương tác (ngủ đông), sau đó màn hình sẽ tắt lại. Người dùng có thể huỷ kích hoạt hành vi này (bật màn hình trong thời gian ngắn khi cảm biến này kích hoạt) trong phần cài đặt thiết bị. Các thay đổi trong chế độ cài đặt không ảnh hưởng đến hành vi của cảm biến: chỉ là liệu khung có bật nhanh màn hình khi cảm biến kích hoạt hay không. Cử chỉ thực tế cần phát hiện không được chỉ định và có thể do nhà sản xuất thiết bị chọn.

Cảm biến này phải có mức tiêu thụ điện năng thấp vì có thể được kích hoạt 24/7. Mỗi sự kiện cảm biến sẽ báo cáo 1 trong sensors_event_t.data[0].

Cảm biến IMU trục giới hạn

Có trên Android 13, cảm biến IMU trục giới hạn là những cảm biến hỗ trợ các trường hợp sử dụng khi không có cả 3 trục (x, y, z). Các loại IMU chuẩn trong Android (chẳng hạn như SENSOR_TYPE_ACCELEROMETER SENSOR_TYPE_GYROSCOPE) giả định rằng cả 3 trục đều được hỗ trợ. Tuy nhiên, không phải kiểu dáng và thiết bị nào cũng hỗ trợ gia tốc kế 3 trục và con quay hồi chuyển 3 trục.

Trục bị giới hạn của gia tốc kế

Cảm biến vật lý cơ bản: Gia tốc kế

Chế độ báo cáo: Liên tục

getDefaultSensor(SENSOR_TYPE_ACCELEROMETER_LIMITED_AXES) trả về một cảm biến không đánh thức

Cảm biến trục giới hạn gia tốc kế tương đương với TYPE_ACCELEROMETER nhưng hỗ trợ các trường hợp không hỗ trợ một hoặc hai trục.

Ba giá trị sự kiện cảm biến gần đây nhất do cảm biến báo cáo cho biết liệu giá trị gia tốc cho trục x, y và z có được hỗ trợ hay không. Giá trị 1.0 cho biết trục được hỗ trợ và giá trị 0 cho biết trục không được hỗ trợ. Nhà sản xuất thiết bị xác định các trục được hỗ trợ tại thời điểm tạo bản dựng và các giá trị này không thay đổi trong thời gian chạy.

Nhà sản xuất thiết bị phải đặt giá trị gia tốc cho các trục không sử dụng thành 0, thay vì có giá trị không xác định.

Trục bị giới hạn của con quay hồi chuyển

Cảm biến vật lý cơ bản: Con quay hồi chuyển

Chế độ báo cáo: Liên tục

getDefaultSensor(SENSOR_TYPE_GYROSCOPE_LIMITED_AXES) trả về một cảm biến không đánh thức

Cảm biến trục giới hạn con quay hồi chuyển tương đương với TYPE_GYROSCOPE nhưng hỗ trợ các trường hợp không hỗ trợ một hoặc hai trục.

Ba giá trị sự kiện cảm biến gần đây nhất do cảm biến báo cáo cho biết liệu giá trị tốc độ góc cho trục x, y và z có được hỗ trợ hay không. Giá trị 1.0 cho biết trục được hỗ trợ và giá trị 0 cho biết trục không được hỗ trợ. Nhà sản xuất thiết bị xác định các trục được hỗ trợ tại thời điểm tạo bản dựng và các giá trị này không thay đổi trong thời gian chạy.

Nhà sản xuất thiết bị phải đặt giá trị tốc độ góc cho các trục không sử dụng thành 0.

Các trục bị hạn chế của cảm biến gia tốc chưa được hiệu chuẩn

Cảm biến vật lý cơ bản: Gia tốc kế

Chế độ báo cáo: Liên tục

getDefaultSensor(SENSOR_TYPE_ACCELEROMETER_LIMITED_AXES_UNCALIBRATED) trả về một cảm biến không đánh thức

Cảm biến chưa được hiệu chỉnh về trục giới hạn của gia tốc kế tương đương với TYPE_ACCELEROMETER_UNCALIBRATED nhưng hỗ trợ các trường hợp không hỗ trợ một hoặc hai trục.

Ba giá trị sự kiện cảm biến gần đây nhất do cảm biến báo cáo cho biết liệu giá trị gia tốc và độ lệch cho trục x, y và z có được hỗ trợ hay không. Giá trị 1.0 cho biết trục được hỗ trợ và giá trị 0 cho biết trục không được hỗ trợ. Nhà sản xuất thiết bị sẽ xác định các trục được hỗ trợ tại thời điểm xây dựng và các giá trị sẽ không thay đổi trong thời gian chạy.

Nhà sản xuất thiết bị phải đặt giá trị tăng tốc và độ chệch cho các trục không sử dụng thành 0.

Các trục giới hạn của con quay hồi chuyển chưa được hiệu chỉnh

Cảm biến vật lý cơ bản: Con quay hồi chuyển

Chế độ báo cáo: Liên tục

getDefaultSensor(SENSOR_TYPE_GYROSCOPE_LIMITED_AXES_UNCALIBRATED) trả về một cảm biến không đánh thức

Cảm biến chưa được hiệu chuẩn theo trục giới hạn của con quay hồi chuyển tương đương với TYPE_GYROSCOPE_UNCALIBRATED nhưng hỗ trợ các trường hợp không hỗ trợ một hoặc hai trục.

Ba giá trị sự kiện cảm biến gần đây nhất do cảm biến báo cáo cho biết liệu giá trị tốc độ góc và độ lệch cho trục x, y và z có được hỗ trợ hay không. Giá trị 1.0 cho biết trục được hỗ trợ và giá trị 0 cho biết trục không được hỗ trợ. Nhà sản xuất thiết bị xác định các trục được hỗ trợ tại thời điểm tạo bản dựng và các giá trị này không thay đổi trong thời gian chạy.

Nhà sản xuất thiết bị phải đặt tốc độ góc và giá trị độ lệch cho các trục không sử dụng thành 0.

IMU trục giới hạn tổng hợp

Cảm biến vật lý cơ bản: Mọi tổ hợp cảm biến gia tốc kế 3 trục, con quay hồi chuyển 3 trục, gia tốc kế 3 trục chưa được hiệu chuẩn và con quay hồi chuyển 3 trục chưa được hiệu chuẩn.

Chế độ báo cáo: Liên tục

Cảm biến IMU trục giới hạn tổng hợp tương đương với cảm biến IMU trục giới hạn, nhưng thay vì được hỗ trợ tại HAL, cảm biến này sẽ chuyển đổi dữ liệu cảm biến 3 trục thành các biến thể trục giới hạn tương đương. Các cảm biến tổng hợp này chỉ được bật cho các thiết bị ô tô.

Bảng sau đây cho thấy ví dụ về việc chuyển đổi từ gia tốc kế 3 trục tiêu chuẩn sang gia tốc kế trục giới hạn tổng hợp.

Giá trị SensorEvent cho SENSOR_TYPE_ACCELEROMETER Ví dụ về SensorEvent SENSOR_TYPE_ACCELEROMETER SensorEvent tổng hợp SENSOR_TYPE_ACCELEROMETER_LIMITED_AXES
values[0]

-0,065

-0,065

values[1]

0,078

0,078

values[2]

9,808

9,808

values[3]

Không áp dụng

1.0

values[4]

Không áp dụng

1.0

values[5]

Không áp dụng

1.0

Cảm biến ô tô

Cảm biến hỗ trợ các trường hợp sử dụng trong ngành ô tô.

Tiêu đề

Cảm biến vật lý cơ bản: Bất kỳ sự kết hợp nào của GPS, la bàn, gia tốc kế và con quay hồi chuyển.

Chế độ báo cáo: Liên tục

getDefaultSensor(SENSOR_TYPE_HEADING) trả về một cảm biến không đánh thức

Có trên Android 13, một cảm biến tiêu đề sẽ đo lường hướng mà thiết bị đang trỏ so với hướng bắc thực tế theo độ. Cảm biến hướng bao gồm hai giá trị SensorEvent. Một cho tiêu đề thiết bị được đo lường và một cho độ chính xác của giá trị tiêu đề được cung cấp.

Giá trị hướng do cảm biến này báo cáo phải nằm trong khoảng từ 0.0 (bao gồm) đến 360.0 (không bao gồm), trong đó 0 chỉ hướng bắc, 90 chỉ hướng đông, 180 chỉ hướng nam và 270 chỉ hướng tây.

Độ chính xác của cảm biến này được xác định với độ tin cậy là 68%. Trong trường hợp phân phối cơ bản là phân phối chuẩn Gaussian, độ chính xác là một độ lệch chuẩn. Ví dụ: nếu cảm biến tiêu đề trả về giá trị tiêu đề là 60 độ và giá trị chính xác là 10 độ, thì có 68% xác suất tiêu đề thực nằm trong khoảng từ 50 độ đến 70 độ.