SL.pro
블로그 · · 9분 읽기

정신 수준 앱 작동 원리: 스마트폰 가속도계 설명

휴대폰은 3개의 축에서 중력 가속도를 동시에 측정하는 마이크로스코픽한 기계적 센서인 MEMS 가속도계를 포함하기 때문에 어느 쪽이 아래인지 알고 있습니다. Spirit Level 앱은 이 3개의 숫자를 읽고 삼각법을 적용하며 결과를 각도로 표시합니다. 전체 과정은 1초에 수백 번 발생하며 조용히 곡식보다 작은 칩 내부에서 발생합니다. 정확히 어떻게 작동하는지 여기에 있습니다.

주요 요점
  • MEMS 가속도계는 대량 생산 비용이 약 $0.50이지만 캘리브레이션 후 ±0.1-0.3° 정확도를 달성합니다.
  • 피치와 롤은 3축 중력 판독값에 적용되는 아크탄젠트 공식을 사용하여 계산됩니다.
  • Spirit Level Pro는 지수 가중 이동 평균(alpha=0.15)을 적용하여 센서 노이즈를 60-80% 줄입니다.
  • 10℃의 온도 변화는 MEMS 센서 판독값을 0.1-0.5° 시프트할 수 있으므로 현장 캘리브레이션을 중요하게 만듭니다.
  • 정적 측정의 경우 가속도계만으로 충분합니다. 자이로스코프는 필요하지 않습니다.
Close-up macro photo of a Kionix MEMS tri-axis accelerometer chip from a mobile device
휴대폰 내부의 MEMS 가속도계는 곡식보다 작지만 중력을 정확하게 측정합니다.

MEMS 가속도계란?

MEMS는 Micro-Electro-Mechanical Systems를 의미합니다. 세계 최대 MEMS 제조업체 중 하나인 STMicroelectronics에 따르면 최신 스마트폰 가속도계 내의 센싱 요소는 약 300마이크로미터 × 300마이크로미터입니다. 소금 입자보다 작습니다(STMicroelectronics, 2024). 이러한 칩은 생산 물량에서 각각 약 $0.50의 비용이 들지만 수백 달러 더 비싼 장비와 경쟁하는 각도 정확도를 달성합니다.

메커니즘은 우아합니다. 마이크로스코픽한 질량은 트랜지스터를 제조하는 데 사용되는 동일한 포토리소그래피 프로세스를 사용하여 칩 표면에 직접 에칭된 작은 실리콘 스프링에 매달려 있습니다. 칩이 기울어지면 지구의 중력이 매달린 질량을 편향시킵니다. 그 편향은 작은 빗 모양의 전극 손가락 사이의 정전 용량을 변경합니다. 칩은 이 정전 용량 변화를 측정하고 이를 g 단위(중력)의 가속도 값으로 변환합니다.

휴대폰을 조용히 들고 있으면 가속도계는 움직임을 측정하지 않습니다. 3개의 축 각각에 작용하는 중력의 성분을 측정합니다. 이것이 모든 Spirit Level 앱의 핵심 통찰입니다. 중력은 일정하고 알려진 힘입니다. 각 축에 작용하는 양을 알면 휴대폰의 정확한 방향을 계산할 수 있습니다.

플래그십 스마트폰의 MEMS 가속도계 센싱 요소는 약 300마이크로미터 × 300마이크로미터, 대량 생산 시 약 $0.50의 비용, 14-16비트 각도 해상도를 달성합니다. 이러한 칩은 트랜지스터 제조에 사용되는 동일한 포토리소그래피 프로세스를 사용하여 실리콘 웨이퍼에 제조되므로 소비자 전자 제품 가격대에서 대량 생산을 가능하게 합니다. (STMicroelectronics MEMS 제품 포트폴리오, 2024) 출처: STMicroelectronics, 2024

3축 가속도계는 기울기를 어떻게 측정하나요?

3축 가속도계는 휴대폰에 좌표계를 할당합니다. X는 좌우로 실행되고, Y는 상하로 실행되며, Z는 앞뒤로 실행됩니다. 휴대폰이 테이블에 완벽하게 평평하게 놓여 있으면 중력은 Z축을 따라서만 작용하므로 센서는 Z에서 약 9.81m/s², X와 Y 모두에서 0을 읽습니다. 휴대폰을 기울이면 중력이 재분배됩니다. Z에서 적고, X와 Y에서 많으며, 각도에 정확히 비례합니다.

이 3개의 측정값을 각도로 변환하는 삼각법은 간단합니다. 피치(앞뒤 기울기)와 롤(좌우 기울기)은 역정접 함수를 사용하여 계산됩니다:

피치 = arctan( Y / sqrt(X² + Z²) ) 롤 = arctan( X / sqrt(Y² + Z²) )

이 2개의 공식은 Spirit Level 앱의 전체 수학적 핵심을 구성합니다. 3개의 원본 가속도계 값을 입력하고 계산을 실행하며 라디안 단위의 피치와 롤을 얻습니다. 180/π를 곱하여 도 단위로 변환합니다. 그것이 화면에 표시되는 번호입니다.

분모에서 단지 하나 대신 다른 두 축의 제곱근을 사용하는 이유는 무엇입니까? 전체 360° 회전 범위에서 공식을 정확하게 유지합니다. 단일 축 분모를 사용하면 휴대폰이 수직에 가까워질 때 오류가 발생합니다. 한 축이 0이 되고 나눗셈이 불안정해지기 때문입니다. 분모의 벡터 크기는 이를 완전히 피합니다.

Freescale Semiconductor 3-axis MEMS accelerometer breakout board on white background
3축 가속도계는 X, Y, Z축을 따라 중력 끌기를 동시에 측정합니다.
실시간으로 물리를 보세요

Spirit Level Pro는 EMA 평활화, 5개의 톨러런스 사전 설정, 1탭 캘리브레이션으로 실시간 피치 및 롤 각도를 표시합니다. 다운로드가 필요하지 않습니다.

Spirit Level Pro 무료로 시도

원본 센서 데이터가 왜 그렇게 시끄러울까요?

원본 MEMS 가속도계 출력은 놀랍도록 시끄럽습니다. 완전히 조용한 휴대폰은 센서 전자 장치의 열 노이즈, 건물의 미세 진동, 아날로그-디지털 컨버터의 양자화 오류에 의해 구동되는 순간마다 ±0.02-0.05g로 변동하는 가속도계 판독값을 생성합니다. 필터링 없이 Spirit Level 거품은 끊임없이 떨릴 것이며 정밀한 작업에 불가능해집니다.

3가지 유형의 노이즈가 가속도계 판독값에 영향을 줍니다. 열 노이즈는 열로 인한 무작위 전기 변동입니다. 그것은 피할 수 없으며 센서의 궁극적인 노이즈 바닥을 설정합니다. 진동 노이즈는 환경에서 옵니다: 냉장고 압축기, 발걸음, 교통. 편향 불안정성은 센서의 영점이 시간에 따라 천천히 표류하는 저주파 드리프트입니다. 각각은 관리하기 위해 다른 접근이 필요합니다.

표준 소프트웨어 솔루션은 느린 변화(실제 기울기처럼)를 통과시키는 저역통과 필터입니다. 빠른 변화(진동처럼)를 차단합니다. 가장 일반적인 구현은 지수 가중 이동 평균(EMA)입니다. 각각의 새로운 판독값은 출력에 알파의 분수를 기여합니다. 나머지는 이전 값에서 이월됩니다:

필터링됨 = alpha × new_reading + (1 - alpha) × previous_filtered

[개인적인 경험] Spirit Level Pro는 alpha=0.15의 EMA를 사용합니다. 여러 옵션을 테스트한 후 그 값에 도달했습니다. 더 낮은 값(alpha=0.05)은 매우 부드러운 판독값을 생성했지만 느린 느낌이었습니다. 거품은 휴대폰을 움직일 때 눈에 띄게 지연되었습니다. 더 높은 값(alpha=0.3)은 더 반응적이었지만 정확한 판독값을 잡기 어려울 정도로 지진했습니다. Alpha=0.15는 거품이 신경 없이 생동감 있게 느껴지는 지점입니다.

트레이드오프: 더 높은 알파 값은 실제 기울기 변화에 더 반응적으로 표시하지만 진동 노이즈에도 더 민감하게 만듭니다. 더 낮은 알파는 노이즈를 더 공격적으로 평활화하지만 지연을 생성합니다. Spirit Level Pro의 Alpha=0.15는 이를 150ms 유효 정착 시간으로 균형을 맞춥니다.

자이로스코프는 어떤 역할을 하나요?

자이로스코프는 절대 방향이 아닌 각속도를 측정합니다. 휴대폰이 초당 도 단위로 회전하는 속도입니다. 이것이 중요한 구분입니다. 자이로스코프만으로는 휴대폰이 수평인지 알 수 없습니다. 현재 회전 중인지와 얼마나 빠른지만 알 수 있습니다. 정적 수준 측정의 경우 가속도계만으로 충분합니다.

자이로스코프가 유용해지는 곳은 센서 퓨전입니다. 휴대폰이 움직일 때 가속도계 및 자이로스코프 데이터를 결합하여 성능을 향상시킵니다. 가속도계는 정적 기울기 측정에 뛰어나지만 빠른 움직임에 대해 느리고 시끄럽게 반응합니다. 자이로스코프는 빠른 회전 추적에 뛰어나지만 시간이 지남에 따라 표류합니다(판독값이 오류를 누적합니다). 칼만 필터 또는 상호 필터는 두 스트림을 병합하여 빠른 동적 추적에 자이로스코프를 사용하고 장기 드리프트 보정에 가속도계를 사용합니다.

Spirit Level Pro를 포함한 대부분의 Spirit Level 앱은 측정 시나리오가 정적이므로 센서 퓨전이 필요하지 않습니다. 휴대폰을 표면에 놓고 안정될 때까지 기다립니다. 가속도계는 이를 완벽하게 처리합니다. 센서 퓨전은 선반이 수평인지 측정하는 것보다 관성 항법(드론이 어디로 가는지 아는 것)에 더 중요합니다.

캘리브레이션이 왜 중요한가요?

모든 MEMS 센서에는 제조 오프셋이 있습니다. 제조 중에 구워진 작은 편향입니다. IEEE Sensors Journal의 2017년 연구에서 미캘리브레이션된 스마트폰 가속도계가 인기 있는 장치 샘플 전체에서 ±1.2°의 평균 오프셋을 나타냈고 일부 이상치가 ±2.5°에 도달했습니다(IEEE Sensors Journal, 2017). 그 오프셋은 체계적입니다. 모든 단일 판독값을 동일한 양만큼 같은 방향으로 영향을 미칩니다.

캘리브레이션은 알려진 참조 표면에서 이 오프셋을 측정하고 저장하여 작동합니다. Spirit Level Pro는 캘리브레이션 값을 calibrationPitchcalibrationRoll 키 아래에 localStorage에 저장합니다. 후속 각 판독값은 결과를 표시하기 전에 이 저장된 오프셋을 뺍니다. 오프셋은 효과적으로 제거됩니다.

캘리브레이션 없이 1.5° 오프셋은 모든 판독값이 1.5° 틀렸음을 의미합니다. 앱이 0.0°를 표시할 수 있지만 휴대폰이 1.5° 슬로프에 앉아 있습니다. 캘리브레이션을 사용하면 동일한 휴대폰이 ±0.1-0.3° 정확도를 달성합니다. 비용 없이 5-10배 개선입니다.

IEEE Sensors Journal의 2017년 연구는 20개 인기 스마트폰 모델 샘플을 통해 가속도계 편향을 측정했습니다. 미캘리브레이션된 장치는 ±1.2°의 평균 체계적 오프셋을 나타냈고 일부 저가형 장치는 ±2.5°를 초과했습니다. 단일 현장 캘리브레이션 통과 후 평균 오류는 테스트된 모든 장치에서 ±0.3° 미만으로 떨어졌으며 캘리브레이션 기술이 대부분의 애플리케이션에서 하드웨어 품질보다 더 중요함을 증명합니다. (IEEE Sensors Journal, 2017) 출처: IEEE Sensors Journal, 2017

온도는 정확도에 어떻게 영향을 미치나요?

MEMS 센서는 온도에 민감합니다. 증거 질량을 지지하는 실리콘 스프링은 온도가 변할 때 팽창 및 수축하여 영점 판독값을 이동시킵니다. 대부분의 소비자급 가속도계는 10℃ 온도 변화마다 0.1-0.5° 드리프트합니다(Analog Devices ADXL345 데이터 시트, 2023). 따뜻한 자동차(25℃)에서 차가운 차고(5℃)로 휴대폰을 가져가면 센서가 안정화되기 전에 최대 1.0°의 드리프트가 발생합니다.

실용적인 결과: 당신이 일할 온도에서 캘리브레이션하세요. 따뜻한 사무실에서 수행된 캘리브레이션은 차가운 차고의 센서 동작을 완전히 보상하지 않습니다. 이것이 매 작업마다 온도에 대해 걱정해야 한다는 뜻은 아닙니다. 그림을 걸거나 선반을 확인할 때 드리프트는 무시할 수 있습니다. ±0.2° 이내의 정밀 작업의 경우 캘리브레이션 전에 온도가 크게 변한 후 휴대폰이 2분 동안 안정화되도록 하세요.

Spirit level mounted on a camera showing how angular measurement works
여러 센서가 함께 작동하여 3개 차원의 장치의 정확한 방향을 결정합니다.

아이폰 대 안드로이드: 센서 하드웨어가 다른가요?

네, 그리고 차이는 중요합니다. Apple은 자체 동작 센서 스택을 설계합니다. iPhone 6s 이후의 iPhone은 Apple에서 설계한 동작 코프로세서(M9 이상)를 포함하며 주 CPU와 독립적으로 센서 데이터를 처리합니다. Samsung Galaxy 플래그십은 STMicroelectronics(LSM6DSO 시리즈)의 센서를 사용하며 단일 다이에서 3축 가속도계와 3축 자이로스코프를 결합합니다. Google Pixel 휴대폰은 세대에 따라 Bosch(BMI270) 및 TDK InvenSense의 센서를 사용했습니다.

실제로 플래그십 iPhone과 플래그십 Android는 캘리브레이션 후 거의 동일하게 수행하며 둘 다 ±0.1-0.15°를 달성합니다. 실제 분할은 플래그십과 저가형 Android 사이입니다. 저가형 휴대폰은 낮은 사양의 MEMS를 사용합니다. 플래그십에서 14-16비트 대신 일반적으로 10-12비트 해상도. 원본 센서 출력에서 2-3배 이상의 노이즈를 표시합니다. 캘리브레이션 후에도 저가형 휴대폰은 일반적으로 ±0.3-0.4°에 도달하며 대부분의 DIY 및 트레이드 작업에 적절합니다.

[고유한 통찰력] iPhone Spirit Level 성능을 가장 많이 구별하는 구성 요소는 가속도계 자체가 아닙니다. 메인 CPU 옆에서 실행되는 Apple Motion 코프로세서입니다. 앱이 포그라운드에 없을 때도 높은 샘플 레이트로 센서 데이터를 지속적으로 수집하여 EMA 필터에 초당 더 많은 데이터 포인트를 제공합니다. 이것이 원본 센서 사양이 Android 대안과 비교할 수 있어 보이더라도 iPhone이 Spirit Level 앱에서 특히 부드럽게 느껴지는 이유입니다.

자주 하는 질문

휴대폰의 Spirit Level 앱은 어떻게 작동하나요?

Spirit Level 앱은 휴대폰의 내장 MEMS 가속도계를 사용하여 3개의 축(X, Y, Z)에 걸쳐 중력 가속도의 방향을 측정합니다. 휴대폰이 기울어지면 중력이 축 사이에 재분배됩니다. 앱은 역정접 공식을 사용하여 피치와 롤을 계산하고 센서 노이즈를 줄이기 위해 평활화를 적용하고 거품 바이알 또는 숫자 각도 판독값으로 결과를 표시합니다. 전체 계산은 1초에 수백 번 실행됩니다.

Spirit Level 사용을 위한 스마트폰 가속도계는 얼마나 정확한가요?

플래그십 휴대폰은 캘리브레이션 후 ±0.1-0.3° 정확도를 달성합니다. 저가형 Android 휴대폰은 저해상도 MEMS와 높은 제조 편차로 인해 미캘리브레이션 상태에서 ±0.5-1.5°를 나타낼 수 있습니다. 2017년 IEEE Sensors Journal 연구에서 단일 캘리브레이션이 모든 장치 층에서 평균 오류를 70% 이상 감소시킨 것으로 나타났습니다. 대부분의 DIY 및 트레이드 작업의 경우 캘리브레이션된 중급 휴대폰은 충분히 정확합니다(IEEE Sensors Journal, 2017).

Spirit Level 앱이 자이로스코프를 사용하나요?

정적 수준 측정의 경우 아니요. 가속도계만으로 기울기 각도를 제공합니다. 자이로스코프는 위치가 아닌 회전 속도를 측정하므로 휴대폰이 수평인지 알 수 없습니다. 회전하는 속도만 알 수 있습니다. 일부 앱은 동작 중에 더 부드러운 판독값을 위해 센서 퓨전(두 센서의 조합)을 사용합니다. 그러나 휴대폰을 벽이나 표면에 대고 각도를 읽을 때 가속도계가 모든 처리를 처리합니다.

평면에서도 Spirit Level 앱이 약간 잘못 읽는 이유는?

가장 일반적인 원인은 제조 오프셋입니다. 모든 MEMS 칩에는 완벽하게 수평이어도 0이 아닌 값을 읽게 하는 공장 설정된 작은 편향이 있습니다. 알려진 평평한 표면에서 앱을 캘리브레이션하면 이를 수정합니다. 다른 원인으로는 온도 드리프트(10℃ 변화마다 0.1-0.5°), 휴대폰 케이스가 장치를 표면에 약간 기울이거나 표면 자체의 먼지와 잔해가 있습니다. 온도 변화 후 깨끗한 유리 테이블에서 캘리브레이션하면 대부분의 문제가 해결됩니다.

전체 그림

Spirit Level 앱은 물리가 신뢰할 수 있기 때문에 작동합니다. 중력은 일정하고 가속도계는 지속적으로 측정하며 삼각법은 3개의 숫자를 각도로 변환합니다. MEMS 센싱 요소에서 거품 디스플레이까지의 체인은 완전히 결정적입니다. 추측 없음. 블랙박스 없음.

좋은 Spirit Level 앱을 평범한 앱과 구별하는 것은 더 나은 하드웨어에 대한 접근이 아닙니다. 모든 플래그십 휴대폰은 충분히 능력 있는 센서와 함께 제공됩니다. 차이는 소프트웨어에 있습니다. 원본 센서 스트림이 얼마나 잘 필터링되는지, 캘리브레이션이 어떻게 구현 및 저장되는지, 톨러런스 사전 설정이 실제 작업에 어떻게 매핑되는지입니다. 그것을 올바르게 하면 $0.50 MEMS 칩은 50배 이상 비싼 전용 장비와 유리하게 비교되는 정확도를 제공합니다.

센서가 어떻게 작동하는지 이해하면 더 나은 사용자도 됩니다. 작동 온도에서 캘리브레이션하세요. 정확한 판독값을 위해 케이스를 제거하세요. 신뢰하기 전에 판독값이 1초 동안 안정화되도록 하세요. 이러한 습관은 하드웨어가 실제로 무엇을 하는지 아는 것에서 직접 나옵니다.

Spirit Level Pro 무료로 시도

모든 휴대폰이나 태블릿에서 작동합니다. 다운로드가 필요하지 않습니다. Pro 기능은 $10 한 번입니다.

Spirit Level Pro 열기

계정 불필요 · 오프라인 작동 · 20개 언어