MATLAB 객체 속성을 사용하여 센서 데이터 스트리밍하기
이 예제에서는 WiFi 또는 셀룰러 연결을 사용하여 MathWorks® Cloud나 컴퓨터에서 실행 중인 MATLAB®으로 모바일 기기 데이터를 스트리밍하는 방법을 보여줍니다. 모바일 기기와 통신하고 센서에서 데이터를 수집하려면 MATLAB에서 mobiledev
객체를 만드십시오. 객체를 만들기 전까지는 센서 데이터를 기록할 수 없습니다.
센서 데이터 스트리밍 활성화하기
메시지가 표시되면 MathWorks Cloud에 로그인합니다.
센서 데이터를 얻으려는 곳에 기기를 둡니다.
MATLAB에서
mobiledev
객체m
을 만듭니다.m = mobiledev
mobiledev with properties: Connected: 1 Available Cameras: {'back' 'front'} Logging: 0 InitialTimestamp: '' AccelerationSensorEnabled: 1 AngularVelocitySensorEnabled: 1 MagneticSensorEnabled: 1 OrientationSensorEnabled: 1 PositionSensorEnabled: 1 Supported functions
객체를 만들면 화면에 결과가 표시됩니다.
0
- 활성화되지 않음, 꺼짐 또는 이 기기에서 센서를 사용할 수 없습니다.1
- 활성화됨 또는 켜짐.
이 예에서는 기기와
mobiledev
객체가 연결되었지만 센서는 활성화되지 않았고(모든 센서 값이0
임) 데이터도 아직 기록되지 않았음(InitialTimestamp
속성이 비어 있음)을 알 수 있습니다. 기기에 특정 센서가 없는 경우, 해당 센서는 항상0
으로 표시됩니다.InitialTimestamp
는mobiledev
가 받은 첫 번째 데이터 점의 타임스탬프입니다. 모든 센서의 다른 모든 타임스탬프는InitialTimestamp
를 기준으로 합니다.하나 이상의 센서를 활성화합니다.
m.MagneticSensorEnabled=1
위치 센서를 사용 중인 경우에는 기기의 설정에서 MATLAB의 위치 액세스를 켜십시오.
mobiledev
객체의Logging
속성을 활성화하여 선택한 센서의 데이터 기록을 시작할 수 있습니다.m.Logging = 1
이 동작은 선택한 모든 센서에서 데이터 전송을 시작합니다.
데이터 기록을 시작하면 데이터 수집에 1초를 사용한 다음 객체를 표시하여 최신 센서 값을 확인할 수 있습니다.
pause(1) m
mobiledev with properties: Connected: 1 Available Cameras: {'back' 'front'} Logging: 1 InitialTimestamp: '06-08-2014 13:45:56.529' AccelerationSensorEnabled: 1 AngularVelocitySensorEnabled: 1 MagneticSensorEnabled: 1 OrientationSensorEnabled: 1 PositionSensorEnabled: 1 Current Sensor Values: Acceleration: [0.27 0.23 -10.19] (m/s^2) AngularVelocity: [-0.22 0.07 0.06] (rad/s) MagneticField: [3.56 1.56 -48.19] (microtesla) Orientation: [85.91 -27.1 0.35] (degrees) Position Data: Latitude: 41.29 (degrees) Longitude: -72.35 (degrees) Speed: 25 (m/s) Course: 83.6 (degrees) Altitude: 200.1 (m) HorizontalAccuracy: 9.0 (m)
이 표시 결과에서 기기와 클라우드가 연결되어 있고 데이터가 기록되고 있음을 알 수 있습니다. 또한,
InitialTimestamp
속성값과 센서 값이 표시되어 있습니다. 이는 객체를 만들었을 때의 현재 측정값을 나타냅니다.mobiledev
속성을 사용하여 기기 센서 데이터 수집을 제어합니다.센서 데이터 스트리밍을 중지하려면
Logging
속성을 재설정하거나mobiledev
객체를 삭제합니다.clear m
센서 수집 제어하기
MATLABMobile™은 현재 센서 값을 표시하고, 센서를 활성화 또는 비활성화하고, 기록 기능을 켜거나 끄고, 샘플 레이트를 설정하고, 연결 및 기록 상태를 표시하는 속성을 포함합니다.
mobiledev
객체에서 다음 속성을 사용할 수 있습니다.
속성 | 설명 및 값 |
---|---|
Connected | MATLAB Mobile과 MATLAB의
|
Logging | 기기에서 MATLAB으로의 데이터 전송 상태를 표시하고 제어합니다. 가능한 값은
기록을 켜거나 끄려면 다음을 입력하십시오.
|
InitialTimestamp | 기기에서
|
SampleRate | 기기에서 이루어지는 데이터 수집의 샘플 레이트로, 단위는 Hz입니다. 값은 double형이며 0~100Hz 범위 내에 있어야 합니다. 디폴트 샘플 레이트는 10Hz입니다. 구체적인 숫자형 값을 설정하는 것 외에도 다음과 같은 값을 갖는 문자형 벡터
|
Acceleration |
가속도는 |
AngularVelocity |
각속도는 |
Orientation | 방위각, 피치, 롤에 대한 방향은 방위각은 양의 Y축과 자북 사이의 각도이고, 범위는 -180도와 180도 사이입니다. 양의 롤은 표면 위에 기기를 평평하게 둔 상태에서 양의 Z축이 양의 X축을 향해 기울어진 정도로 정의되고, 범위는 -180도와 180도 사이입니다. 양의 피치는 표면 위에 기기를 평평하게 둔 상태에서 양의 Z축이 양의 Y축을 향해 기울어진 정도로 정의되고, 범위는 -90도와 90도 사이입니다. |
MagneticField |
자기장은 |
Latitude | 적도를 기준으로 도 단위로 표현되는 현재 위도 측정값으로, 양의 값은 북위를 나타냅니다. |
Longitude | 본초 자오선을 기준으로 도 단위로 표현되는 현재 경도 측정값으로, 양의 값은 동경을 나타냅니다. |
HorizontalAccuracy | 위도와 경도를 둘러싸는 원으로 정의되는 미터 단위의 현재 수평 정확도입니다. |
Altitude | 해수면 위쪽으로의 거리로 표현되는 미터 단위의 현재 고도 측정값입니다. |
Course | 진북을 기준으로 도 단위로 표현되는 현재 침로 측정값입니다. |
Speed | m/s(초당 미터)로 표현되는 현재 속력 측정값입니다. |
AccelerationSensorEnabled | 가속도 센서를 켜거나 끕니다. 센서를 켜거나 끄려면 다음을 입력하십시오.
|
AngularVelocitySensorEnabled | 각속도 센서를 켜거나 끕니다. 센서를 켜거나 끄려면 다음을 입력하십시오.
|
MagneticSensorEnabled | 자기장 센서를 켜거나 끕니다. 센서를 켜거나 끄려면 다음을 입력하십시오.
|
OrientationSensorEnabled | 방향 센서를 켜거나 끕니다. 센서를 켜거나 끄려면 다음을 입력하십시오.
|
PositionSensorEnabled | 위치 센서를 켜거나 끕니다. 센서를 켜거나 끄려면 다음을 입력하십시오.
|
객체 속성
Connected
속성은 읽기 전용이며, MATLAB Mobile과 MATLAB의 mobiledev
객체 사이의 연결 상태를 표시합니다. 가능한 값은 0
(연결되지 않음)과 1
(연결됨)입니다.
mobiledev
객체 m
의 연결 상태를 표시하려면 다음을 입력하십시오.
m.Connected
Logging
속성은 기기에서 MATLAB으로의 데이터 전송 상태를 표시합니다. 가능한 값은 0
(기록 중이 아님)과 1
(기록 중)입니다.
mobiledev
객체 m
의 기록 상태를 표시하려면 다음을 입력하십시오.
m.Logging
Logging
속성은 기록을 활성화 및 비활성화하는 데도 사용됩니다. 선택한 센서에서 데이터 기록을 시작하려면 속성을 활성화합니다.
m.Logging = 1
이 동작은 선택한 모든 센서에서 데이터 전송을 시작합니다. MATLAB Mobile에서 시작 버튼을 눌러 전송을 시작할 수도 있습니다.
Logging
속성을 비활성화하여 선택한 센서의 데이터 기록을 중지합니다.
m.Logging = 0
이 동작은 선택한 모든 센서에서 데이터 전송을 중지합니다. MATLAB Mobile에서 중지 버튼을 눌러 전송을 중지할 수도 있습니다.
센서 측정값 속성
센서 측정값 속성을 사용하여 센서의 현재 측정값을 표시합니다. 기록 중인 모든 센서의 현재 측정값을 언제든지 표시할 수 있습니다. Acceleration
, AngularVelocity
, Orientation
, MagneticField
속성은 각 센서의 현재 측정값을 표시합니다. 위치 센서가 기록 중인 경우, Latitude
, Longitude
, Speed
, Course
, Altitude
, HorizontalAccuracy
속성을 사용하여 개별 위치 측정값을 가져올 수 있습니다.
센서의 현재 값을 가져오려면 <objectname>.<propertyname>
을 사용하십시오. 예를 들어, 객체 m
의 가속도 측정값을 가져오려면 다음을 입력하십시오.
m.Acceleration
위치 센서에서 경도 측정값을 가져오려면 다음을 입력하십시오.
m.Longitude
기기를 기준으로 한 X
, Y
, Z
축을 보여주는 도식은 기기 방향 항목을 참조하십시오.
센서 제어 속성
MATLAB Mobile에는 센서를 제어하는 5가지 속성이 있습니다. MATLAB Mobile에서 센서 버튼을 선택하거나 선택 취소하여 동일한 작업을 수행할 수도 있습니다. 각 제어 속성에는 1
(켜짐 또는 활성화됨)과 0
(꺼짐 또는 비활성화됨), 두 개의 가능한 값이 있습니다.
예를 들어, 가속도 센서를 켜려면 다음을 입력하십시오.
m.AccelerationSensorEnabled = 1
가속도 센서를 끄려면 다음을 입력하십시오.
m.AccelerationSensorEnabled = 0
샘플 레이트 속성
이 속성은 기기에서 이루어지는 데이터 수집 샘플 레이트로, 단위는 Hz입니다. 값은 double형이며 0~100Hz 범위 내에 있는 양수여야 합니다. 디폴트 샘플 레이트는 10Hz입니다.
구체적인 숫자형 값을 설정하는 것 외에도 문자형 벡터 'high'
, 'medium'
, 'low'
를 사용할 수 있습니다. 이러한 설정은 다음 값을 사용합니다.
high
: 100Hzmedium
: 10Hzlow
: 1Hz
데이터 기록을 시작한 후에도 샘플 레이트를 변경할 수 있습니다. 예를 들어, mobiledev
객체 m
의 샘플 레이트를 Hz 단위의 특정 값으로 변경하려면 다음을 입력하십시오.
m.SampleRate = 100
샘플 레이트를 문자형 벡터 값 중 하나로 변경하려면 다음을 입력하십시오.
m.SampleRate = 'low'
R2016a부터는 문자형 벡터 값을 사용하거나 숫자형 값을 지정할 수 있습니다.