Android sensor framework sử dụng hệ tọa độ 3 chiều tiêu chuẩn (x,y,z) để thể hiện giá trị dữ liệu thu thập qua cảm biến, trong đó: trục x là trục ngang với giá trị bên phải, trục y là trục thẳng đứng với giá tị phía trên, trục z là trục ngoài khuôn màn hình. Hệ trục tọa độ có biểu diễn như sau:
Hình 3.12. Hệ trục tọa độ sử dụng bởi Android sensor API
Một số cảm biến sử dụng hệ trục tọa độ này để thu thập dữ liệu: Acceleration sensor, Gravity sensor, Gyroscope sensor, Linear acceleration sensor, Geomagnetic field sensor.
Chú ý:
- Hệ trục tọa độ này không thay đổi khi thiết bị di chuyển.
- Hệ tọa độ cảm biến luôn căn cứ trên định hướng tự nhiên của thiết bị, hầu hết các thiết bị có định hướng tự nhiên theo chiều ngang (landscape). - Sử dụng phương thức getRotation() để xác định chiều xoay của màn hình, remapCoordinateSystem() để chuyển hệ trục tọa độ cảm biến về hệ trục tọa độ màn hình.
Các thông tin thu được qua cảm biến chuyển động trên thiết bị được lưu trữ trong mảng số thực đa chiều của mỗi SensorEvent. Ví dụ khi sự kiện cảm biến gia tốc xuất hiện sẽ trả về dữ liệu lực gia tốc theo 3 chiều tọa độ.
Lấy về một thể hiện của cảm biến gia tốc
Về mặt khái niệm, gia tốc thiết bị thu được thông qua cảm biến gia tốc (Ad) đo được thông qua trọng lực lên cảm biến (Fs) như sau:
Ad = - ∑Fs / mass
Tuy nhiên khi gia tốc thiết bị chịu ảnh hưởng của lực hấp dẫn thì:
Ad = -g - ∑F / mass
do, g= 0 m/s2. Do đó, để đo gia tốc thực của thiết bị, cần loại bỏ lực hấp dẫn khỏi dữ liệu gia tốc thu được, điều này được thực hiện bằng cách sử dụng một bộ lọc để cô lập các lực hấp dẫn. Minh họa dưới đây thực hiện điều này:
Lưu ý: có nhiều kỹ thuật khác nhau được sử dụng để lọc dữ liệu cảm biến. Đoạn code phía trên lọc dữ liệu cảm biến đơn giản thông qua hằng alpha = 0.8 minh họa.
Thu thập thông tin từ các cảm biến khác thuộc loại cảm biến chuyển động được thực hiện tương tự như cảm biến gia tốc. Thông tin chi tiết:
http://developer.android.com/guide/topics/sensors/sensors_motion.html#sensors- motion-accel
CÂU HỎI CHƯƠNG 3
1. Xây dựng ứng dụng kết nối mạng thông qua wifi có các chức năng: 1/
Kích hoạt kết nối wifi; 2/ Lấy về thông tin kết nối wifi hiện thời; 3/ Quyets những điểm truy cập wifi xung quanh thiết bị; 4/ Thiết lập cấu hình cho mạng wifi mà thiết bị kết nối tới.
2. Xây dựng ứng dụng kết nối mạng thông qua bluetooth có các chức năng:
1/ Bật bluethooth trên thiết bị; 2/ Giám sát trạng thái bluetooth của thiết bị; 3/ Thăm dò các thiết bị thông qua kết nối bluetooth; 4/ Truyền dữ liệu giữa 2 thiết bị hỗ trợ bluetooth.
3. Xây dựng ứng dụng nhắn tin ngắn SMS với các chức năng: 1/ Gửi tin
nhắn SMS thông qua ứng dụng tin nhắn có sẵn trên điện thoại; 2/ Gửi tin nhắn trong chính ứng dụng; 3/ Nhận tin nhắn trong chính ứng dụng.
4. Xây dựng ứng dụng phát audio, video.
5. Xây dựng ứng dụng camera theo 2 cách: 1/ Từ ứng dụng camera có sẵn
dụng camera có sẵn trên thiết bị.
6. Xây dựng ứng dụng thu thập thông tin từ các cảm biến trên thiết bị tương
ứng với 3 loại cảm biến : 1/ Cảm biến chuyển động; 2/ Cảm biến vị trí; 3/ Cảm biến môi trường.