회색입니다. 안드로이드 센서(Android Sensor)의 종류(Orientation, Accelorometer, Magnetic field)와 좌표계 그리고 값에 대해 간단히 정리했습니다. 가속도 센서를 이용하시려고 하는 분은 참고하세요.
 
좌표 시스템
센서는 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/s2) 단위로 되어있으며, 접촉힘(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://code.google.com/android/reference/android/hardware/SensorListener.html


    Creative Commons License
    이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용하실 수 있습니다.  출처 : http://www.androidpub.com/1305 작성자 : 회색(박성서)