본문 바로가기

IT/Android

안드로이드 가속도센서 좌표계및 값 정리

좌표 시스템 
센서는 X, Y, Z 의 좌표에 대해서 각각에 해당하는 값을 배열로 받아와서 처리할 수 있게 되어있습니다. 

좌표 축 정의
X축 : 화면에 수평축(portrait 모드에서 짧은 에지를 landscape 모드에서 긴 에지)을 나타내며 오른쪽을 가리킨다.
Y축 : 화면에 수직축을 나타내며 화면 위쪽을 가리킨다.(원점은 왼쪽 밑 코너)
Z축 : 단말이 화면을 위로 해서 테이블에 올려져 있다고 생각했을 때 하늘을 가리킨다.

g1_accelorometer.jpg

* Orientation (Portrait, Landscape)이 바뀌었을 때 좌표값 역시 바뀐다는 것을 기억해야 합니다. 바뀌지 않은 값을 사용하기 위해서는 배열의 3, 4, 5번째 값을 가져올 수 있습니다.

g1_accelorometer2.jpg

출처 : 
Orientation
SENSOR_ORIENTATION (방향 센서)
각 배열의 값은 각도를 나타냅니다.  
단말기 화면이 하늘을 향한 상태로 테이블 위에 수평으로 놓여있는 상태를 기준으로 각 축을 중심으로 회전시키는 것을 생각하면 됩니다.

values[0] : Z 축을 중심으로 회전 (0 <= azimuth < 360) 
                    0  = 북, 90 = 동, 180 = 남, 270 = 서

values[1] : X축을 중심으로 회전 (-180 <= pitch <= 180) 
                   Z축이 Y축 방향으로 향하면 0보다 큰값
                   화면이 하늘을 향하고 테이블위에 수평으로 놓여있는  상태 0, 화면이 아래를 향하면 -180 or 180,  
                   똑바로 세우면 -90, 거꾸로 세우면 +90
                   
values[2] : Y축을 중심으로 회전 (-90 <= roll <= 90) 
                   Z축이 X축 방향으로 향하면 0보다 큰값
 

Accelerometer
SENSOR_ACCELOROMETER (가속도 센서)
각 배열의 값은 (m/s
2) 단위로 되어있으며, 접촉힘(Contact Force)을 측정합니다. 

values[0] : X축에 적용되는 힘
values[1] : Y축에 적용되는 힘
values[2] : Z축에 적용되는 힘

예를 들어
  • 단말의 왼쪽 측면을 오른쪽 방향으로 눌렀을때 X 가속도 값은 음수를 나타냅니다.
  • 단말에 테이블위에 평평하게 놓여있을때 -STANDARD_GRAVITY 값, 즉 -9.8 (m/s2) 을 가집니다. 단말이 테이블에서 중력에 대한 반작용으로 적용되는 힘을 나타냅니다. 

    Mgnetic field
    SENSOR_MAGNETIC_FIELD (자기장 센서)
    모든 값은 micro-Tesla (uT) 단위로 되어있으며, X, Y, -Z 축 주변 자기장을 측정합니다.

    * Z축의 값이 바뀐 것 주의

  • 출처 : http://www.androidpub.com/?_filter=search&mid=android_dev_info&search_target=title&search_keyword=가속도&document_srl=1305   (안드로이드펌)