Các 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 chỉnh và tương tác).

Trục cảm biến

Các giá trị sự kiện cảm biến từ nhiều cảm biến được thể hiện trong một khung 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 bị hoán đổi khi hướng màn hình của thiết bị thay đổi.

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

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

Trục ô tô

Trong quá trình triển khai Android Automotive, các trục được xác định tương ứng với khung thân xe. Gốc của hệ quy chiếu xe là tâm của trục sau. Hệ quy chiếu xe được định hướng sao cho:

  • Trục X hướng về bên phải và nằm trên mặt phẳng nằm 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ệ tọa độ API cảm biến cho thiết bị ô tô

Hình 2. Hệ tọa độ (so với thiết bị ô tô) được API cảm biến sử dụng

Hệ quy chiếu xe là hệ tọa độ thuận tay phải. Do đó, trục Z hướng lên.

Trục Z của hệ quy chiếu được căn chỉnh theo trọng lực, có nghĩa là trục X và trục Y đều nằm ngang. Kết quả là trục Y 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ơ bản được đặt tên theo cảm biến vật lý 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 (ngược lại với các cảm biến tổng hợp tạo ra dữ liệu từ các cảm biến khác). Ví dụ về các loại cảm biến cơ sở bao gồm:

  • 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 nhầm lẫn với cảm biến vật lý cơ bản của chúng. 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 hiệu chỉnh (chẳng hạn như bù sai 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 đ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 con chip con quay hồi chuyển được đánh giá là có phạm vi sai lệch là 1 độ/giây.
    • Sau khi hiệu chuẩn tại nhà máy, áp dụng bù nhiệt độ và bù sai lệch, độ lệch thực tế của cảm biến Android sẽ giảm xuống, có thể đến mức mà độ lệch được đảm bảo ở dưới 0,01 độ/giây.
    • Trong tình huống này, chúng tôi 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 phong vũ biểu có mức tiêu thụ điện năng là 100 uW.
    • Vì dữ liệu được tạo ra cần phải được vận chuyển từ chip đến SoC nên chi phí điện năng thực tế để thu thập dữ liệu từ cảm biến phong vũ biểu của Android có thể cao hơn nhiều, chẳng hạn như 1000 uW.
    • Trong tình huống này, chúng tôi 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 đo được ở đầu chip phong vũ biểu là 100uW.
  • Từ kế tiêu thụ 100uW khi hiệu chỉnh, nhưng tiêu thụ nhiều hơn khi hiệu chỉnh.
    • Quy trình hiệu chuẩn của nó 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 số thuật toán, tiêu tốn thêm 900 uW.
    • Trong tình huống này, chúng tôi nói rằng mức tiêu thụ điện năng tối đa của cảm biến Android (từ kế) là 6000 uW.
    • Trong trường hợp này, mức tiêu thụ điện năng trung bình là thước đo hữu ích hơn và đó là những gì được báo cáo trong các đặc tính 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ề cảm biến không đánh thức

Cảm biến gia tốc 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 đo được bao gồm cả gia tốc vật lý (sự thay đổi vận tốc) và trọng lực. Phép đo được báo cáo trong các trường x, y và z của cảm biến_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 ba trục cảm biến.

Dưới đây là ví dụ:

  • 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 bàn và được đẩy từ bên trái sang bên phải, giá trị gia tốc x là dương.
  • Khi thiết bị nằm phẳng trên bàn, giá trị gia tốc dọc theo z là +9,81 alo, tương ứng với gia tốc của thiết bị (0 m/s^2) trừ đi trọng lực (-9,81 m/s^2).
  • Khi thiết bị nằm phẳng trên bàn và được đẩy lên 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 trọng lực (-9,81 m) /s^2).

Các bài đọc được hiệu chỉnh bằng cách sử dụng:

  • Sự cân bằng nhiệt độ
  • Hiệu chỉnh sai lệch trực tuyến
  • Hiệu chuẩn cân trực tuyến

Hiệu chuẩn độ lệch và tỷ lệ chỉ phải được cập nhật khi cảm biến bị tắt, để tránh gây ra hiện tượng tăng giá trị trong quá trình truyền phát.

Gia tốc kế cũng báo cáo mức độ chính xác mà nó mong đợi thông qua sensors_event_t.acceleration.status . 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 độ môi trường xung quanh

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

getDefaultSensor(SENSOR_TYPE_AMBIENT_TEMPERATURE) trả về 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 (phòng) tính bằng độ C.

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

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

getDefaultSensor(SENSOR_TYPE_MAGNETIC_FIELD) trả về 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 được gọi là từ kế) báo cáo từ trường xung quanh, được đo dọc theo ba trục cảm biến.

Phép đo đượ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 báo cáo mức độ chính xác mà nó mong đợi thông qua sensors_event_t.magnetic.status . 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ác bài đọc được hiệu chỉnh bằng cách sử dụng:

  • Sự cân bằng nhiệt độ
  • Hiệu chuẩn bàn ủi mềm tại nhà máy (hoặc trực tuyến)
  • Hiệu chuẩn sắt cứng 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ề cảm biến không đánh thức

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

Chiều quay dương theo chiều ngược chiều kim đồng hồ (quy tắc bàn tay phải). Nghĩa là, một người quan sát nhìn từ một vị trí dương nào đó trên trục x, y hoặc z tới một thiết bị được đặt ở gốc tọa độ sẽ báo cáo góc quay dương nếu thiết bị đó dường như đang quay ngược chiều kim đồng hồ. Lưu ý rằng đây là định nghĩa toán học tiêu chuẩn của chuyển động quay dương và không phù hợp với định nghĩa cuộn của ngành hàng không vũ trụ.

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

Các bài đọc được hiệu chỉnh bằng cách sử dụng:

  • Sự cân bằng nhiệt độ
  • Bồi thường quy mô nhà máy (hoặc trực tuyến)
  • Hiệu chỉnh sai lệch trực tuyến (để loại bỏ độ lệch)

Con quay hồi chuyển cũng báo cáo mức độ chính xác mà nó mong đợi thông qua sensors_event_t.gyro.status . 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.

Không thể mô phỏng con quay hồi chuyển dựa trên từ kế 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: Đang thay đổi

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

Cảm biến nhịp tim 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 bằng nhịp mỗi phút (BPM) đượ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 . 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 biệt, trong lần kích hoạt đầu tiên, trừ khi thiết bị được biết là không có trên cơ thể, 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 được tạo khi và chỉ khi heart_rate.bpm hoặc heart_rate.status thay đổi kể từ sự kiện cuối cùng. 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 .

Ánh sáng

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

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

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

Phép đo được báo cáo trong sensors_event_t.light .

Gần

Chế độ báo cáo: Đang 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 nhìn thấy gần nhất.

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

Phép đo được báo cáo bằng centimet trong sensors_event_t.distance . Lưu ý rằng một số cảm biến tiệm cận chỉ hỗ trợ phép đo nhị phân "gần" hoặc "xa". Trong trường hợp này, cảm biến báo cáo giá trị sensor_t.maxRange của nó ở 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ề cảm biến không đánh thức

Một cảm biến áp suất (còn được gọi là phong vũ biểu) báo cáo áp suất khí quyển tính bằng hectopascal (hPa).

Các bài đọc được hiệu chỉnh bằng cách sử dụng

  • Sự cân bằng nhiệt độ
  • Hiệu chuẩn sai lệch của nhà máy
  • Hiệu chuẩn quy mô nhà máy

Phong vũ biểu thường được sử dụng để ước tính sự thay đổi độ cao. Để ước tính độ cao tuyệt đối, áp suất mực nước biển (thay đổi tùy theo thời tiết) phải được sử dụng làm tham chiếu.

Độ ẩm tương đối

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

getDefaultSensor(SENSOR_TYPE_RELATIVE_HUMIDITY) trả về 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ị tính bằng phần trăm.

Các loại cảm biến tổng hợp

Cảm biến tổng hợp tạo ra 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 vật lý. (Bất kỳ cảm biến nào 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 tổng hợp bao gồm:

Giống như các cảm biến cơ sở, đặc điểm của cảm biến tổng hợp xuất phát từ đặc điểm của dữ liệu cuối cùng của chú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, chip con quay hồi chuyển, chip xử lý dữ liệu và xe buýt 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ư các đặc tính cảm biến vật lý.

Bảng sau 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 một số 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 tính 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 Loại 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 SỬ DỤNG từ kế

Tiếp diễn

Vectơ quay địa từ Cảm biến năng lượng thấp

Thái độ

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

Tiếp diễn

Cử chỉ liếc nhìn Cảm biến năng lượng thấp

Sự tương tác

Không xác định

Một Châu

Trọng lực

Thái độ

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

Tiếp diễn

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

Chưa được hiệu chỉnh

Con quay hồi chuyển

Tiếp diễn

Gia 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)

Tiếp diễn

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

Chưa được hiệu chỉnh

Từ kế

Tiếp diễn

Định 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ó)

Tiếp diễn

Cử chỉ nhấc máy Cảm biến năng lượng thấp

Sự tương tác

Không xác định

Một Châu

Vectơ xoay

Thái độ

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

Tiếp diễn

Chuyển động đáng kể Cảm biến năng lượng thấp

Hoạt động

Gia tốc kế (hoặc loại khác miễn là công suất rất thấp)

Một Châu

bộ đếm bước Cảm biến năng lượng thấp

Hoạt động

Gia tốc kế

Đang thay đổi

Máy dò bước Cảm biến năng lượng thấp

Hoạt động

Gia tốc kế

Đặc biệt

Máy dò độ nghiêng Cảm biến năng lượng thấp

Hoạt động

Gia tốc kế

Đặc biệt

Cử chỉ thức dậy Cảm biến năng lượng thấp

Sự tương tác

Không xác định

Một Châu

Cảm biến năng lượng thấp = Cảm biến năng lượng thấp

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 từ kế nếu không có con quay hồi chuyển)

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

getDefaultSensor(SENSOR_TYPE_LINEAR_ACCELERATION) trả về 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.

Đầu ra về mặt khái niệm: đầu ra của gia tốc kế trừ đi đầu ra của cảm biến trọng lực . Nó đượ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 .

Số đọc trên tất cả các trục phải gần bằng 0 khi thiết bị cố định.

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, 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 loại khác miễn là năng lượng thấp)

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

Năng lượng thấp

Chỉ thực hiện 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

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

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

  • Đi bộ hoặc đi xe đạp
  • Ngồi trong ô tô, xe khách hoặc xe lửa đ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 cử động
  • Điện thoại để trên bàn và bàn hơi rung do có người đi lại gần hoặc do máy giặt

Ở mức cao, bộ phát hiện chuyển động đáng kể được sử dụng để giảm mức tiêu thụ điện năng khi xác định vị trí. Khi thuật toán bản địa hóa phát hiện thiết bị ở trạng thái tĩnh, chúng có thể chuyển sang chế độ tiêu thụ điện năng thấp, trong đó chúng 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. Nó tạo ra sự cân bằng giữa mức tiêu thụ điện năng và có thể dẫn đến một lượng nhỏ kết quả âm tính giả. Điều 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 điện năng.
  • 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ề mặt năng lượng, vì vậy nên tránh điều này.
  • Việc không kích hoạt sự kiện khi người dùng đang di chuyển (âm tính giả) có thể được chấp nhận miễn là việc đó không được thực hiện nhiều lần. Nếu người dùng đã đi bộ được 10 giây thì việc không kích hoạt sự kiện trong vòng 10 giây đó là không thể chấp nhận được.

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

Máy dò 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 miễn là năng lượng thấp)

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

Năng lượng thấp

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

Trình phát hiện bước tạo ra một sự kiện mỗi khi người dùng thực hiện 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ự thay đổi lớn về gia tốc.

So với bộ đếm bước, bộ dò bước phải có độ trễ thấp hơn (dưới hai giây). Cả bộ phát hiện bước và bộ đếm bước đều phát hiện khi người dùng đang đi, chạy và đi lên cầu thang. Chúng 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. Nghĩa là, nếu việc phát hiện bước không thể thực hiện được bằng phần cứng thì không nên xác định cảm biến này. Đặc biệt, khi bộ phát hiện bước được kích hoạt và gia tốc kế thì không, chỉ các bước mới kích hoạt 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 báo cáo 1 trong sensors_event_t.data[0] .

bộ đếm 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 miễn là năng lượng thấp)

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

Năng lượng thấp

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

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

Phép đo đượ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 cho 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 bộ phát hiện bước, bộ đếm bước có thể có độ trễ cao hơn (tối đa 10 giây). Nhờ độ trễ này mà cảm biến này có độ chính xác cao; số bước sau cả ngày đo phải nằm trong khoảng 10% số bước thực tế. Cả bộ phát hiện bước và bộ đếm bước đều phát hiện khi người dùng đang đi, chạy và đi lên cầu thang. Chúng 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.

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

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

Nếu một thiết bị cụ thể không thể hỗ trợ các chế độ hoạt động này thì loại cảm biến này sẽ không được HAL báo cáo. Nghĩa là, việc "mô phỏng" cảm biến này trong HAL là không thể chấp nhận được.

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

Máy dò độ nghiêng

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

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

Năng lượng thấp

Chỉ thực hiện 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.

Một sự kiện nghiêng được xác định bằng hướng của trọng lực trung bình trong cửa sổ 2 giây thay đổi ít nhất 35 độ kể từ khi kích hoạt hoặc sự kiện cuối cùng do cảm biến tạo ra. Đâ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 cuối cùng được tạo ra.
  • current_estimated_gravity = giá trị trung bình của các phép đo gia tốc trong 2 giây qua.
  • Kích hoạt khi angle(reference_estimated_gravity, current_estimated_gravity) > 35 degrees

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

Cảm biến tổng hợp thái độ

Vectơ xoay

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

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

getDefaultSensor(SENSOR_TYPE_ROTATION_VECTOR) trả về 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 tọa độ Đông-Bắc-Up. Nó thường thu đượ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ệ tọa độ Đông-Bắc-Up được định nghĩa là cơ sở trực giao trực tiếp trong đó:

  • X hướng về phía đông và tiếp tuyến với mặt đất.
  • Y hướng về phía bắc và tiếp tuyến 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 thể hiện bằng cách xoay cần thiết để căn chỉnh tọa độ Đông-Bắc-Up với tọa độ của điện thoại. Nghĩa là, áp dụng phép xoay cho khung thế giới (X, Y, Z) sẽ căn chỉnh chúng với tọa độ điện thoại (x, y, z).

Xoay có thể được coi là xoay điện thoại theo một góc theta xung quanh trục rot_axis để đi từ hướng thiết bị tham chiếu (hướng Đông-Bắc-Up) sang hướng thiết bị hiện tại. Phép quay được mã hóa dưới dạng bốn 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)

Ở đâu:

  • Các trường x, y và z của rot_axis là tọa độ Đông-Bắc-Up của vectơ có độ dài đơn vị biểu thị trục quay
  • theta là góc quay

Quaternion là một quaternion đơn vị: Nó phải có chuẩn 1 . Việc không đảm bảo điều này sẽ gây ra hành vi thất thường của khách hàng.

Ngoài ra, cảm biến này còn 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 trong 95% trường hợp. 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 độ trôi của con quay hồi chuyển và không thể thực hiện được cảm biến này 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ề 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 trường địa từ. Do đó trục Y không hướng về phía bắc mà thay vào đó hướng tới một số tham chiếu khác. Tham chiếu đó được phép trôi theo cùng độ lớn khi con quay hồi chuyển trôi quanh trục Z.

Xem Cảm biến vectơ xoay để biết 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 đặt trước và phải được đặt thành 0 .

Trong trường hợp lý tưởng, một chiếc điện thoại được xoay và trở về cùng hướng trong thế giới thực 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ế. Nó không thể sử dụng từ kế làm đầu vào, ngoài ra, còn gián tiếp thông qua việc ước tính độ lệch của con quay hồi chuyển.

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 từ kế nếu không có con quay hồi chuyển)

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

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

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

Các thành phần vectơ trọng lực đượ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 .

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 với đầu ra của gia tốc kế. Trên Trái đất, cường độ 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, cảm biến trọng lực phải sử dụng gia tốc kế và từ kế làm đầu vào.

Vectơ quay địa từ

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

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

Năng lượng thấp

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

Vectơ quay địa từ tương tự như cảm biến vectơ quay nhưng sử dụng từ kế và không có con quay hồi chuyển.

Cảm biến này phải dựa trên từ kế. Nó không thể được thực hiện bằng con quay hồi chuyển và cảm biến này không thể sử dụng đầu vào con quay hồi chuyển.

Xem Cảm biến vectơ xoay để biết chi tiết về cách đặt sensors_event_t.data[0-4] .

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

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

Định hướng (không dùng nữa)

Cảm biến vật lý cơ bản: Gia tốc kế, từ kế 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ề cảm biến không đánh thức

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

Cảm biến định hướng báo cáo trạng thái 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ừ tính 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 : cao độ, xoay 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 : cuộ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 ý, vì lý do lịch sử, góc cuộn là dương theo chiều kim đồng hồ. (Về mặt toán học, nó phải dương theo hướng ngược chiều kim đồng hồ):

Mô tả hướng liên quan đến thiết bị

Hình 3. Định hướng liên quan đến thiết bị

Định nghĩa này khác với định nghĩa ngáp, cao độ và cuộn được sử 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 (từ đuôi đến mũi).

Cảm biến định hướng cũng báo cáo mức độ chính xác mà nó mong đợi thông qua sensors_event_t.orientation.status . 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ố sai lệch nhưng cũng chứa ít "bước nhảy" hơn từ các hiệu chỉnh được áp dụng thông qua hiệu chuẩn. Một số ứng dụng có thể thích những kết quả chưa được hiệu chỉnh này vì nó mượt mà và đáng tin cậy hơn. Ví dụ: nếu một ứng dụng đang cố gắng tiến hành phản ứng tổng hợp cảm biến của riêng mình thì việc đưa ra hiệu chuẩn thực sự có thể làm sai lệch kết quả.

Gia tốc kế chưa được hiệu chỉnh

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ề cảm biến không đánh thức

Cảm biến gia tốc kế chưa được hiệu chỉnh 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ó bất kỳ hiệu chỉnh sai lệch nào (độ lệch gốc và bù nhiệt độ được áp dụng cho các phép đo không được hiệu chỉnh), cùng với ước tính sai lệch. Tất cả các giá trị đều tính bằng đơn vị SI (m/s^2) và được báo cáo trong các trường sensors_event_t.uncalibrated_accelerometer :

  • x_uncalib : gia tốc (không bù sai lệch) dọc theo trục X
  • y_uncalib : gia tốc (không bù sai lệch) dọc theo trục Y
  • z_uncalib : gia tốc (không bù sai 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 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_UNCALIBRATED) trả về cảm biến không đánh thức

Một con quay hồi chuyển chưa được hiệu chỉnh sẽ báo cáo tốc độ quay xung quanh các trục cảm biến mà không áp dụng bù sai lệch cho chúng, cùng với ước tính sai lệch. Tất cả các giá trị đều 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 bù trôi) quanh trục X
  • y_uncalib : tốc độ góc (không bù trôi) quanh trục Y
  • z_uncalib : tốc độ góc (không bù trôi) quanh trục Z
  • x_bias : độ lệch ước tính quanh trục X
  • y_bias : độ lệch ước tính quanh trục Y
  • z_bias : độ lệch ướ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 đã hiệu chuẩn và ước tính sai lệch: _uncalibrated = _calibrated + _bias .

Các giá trị x_bias , y_biasz_bias dự kiến ​​sẽ tăng ngay khi ước tính về độ lệch thay đổi và chúng 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ệ tọa độ được sử dụng.

Hiệu chuẩn nhà máy và bù nhiệt độ phải được áp dụng cho các phép đo. Ngoài ra, việc ước tính độ lệch con quay hồi chuyển phải được triển khai để có thể báo cáo các ước tính hợp lý theo x_bias , y_biasz_bias . Nếu việc triển khai không thể ước tính độ lệch thì 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 có 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: Từ kế

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

getDefaultSensor(SENSOR_TYPE_MAGNETIC_FIELD_UNCALIBRATED) trả về 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 ước tính hiệu chuẩn của sắt cứng. Tất cả các giá trị đều ở dạ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 bù sắt cứng) dọc theo trục X
  • y_uncalib : từ trường (không bù sắt cứng) dọc theo trục Y
  • z_uncalib : từ trường (không bù sắt cứng) dọc theo trục Z
  • x_bias : độ lệch sắt cứng ước tính dọc theo trục X
  • y_bias : độ lệch của sắt cứng ước tính dọc theo trục Y
  • z_bias : độ lệch của sắt cứng ước tính 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 đã hiệu chuẩn và ước tính sai lệch: _uncalibrated = _calibrated + _bias .

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

Hiệu chuẩn bàn ủi mềm và bù nhiệt độ phải được áp dụng cho các phép đo. Ngoài ra, ước tính cứng rắn phải được triển khai để có thể báo cáo các ước tính hợp lý trong x_bias , y_biasz_bias . Nếu việc triển khai không thể ước tính độ lệch thì 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ó chung giá trị sensor_t.namesensor_t.vendor .

Góc bản lề

Chế độ báo cáo: Đang 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, tính bằng độ, giữa hai bộ phận không thể thiếu của thiết bị. Chuyển động của bản lề được đo bằng loại cảm biến này 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ở ra 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 sử dụng để phát hiện các tương tác với người dùng. Chúng tôi không xác định cách thức triển khai các cảm biến đó nhưng chúng phải có công suất 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 chúng xét về mặt trải nghiệm người dùng.

Cử chỉ thức dậy

Cảm biến vật lý cơ bản: Không xác định (bất cứ thứ gì có năng lượng thấp)

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

Năng lượng thấp

Chỉ thực hiện 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 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. Hành vi này (bật màn hình khi cảm biến này kích hoạt) có thể bị người dùng vô hiệu hóa trong cài đặt thiết bị. Những thay đổi trong cài đặt không ảnh hưởng đến hoạt động của cảm biến: 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 phát hiện không được chỉ định và có thể được chọn bởi nhà sản xuất thiết bị.

Cảm biến này phải có công suất thấp, vì nó có khả năng được kích hoạt 24/7.

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

Nhận cử chỉ

Cảm biến vật lý cơ bản: không xác định (bất cứ thứ gì có công suất thấp)

Chế độ báo cáo: One-Shot

Năng lượng thấp

Chỉ thực hiện 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 thức dậy

Một cảm biến cử chỉ nhận kích hoạt khi thiết bị được chọn bất kể trước đây (bàn, túi, túi).

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

Glance cử chỉ

Cảm biến vật lý cơ bản: không xác định (bất cứ thứ gì có công suất thấp)

Chế độ báo cáo: One-Shot

Năng lượng thấp

Chỉ thực hiện 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 thức dậy

Một cảm biến Gesture Glance cho phép bật màn hình ngắn gọn để cho phép người dùng liếc nhìn 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 lướt qua thông báo hoặc nội dung khác trong khi thiết bị vẫn bị khóa ở trạng thái không tương tác (ngủ), thì màn hình sẽ tắt lại. Hành vi này (bật ngắn gọn trên màn hình khi bộ cảm biến này kích hoạt) có thể bị người dùng vô hiệu hóa trong cài đặt thiết bị. Các thay đổi trong cài đặt không ảnh hưởng đến hành vi của cảm biến: Chỉ liệu khung có bật màn hình ngắn khi nó kích hoạt hay không. Cử chỉ thực tế được phát hiện không được chỉ định và có thể được chọn bởi nhà sản xuất thiết bị.

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

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

Có sẵn từ Android 13, các cảm biến IMU của trục giới hạn là các cảm biến hỗ trợ các trường hợp sử dụng trong đó không phải cả ba trục (X, Y, Z) đều có sẵn. Các loại IMU tiêu chuẩn trong Android (như SENSOR_TYPE_ACCELEROMETERSENSOR_TYPE_GYROSCOPE ) giả sử rằng cả ba trục đều được hỗ trợ. Tuy nhiên, không phải tất cả các yếu tố và thiết bị hình thức đều hỗ trợ gia tốc kế 3 trục và con quay 3 trục.

AXETERS TIMTERTERMETER giới hạ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) trả về một cảm biến không đánh thức

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

Ba giá trị sự kiện cảm biến cuối cùng được báo cáo bởi cảm biến biểu thị liệu giá trị gia tốc cho các trục X, Y và Z có được hỗ trợ hay không. Giá trị 1.0 chỉ ra rằng trục được hỗ trợ và giá trị 0 cho biết nó không được hỗ trợ. Các nhà sản xuất thiết bị 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ị không thay đổi trong thời gian chạy.

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

Trục giới hạn con quay hồi chuyển

Cảm biến vật lý cơ bản: Gyroscope

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

Một 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 trong đó một hoặc hai trục không được hỗ trợ.

Ba giá trị sự kiện cảm biến cuối cùng được báo cáo bởi cảm biến biểu thị liệu giá trị tốc độ góc cho các trục X, Y và Z có được hỗ trợ hay không. Giá trị 1.0 chỉ ra rằng trục được hỗ trợ và giá trị 0 cho biết nó không được hỗ trợ. Các nhà sản xuất thiết bị 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ị không thay đổi trong thời gian chạy.

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

Axes giới hạn gia tốc không được hiệu chỉnh

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ề cảm biến không đánh thức

Một cảm biến không được điều chỉnh của AXEMETRETRETRETRETY tương đương với TYPE_ACCELEROMETER_UNCALIBRATED nhưng hỗ trợ các trường hợp trong đó một hoặc hai trục không được hỗ trợ.

Ba giá trị sự kiện cảm biến cuối cùng được báo cáo bởi cảm biến thể hiện liệu các giá trị gia tốc và độ lệch cho các trục X, Y và Z có được hỗ trợ hay không. Giá trị 1.0 chỉ ra rằng trục được hỗ trợ và giá trị 0 cho biết nó không được hỗ trợ. Các nhà sản xuất thiết bị 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ị không thay đổi trong thời gian chạy.

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

Axes giới hạn con quay hồi chuyển không được hiệu chỉnh

Cảm biến vật lý cơ bản: Gyroscope

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

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

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

Ba giá trị sự kiện cảm biến cuối cùng được báo cáo bởi cảm biến biểu thị liệu tốc độ góc và giá trị trôi cho các trục X, Y và Z có được hỗ trợ hay không. Giá trị 1.0 chỉ ra rằng trục được hỗ trợ và giá trị 0 cho biết nó không được hỗ trợ. Các nhà sản xuất thiết bị 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ị không thay đổi trong thời gian chạy.

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

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

Các cảm biến vật lý cơ bản: Bất kỳ sự kết hợp của gia tốc kế 3 trục, con quay hồi chuyển 3 trục, gia tốc kế 3 trục không được hiệu chỉnh và cảm biến con quay con quay 3 trục.

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

Một 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, nó 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 kích hoạt cho các thiết bị ô tô.

Bảng sau đây cho thấy một chuyển đổi ví dụ 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ị cảm biến cho Sensor_Type_Accelerometer Ví dụ Sensor_Type_Accelerometer Sensorevent Cảm biến tổng hợp_type_accelerometer_limited_axes Sensorevent
Giá trị [0]

-0,065

-0,065

Giá trị [1]

0,078

0,078

Giá trị [2]

9.808

9.808

Giá trị [3]

không áp dụng

1.0

Giá trị [4]

không áp dụng

1.0

Giá trị [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 ô tô.

Phần mở đầu

Các cảm biến vật lý cơ bản: bất kỳ sự kết hợp của GPS, từ kế, 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ề cảm biến không đánh thức

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

Các giá trị tiêu đề được báo cáo bởi cảm biến này phải nằm trong khoảng 0.0 (bao gồm) đến 360.0 (độc quyền), với 0 chỉ ra phía bắc, 90 Đông, 180 South và 270 West.

Độ chính xác cho cảm biến này được xác định ở mức tin cậy 68 phần trăm. Trong trường hợp phân phối cơ bản là Gaussian bình thường, độ 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ì xác suất 68 phần trăm của tiêu đề thực sự nằm trong khoảng từ 50 độ đến 70 độ.