You are on page 1of 7

12/8/2019 Accelerometer, Gyroscope, Magnetometer dùng để làm gì?

Accelerometer, Gyroscope,
Magnetometer dùng đe làm gì?
dumbdude Follow
May 12 · 7 min read

. . .

Mình đang làm về 1 dự án mà ở đấy vận dụng Accelerometer, Gyroscope, Magnetometer
thu thâp được từ thiết bị di động để phục vụ cho Machine Learning. Là dân mới bắt đầu
làm việc với những loại dữ liệu này, mình thấy khá lơ mơ về 3 loại sensor data trên. Vì
thế, mình viết bài viết này hy vọng sẽ giúp đưa ra cái nhìn rõ hơn về sự giống và khác
nhau, và tính ứng dụng của từng loại sensor.

Hình 1: Hệ thống tọa độ được dùng trong Sensor API của điẹn
̂ thoại Android. (Android developer guide)

Nhìn về mặ t tong quát, Accelerometer, Gyroscope và Magnetometer là 3 loạ i raw sensor
data chính được thu thậ p từ điệ n thoạ i. Bài viết này, đầu tiên, mình sẽ giới thiệ u
nhanh về hệ thống tọ a độ được sử dụ ng trong điệ n thoạ i. Sau đấy mình sẽ giới thiệ u
sơ qua về tính vậ t lý và tính ứng dụ ng củ a từng loạ i sensor. Cuối cùng, mình sẽ nói

https://medium.com/@att288/accelerometer-gyroscope-magnetometer-dùng-để-làm-gì-a7a2580705f4 1/7
12/8/2019 Accelerometer, Gyroscope, Magnetometer dùng để làm gì?

thêm về việ c kết hợp các loạ i sensor với nhau đe mang lạ i hieu quả trong mộ t số ứng
dụ ng.

Hệ thống tọa độ dùng trong Sensor API


Đầu tiên, vì không gian sống là không gian 3 chiều, nên dữ liệ u củ a cả 3 loạ i sensors
sẽ được thu thậ p theo 3 trụ c x, y, z. Trong điệ n thoạ i Android, x,y,z được định vị như
hình 1. Cụ the là, giả sử khi bạ n cầm điệ n thoạ i thang đứng hướng về phía bạ n:
- Trục y là truc hướng lên trên của điện thoại
- Trục x là trục hướng về phía bên phải cạnh của điện thoại
- Trục z là trục hướng về phía màn hình vào phía bạn

Accelerometer
Về mặ t vậ t lý, đây có lẽ là loạ i sensor gần gũi và pho biên nhất. Nó dùng đe đo gia
tốc củ a 1 vậ t trong không gian 3 chiều. Trong Android, bạ n có the nhậ n được giá trị
gia tốc củ a 2 loạ i sensor khác nhau, đấy là Acceleration sensor và Linear acceleration
sensor. Acceleration sensor đo gia tốc dưới tác độ ng củ a trọ ng trường, còn cái còn lạ i
đo gia tốc không tính trọ ng trường (proper accelerometer: gia tốc củ a vậ t ấy so với
chính nó củ a trạ ng thái nghı̉, bỏ qua gia tốc trọ ng trường).

Đe de hieu thì trong điệ n thoạ i, khi điệ n thoạ i củ a bạ n ở trạ ng thái tĩnh thì acceleration
sensor sẽ có magnitude value là khoả ng 9.8 (m/s2), còn Linear acceleration sensor sẽ có
magnitude value là 0 (m/s2).

https://medium.com/@att288/accelerometer-gyroscope-magnetometer-dùng-để-làm-gì-a7a2580705f4 2/7
12/8/2019 Accelerometer, Gyroscope, Magnetometer dùng để làm gì?

̂ thoại ở trạng thái nghỉ (không có ngoại lực tác đọn


Hình 2: Ví dụ về Accelerometer data khi điẹn ̂ g)

Như bạ n thấy ở ví dụ trên, vì là không gian 3 chiều nên sẽ có 3 trụ c x, y, z. Nhưng x và
y là 0 vì mình không di chuyen nó. còn z bị tác dụ ng củ a trọ ng lực kéo xuống, nên giá trị
củ a nó bằng chính giá trị gia tốc trọ ng lực tạ i vị trí củ a điệ n thoạ i. (Bạn cũng có thể dựa
vào 3 con số này để đoán được vị trí của điện thoại đấy! Ví dụ như trong hình 2, dựa vào
3 giá trị x, y, z = 0, 0, 9.96, mình có thể kết luận là điện thoại đang được nằm trên mặt
phẳng, với màn hình hướng lên trời. Bạn thử nhìn lại Hình 1, rồi giải thích xem vì sao?
🤓)

Về mặ t ứng dụ ng, Accelerometer là sensor được sử dụ ng pho biến nhất. Bắt nguồn
từ việ c nó có the giúp bạ n nhậ n dạ ng được gia tốc chuyen độ ng củ a điệ n thoạ i,
Accelerometer được dùng trong rất nhiều các ứng dụ ng khác nhau, từ nghiên cứu cho
đến ứng dụ ng hàng ngày mà bạ n đang sử dụ ng trong thiết bị điệ n thoạ i củ a bạ n. Noi
bậ t nhất là dùng Accelerometer đe phân biệ t motions. Ví dụ như Machine Learning sử
dụ ng Accelerometer có the phân biệ t được là bạ n đang đi bộ , đang chạ y, hay đang tậ p
the dụ c. Hay việ c nó giúp smartphone nhậ n diệ n được bạ n đang cầm điệ n thoạ i theo tư
thế nào, đe từ đấy tự độ ng xoay màn hình (bạn xem thử cái ví dụ đơn giản mình nói ở
phía trên, sẽ thấy vì sao lại thế 😉).

Ngoài ra, Accelertometer còn rất nhiều ứng dụ ng khác mà Accelerometer được sử
dụ ng, từ authentication, đến activity tracking, và nhiều ứng dụ ng cool khác nữa.
Trong quy mô bài viết này, mình không the liệ t kê hết, nhưng bạ n có the tìm đọ c thêm
ở đây chang hạ n.

Gyroscope
Accelerometer rất hữu dụ ng. Tuy nhiên, nó lạ i không giả i quyết được mộ t số trường
hợp. Ví dụ như nó chı̉ có the giúp bạ n nhậ n ra điệ n thoạ i có đang di chuyen hay không
(bả n chất là nếu sensor trong điệ n thoạ i di chuyen có nghĩa là điệ n thoạ i di chuyen).
Tuy nhiên, trong tình huống: ví dụ bạ n lấy sensor làm tâm, xoay điệ n thoạ i quay tâm
ấy, thì điều gì xả y ra? Giá trị x, y, z củ a Accelerometer không đoi phả i không? Hãy
phân tích nhanh xem vì sao lạ i thế bằng cách phân tích lực tác độ ng lên x, y, z:

https://medium.com/@att288/accelerometer-gyroscope-magnetometer-dùng-để-làm-gì-a7a2580705f4 3/7
12/8/2019 Accelerometer, Gyroscope, Magnetometer dùng để làm gì?

Hình 3: Accelerometer khi xoay điện thoại, lấy điểm giữa điẹn
̂ thoại làm tâm

Khi xoay điệ n thoạ i lấy sensor làm tâm, khi đấy độ cao củ a điệ n thoạ i không đoi. Vì
thế gia tốc trụ c z không đoi. (mình đang đe điệ n thoạ i nằm ngang, mặ t điệ n thoạ i
hướng lên trời)

Sensor cũng không di chuyen sang phả i, và cũng không bị dịch chuyen lên trên. Vì
thế gia tốc trên trụ c x, và y cũng không đoi.

Trong Hình 3, bạ n thấy đồ thị hơi rung vì khi mình xoay mình không giữ im điệ n thoạ i
tạ i 1 điem. Tuy nhiên nó sẽ là 3 đường thang nếu thí nghiệ m được làm 100% chuan
xác.

Vậ y thì làm cách nào đe nhậ n dạ ng được là điệ n thoạ i đang xoay hoặ c đe giả i quyết
được những vấn đề tương tự?

Thậ t may là Gyroscope có the giả i quyết vấn đề này được.

https://medium.com/@att288/accelerometer-gyroscope-magnetometer-dùng-để-làm-gì-a7a2580705f4 4/7
12/8/2019 Accelerometer, Gyroscope, Magnetometer dùng để làm gì?

Hình 4: Gyroscope (wiki)

Về mặ t vậ t lý, Gyroscope là 1 thiết bị dùng đe đo hướng (orientation) và vậ n tốc góc
(angular velocity). Lí thuyết vậ t lý về Gyro khá thú vị, nhưng nó nằm ngoài phạ m vi
củ a bài, nên mình sẽ không đề cậ p ở đây. Nhưng mình sẽ đe links ở phía cuối bài cho
bạ n nào quan tâm. Trong Android và IOS, Gyroscope sensor sẽ trả lạ i giá trị vậ n tốc góc
trên 3 trụ c x, y, z. Hãy nhìn qua ví dụ đe xem nó nhìn như thế nào nhé.

Hình 5: Xoay 90 điện thoại 90 độ

Trong hình 5, mình thực hiệ n thí nghiệ m giống với thí nghiệ m làm trong hình 3. Tức là
mình đe điệ n thoạ i trên mặ t bàn và xoay điệ n thoạ i 180 độ (tuy nhiên, như bạn thấy
trong hình thì mình xoay thành 2 lần 90 độ vì như thế dễ xoay hơn 😅). Như vậ y là vậ n
tốc góc trên trụ c z thay đoi khi mình xoay trên mặ t phang.

https://medium.com/@att288/accelerometer-gyroscope-magnetometer-dùng-để-làm-gì-a7a2580705f4 5/7
12/8/2019 Accelerometer, Gyroscope, Magnetometer dùng để làm gì?

Hình 6: lật ngược điện thoại

Như bạ n thấy trên hình 5 và 6, Gyroscope giả i quyết rất tốt việ c nhậ n diệ n việ c xoay
hoặ c điều chı̉nh điệ n thoạ i (nhất là khi điệ n thoạ i củ a bạ n không chuyen độ ng, lúc mà
accelerometer không làm gì được).

Nhờ vậ y, Gyroscope được dùng ứng dụ ng rộ ng rãi đe xác định hướng chuyen độ ng củ a
vậ t, ví dụ như xác định hướng bay, hướng rẽ , giữ thăng bằng trong máy bay, drone
hoặ c trong cả ngành hàng không vũ trụ .

Magnetometer
Lạ i giả sử 1 tình huống. Ví dụ khi máy bay đang bay, nó đã lấy độ cao và cân bằng, khi
đấy cả Accelerometer và Gyroscope đều trả gía trị bằng 0. Như thế thì làm sao đe
xác định được hướng củ a máy bay (Đông, Tây, Nam, Bắc)?

Thậ t may, lúc đấy ta lạ i có the dùng Magnetometer. Về mặ t vậ t lý, magnetometer dùng
đe đo lực từ trường tạ i 1 địa điem (hướng, độ lớn, độ biến đoi). Và bằng việ c dùng sử
dụ ng magnetometer đe đo từ trường củ a trái đất, magnetometer sẽ được ứng dụ ng như
1 la bàn cho máy bay.

Trong Android, magnetometer gửi giá trị từ trường xung quanh (Ambient magnetic
field), và cũng được đo đạ t trên 3 trụ c x, y, z với đơn vị là micro-Tesla (uT).

Tính ứng dụ ng củ a Magnetometer không rộ ng rãi bằng Accelerometer và Gyroscope.
Tuy nhiên, Magnetometer có the dùng đe làm công cụ bo trợ cho Accelerometer và
Gyroscope.

Kết hợp Accelerometer, Gyroscope và Magnetometer


3 sensors được đo từ 3 chips vậ t lí khác nhau. Tuy nhiên, nó lạ i có giá trị ho trợ lan nhau.
Trong Smartphone, rất nhiều soft sensor được tạ o nên từ 3 raw sensors này đe hộ trợ
https://medium.com/@att288/accelerometer-gyroscope-magnetometer-dùng-để-làm-gì-a7a2580705f4 6/7
12/8/2019 Accelerometer, Gyroscope, Magnetometer dùng để làm gì?

developers. Bả ng thống kê dưới đây đưa ra 1 vài ví dụ cụ the và khá hữu dụ ng.

Mọt̂ số loại soft sensor trong Android

Tùy vào mụ c đích sử dụ ng và bài toán cụ the, bạ n có the kết hợp các physical sensor với
nhau, hoặ c sử dụ ng những loạ i soft sensors được ho trợ san từ hệ điều hành. Tuy nhiên,
việ c sử dụ ng soft sensors thường khá tốn pin và computational power, vì đơn giả n là nó
được tính toán từ các physical sensors khác.

. . .

Mình hy vọng bài viết này giải thích phần nào được khái niệm và tính ứng dụng của 3
loại sensors này trong smartphones.

Tiếng Việt Ứng Dụng Machine Learning Sensors Android App Development

About Help Legal

https://medium.com/@att288/accelerometer-gyroscope-magnetometer-dùng-để-làm-gì-a7a2580705f4 7/7

You might also like