Main Content

이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.

가속도계 데이터 기록하기

이 예제에서는 스마트폰이나 태블릿 가속도계에서 발생하는 데이터를 조작하고 시각화하는 방법을 보여줍니다.

가속도계는 속도의 변화율, 즉 가속도를 측정하는 센서입니다. 가속도계는 3차원 카테시안 좌표계를 사용하고, 아래 그림에 표시된 각 좌표축에 대한 가속도 값을 반환합니다.

MATLAB Mobile의 센서 메뉴를 사용하여 손쉽게 가속도계 데이터를 수집할 수 있습니다.

가속도계 데이터를 기록하려면 다음 단계를 따르십시오.

  1. "스트리밍 위치:로그"를 선택합니다.

  2. 샘플 레이트를 조정합니다(디폴트 값은 10Hz임).

  3. 가속도 스위치를 켭니다.

  4. 시작을 누릅니다.

데이터를 수집한 후에 다음 단계를 따르십시오.

  1. 중지를 누릅니다.

  2. 저장할 파일 이름을 입력합니다(디폴트 이름이 제공됨).

  3. 자동 업로드 옵션이 켜져 있으면 파일은 MATLAB Drive에 구성된 업로드 폴더(디폴트 폴더는 MATLAB Drive/MobileSensorData임)에 .mat 파일로 업로드됩니다.

이 예제에서는 다음 활동으로 사전 기록된 세션이 사용됩니다.

  • 서기

  • 걷기

  • 천천히 달리기

  • 빨리 달리기

데이터는 스마트폰을 선수의 가슴에 정면을 보도록 가로로 부착한 상태에서 수집되었습니다.

데이터를 시각화하기 위해, 수집된 센서 데이터의 .mat 파일을 먼저 불러옵니다.

load fieldActivities.mat

데이터는 변수 x, y, z로, 타임스탬프는 timestamp로 읽어 들입니다.

x = Acceleration.X;
y = Acceleration.Y;
z = Acceleration.Z;
timestamp = Acceleration.Timestamp;

불러온 변수의 가속도 값을 사용하여, 결합된 3축 벡터의 크기를 계산합니다.

combinedAccel = sqrt(x.^2+y.^2+z.^2);

벡터 t 0으로 초기화합니다(성능을 위해 권장됨).

t = zeros(size(timestamp));

시작 시점을 기준으로 설정하여 절대 시간을 상대 값으로 변환합니다.

for n = 1 : length(timestamp)
  t(n) = seconds(timestamp(n) - timestamp(1));
end

마지막으로, plot 명령을 사용하여 결과를 표시합니다.

plot(t, combinedAccel)
xlabel('Time (s)')
ylabel('Acceleration (m/s^2)')

그래프에서 서로 다른 4가지 활동을 쉽게 식별할 수 있습니다. 처음에는 서 있는 자세로 시작합니다. 이때 가속도는 9.8m/s^2(중력)으로 거의 일정합니다. 그런 다음, 활동이 걷기, 천천히 달리기, 빨리 달리기로 넘어가면서 진폭과 주파수가 모두 증가합니다.

각 축에서의 개별 결과를 보려면 아래 라이브 컨트롤을 사용하십시오.

축을 선택하여 해당 방향의 가속도 값을 확인합니다.

plot (t,x)
title('Acceleration during 4 activities')
xlabel('Time (s)')
ylabel('Acceleration (m/s^2)')