스마트폰은 어떻게 내 걸음을 셀까? 가속도 센서와 만보기의 원리

5 분 소요

건강 앱을 열면 오늘 걸은 걸음 수가 떡하니 표시됩니다. 그런데 생각해 보면 이상합니다. 나는 만보기를 흔들면서 걸은 적이 없고, 폰은 주머니나 가방 안에 그냥 들어 있었을 뿐입니다. 폰은 내 다리를 보지도 못하는데 어떻게 걸음을 셀까요? 그리고 하루 종일 세고 있었을 텐데 왜 배터리는 멀쩡할까요? 이번 글에서는 그 원리를 정리하겠습니다.

폰 안에는 움직임을 느끼는 감각 기관이 있습니다 #

출발점은 가속도 센서입니다. 스마트폰에는 손톱 조각보다 작은 이 센서가 들어 있어서, 폰이 어느 방향으로 얼마나 세게 움직이는지(정확히는 가속되는지)를 느낍니다. 화면을 가로로 돌리면 화면이 따라 도는 것, 폰을 들어 올리면 화면이 켜지는 것이 전부 이 센서의 작품입니다.

원리는 의외로 고전적입니다. 센서 안에는 아주 작은 추가 스프링 같은 구조에 매달려 있습니다. 폰이 움직이면 관성 때문에 추가 아주 살짝 밀리고, 그 밀린 정도를 전기 신호로 읽어 내는 것입니다. 버스가 출발할 때 몸이 뒤로 쏠리는 그 현상을, 실리콘 위에 머리카락보다 얇은 구조물로 재현한 셈입니다. 이런 초소형 기계 장치를 MEMS라고 부르는데, 스마트폰 혁명의 숨은 주역 중 하나입니다.

이 센서는 상하, 좌우, 앞뒤의 세 방향을 동시에 느낍니다. 그래서 폰이 주머니에 어떤 각도로 들어 있어도 움직임을 놓치지 않습니다.

걸음은 파도처럼 생겼습니다 #

사람이 걸으면 몸은 매 걸음마다 살짝 떠올랐다 내려앉습니다. 본인은 느끼지 못해도, 주머니 속 가속도 센서에게 이 움직임은 규칙적으로 출렁이는 파도로 보입니다. 한 걸음마다 파도가 하나씩 생깁니다. 그러니 원리적으로 걸음 세기는 단순합니다. 파도의 봉우리를 세면 됩니다.

물론 현실은 그렇게 깨끗하지 않습니다. 센서에는 걸음 말고도 온갖 출렁임이 섞여 들어옵니다. 그래서 만보기 소프트웨어의 진짜 실력은 봉우리 세기가 아니라 골라내기에 있습니다.

  • 사람 걸음의 리듬인가: 걸음은 대략 초당 1〜3번 사이의 일정한 박자를 만듭니다. 이 범위를 벗어난 진동, 예를 들어 버스의 잔떨림(너무 잘고 불규칙)이나 폰을 한 번 툭 친 충격(단발성)은 걸음이 아니라고 판단합니다.
  • 몇 걸음 이상 이어지는가: 봉우리 몇 개가 리듬을 갖추고 연달아 나타날 때에야 비로소 걷기 시작했다고 인정합니다. 많은 만보기가 걷기 시작 후 몇 걸음은 뒤늦게 한꺼번에 반영하는 이유가 이것입니다. “진짜 걷는 게 맞는지” 잠깐 지켜보는 것입니다.
  • 다른 센서와의 교차 확인: 회전을 느끼는 자이로 센서 등의 신호를 함께 보면, 손목에서 폰을 흔드는 것과 몸 전체가 이동하는 걷기를 더 잘 구분할 수 있습니다.

그래도 완벽하지는 않습니다. 마트에서 카트를 밀면 손이 고정되어 스마트워치가 걸음을 놓치기도 하고, 울퉁불퉁한 길에서 자전거를 타면 걸음으로 오인되기도 합니다. 만보기의 숫자는 정밀 측정값이 아니라 꽤 훌륭한 추정치로 읽는 것이 맞습니다.

하루 종일 세는데 배터리가 멀쩡한 이유 #

걸음을 세려면 센서를 쉬지 않고 지켜봐야 합니다. 그런데 폰의 두뇌인 메인 칩(AP)은 대식가라서, 이 감시를 메인 칩에게 시키면 배터리가 순식간에 녹아내립니다.

그래서 요즘 폰에는 센서 감시만 전담하는 초저전력 보조 칩이 따로 들어 있습니다. 모션 코프로세서라고 불리는 이 작은 칩은 메인 칩이 잠들어 있는 동안에도 혼자 깨어 센서 신호를 읽고 걸음을 세서 쌓아 둡니다. 전기를 극도로 아껴 쓰도록 설계되어서, 밤새 세고 있어도 배터리에 티가 나지 않습니다. 우리가 건강 앱을 열 때 앱이 하는 일은 실시간 계산이 아니라, 이 보조 칩이 쌓아 둔 장부를 받아서 보여 주는 것에 가깝습니다.

정리하면 분업 구조입니다. 값싼 감시는 절전형 보조 칩이 24시간 하고, 비싼 두뇌는 필요할 때만 깨어납니다.

앱마다 숫자가 다른 이유 #

같은 하루를 보냈는데 폰의 건강 앱, 스마트워치, 별도의 만보기 앱이 제각각 다른 걸음 수를 보여 주는 경험은 흔합니다. 이유는 지금까지의 이야기 안에 다 있습니다.

  • 골라내는 기준이 회사마다 다릅니다. 애매한 출렁임을 걸음으로 쳐 줄지 말지의 민감도가 다르면, 하루가 쌓이면 수백 걸음 차이가 납니다.
  • 차고 있는 위치가 다릅니다. 주머니 속 폰과 손목의 워치는 같은 걸음에 대해 전혀 다른 파형을 봅니다. 워치는 손을 쓰는 집안일을 걸음으로 세기 쉽고, 폰은 폰을 책상에 두고 걸은 걸음을 아예 모릅니다.
  • 집계 방식도 다릅니다. 여러 기기의 기록을 합칠 때 겹치는 시간대를 어떻게 처리하는지가 앱마다 달라서, 연동을 하면 오히려 숫자가 더 어긋나 보이기도 합니다.

그러니 앱끼리의 수백 걸음 차이에 의미를 둘 필요는 없습니다. 중요한 것은 같은 기준으로 잰 어제와 오늘의 비교이고, 그 용도로는 어느 앱이든 충분히 정확합니다.

정리 #

  • 폰 안의 가속도 센서는 스프링에 매달린 초소형 추가 관성으로 밀리는 것을 읽어, 세 방향의 움직임을 느낍니다.
  • 걸음은 센서에게 규칙적인 파도로 보이고, 만보기는 그 봉우리를 셉니다. 진짜 실력은 버스 진동과 손 흔들기를 걸러 내는 골라내기에 있습니다.
  • 몇 걸음이 리듬을 갖춰 이어질 때에야 걷기로 인정하므로, 걷기 시작 직후 몇 걸음은 뒤늦게 반영되곤 합니다.
  • 감시는 메인 칩이 아니라 초저전력 보조 칩이 전담합니다. 하루 종일 세도 배터리가 멀쩡한 이유입니다.
  • 앱마다 숫자가 다른 것은 판정 기준, 착용 위치, 집계 방식의 차이입니다. 절대값보다 같은 앱 안에서의 추세를 보는 것이 올바른 사용법입니다.
X