Windows Phone 8의 센서

2014-06-18

적용 대상: Windows Phone 8 및 Windows Phone Silverlight 8.1 | Windows Phone OS 7.1

 

Windows Phone 은 앱에서 장치의 방향과 동작을 결정할 수 있는 여러 개의 센서를 지원합니다. 이러한 센서를 사용하면 실제 장치 자체가 사용자의 입력 수단이 되는 앱을 개발할 수 있습니다. 일반적으로 이 기능이 사용되는 경우로는 동작 제어 게임과 증강 현실 앱을 꼽을 수 있습니다. 대부분의 경우 모든 센서의 입력을 결합하고 처리하는 복합 동작 API를 이러한 용도로 사용하는데, 이는 복합 동작 API가 동작 및 방향 정보를 얻는 가장 간단한 방법입니다. 개별 센서에서 데이터를 검색하기 위한 API가 필요한 앱을 위해 Windows Phone 에서는 이러한 API도 제공합니다. 이 항목에서는 각 센서 API를 간략하게 살펴봅니다.

각 센서 API는 기본 클래스 SensorBase<TSensorReading>을 기반으로 빌드되며, 센서를 시작하여 데이터를 얻는 비슷한 패턴을 따릅니다. 각 센서에는 앱에서 센서를 사용하는 과정을 빠르게 설명하는 방법 항목이 제공됩니다.

참고참고:

이 항목에서 설명한 Microsoft.Devices.Sensors 네임스페이스의 API 외에도 Windows.Devices.Sensors 네임스페이스에서 유사한 클래스를 사용하여 휴대폰의 센서를 프로그래밍할 수도 있습니다.

주의주의:

앱이 잠금 화면 상태에서 실행될 때는 센서 API를 사용할 수 없습니다. 자세한 내용은 Windows Phone 8의 유휴 검색을 참조하세요. 센서 API는 백그라운드 에이전트에서도 사용할 수 없습니다. 자세한 내용은 Windows Phone 8의 백그라운드 에이전트를 참조하세요.

가속도계는 특정 순간에 장치에 적용되는 힘을 측정합니다. 이러한 힘은 사용자가 장치를 움직이고 있는 방향을 판단하는 데 사용됩니다. 가속도 값은 X, Y, Z축의 가속 구성 요소를 나타내는 3차원 벡터(중력 단위)로 표시됩니다. 가속도 방향은 장치에 상대적이므로, 장치가 테이블 면에서 위를 향하고 있으면 Z축에 -1g가 적용되고 장치가 테이블 상단에 수직으로 놓여 있으면 Y축에 -1g가 적용됩니다.

Accelerometer 센서는 휴대폰이 이동하여 발생하는 모든 힘과 중력을 감지합니다. Motion 클래스를 사용하여 액세스된 복합 동작 API는 장치 센서를 여러 개 사용해 장치 가속도에서 중력 벡터를 분리하고 장치의 현재 자세(요, 피치, 롤)를 손쉽게 확인할 수 있습니다.

Compass(자기계) 센서를 사용하여 지구의 자북극을 기준으로 장치가 회전된 각도를 확인하는 데 사용할 수 있습니다. 앱은 장치 주변의 자기력을 감지하는 데 원시 자기계의 판독값을 사용할 수도 있습니다.

나침반 센서가 모든 Windows Phone 장치에 필요한 것은 아닙니다. 앱을 디자인하고 구현할 때 이러한 사실을 고려하는 것이 중요합니다. 앱은 센서를 사용할 수 있는지를 항상 확인하여 사용할 수 없는 경우 대체 입력 메커니즘을 제공하거나 안정적으로 중단되도록 합니다.

Gyroscope 센서는 각 축에서 장치의 회전 속도를 확인하는 데 사용됩니다. 자이로스코프 센서에서 얻은 값을 사용하여 공간에서 장치의 방향을 확인할 수 있습니다. 자이로스코프는 각도가 아니라 회전 속도를 측정하기 때문에 드리프트와 관련된 문제에 취약할 수 있습니다. 장치의 자세(요, 피치, 롤)를 파악하려는 경우에는 자이로스코프 API 대신 Motion을 사용해야 합니다.

자이로스코프 센서가 모든 Windows Phone 장치에 필요한 것은 아닙니다. 앱을 디자인하고 구현할 때 이러한 사실을 고려하는 것이 중요합니다. 앱은 센서를 사용할 수 있는지를 항상 확인하여 사용할 수 없는 경우 대체 입력 메커니즘을 제공하거나 안정적으로 중단되도록 합니다.

Windows Phone 은 물리적 제한으로 인해 센서의 원시 데이터를 이용하여 장치의 실제 방향과 동작을 쉽게 파악하지 못합니다. 예를 들어 가속도계의 수치에는 장치 동작으로 인한 힘과 장치에 적용되는 중력의 힘이 모두 포함됩니다. 자이로스코프 센서는 위치가 아니라 회전 속도를 측정하므로 드리프트될 수 있습니다. 또한 이러한 센서에서 얻은 원시 데이터를 장치의 실제 방향으로 전환하는 데 필요한 복잡한 기하 계산도 존재합니다. Motion 클래스를 사용하면 간단한 센서 계산을 처리하고, 중력과 사용자의 움직임으로 인해 유발되는 장치의 자세(요, 피치, 롤)와 회전 가속도 및 선형 가속도를 앱에서 쉽게 구할 수 있습니다. 증강 현실 앱 같이 이 유형의 데이터를 사용하는 일반적인 앱의 경우 Motion 클래스를 사용하는 것이 좋습니다. 특별한 방식으로 센서 데이터를 사용하려고 하거나 자체의 동작 및 방향 계산을 구현하려는 경우 개별 센서 클래스를 사용하여 각 센서에서 원시 데이터를 가져올 수 있습니다.

동작 API에서는 두 개의 다른 센서 구성을 사용할 수 있습니다. 일반 동작은 나침반과 가속도계 센서를 사용하며 나침반, 가속도계 및 자이로스코프를 사용하는 고급 동작보다 정확도가 떨어집니다. 앱에 고급 동작의 정확도가 필요한 경우 앱이 실행되는 장치가 자이로스코프 센서를 지원하는지 확인해야 합니다.

사용자가 스토어 에서 앱을 볼 때 사용자의 장치가 앱에 사용되는 센서를 지원하지 않을 경우 경고가 발생합니다. 가속도계, 나침반, 자이로스코프의 경우 간단히 말해 앱에서 센서를 사용하는데 사용자 장치가 이 센서를 지원하지 않으면 경고가 나타납니다.

위에서 설명한 것처럼 동작 API는 적어도 나침반 센서가 있는 장치에서 작동합니다. 그러나 자이로스코프가 있으면 더 좋은 데이터를 얻을 수 있습니다. 현재 스토어 에서는 나침반 센서를 사용하여 동작 API가 장치에서 지원되는지 확인합니다. 사용자가 동작 API를 사용하는 앱을 보고 있지만 장치에 나침반이 없으면 앱에 나침반 센서가 필요하다는 경고가 나타납니다.

표시:
© 2015 Microsoft