이번역페이지는최신내용을담고있지않습니다。최신내용을영문으로보려면여기를클릭하십시오。
모바일기기에서각속도데이터와방향데이터수집및플로팅하기
Android™이예제에서는또는iOS모바일기기에서여러센서의데이터를한타임라인에함께플로팅하는방법을보여줍니다。각속도와방향의측정값은기기에서수집되어절대시간에대해플로팅됩니다。이를통해두센서의데이터간상관을실제측정시간을기준으로시각화할수있습니다。
모바일기기설정하기
MATLAB®에서모바일기기로부터데이터를수신하려면모바일기기에MATLAB移动™앱을설치하고설정해야합니다。
MATLAB移动설정에서MathWorks®云에로그인합니다。
모바일기기에대한연결만들기
MATLAB移动의명령화면에서mobiledev
명령을사용하여모바일기기를나타내는객체를만듭니다。
m = mobiledev;
출력에mobiledev
객체가앱에대한연결을성공적으로설정했음을나타내는联系:1
이표시되어야합니다。
여러센서에서오는데이터수집준비하기
적절한mobiledev
속성을사용하여기기의센서를활성화합니다。
m.AngularVelocitySensorEnabled = 1;m.OrientationSensorEnabled = 1;
데이터수집시작하기
센서를활성화하면MATLAB移动의센서화면에센서가측정한현재데이터가표시됩니다。日志记录
속성을사용하면센서데이터를mobiledev
로보내기시작할수있습니다。
m.Logging = 1;
이제기기가센서데이터를전송합니다。
기록이시작되면화면을위로한상태로기기를테이블위에평평하게둡니다。각속도센서의양의Y축은기기의상단을향하는것으로정의되어있습니다。방향센서의양의롤은Y축의양의방향을향할때Y축을중심으로시계방향으로회전하는것으로정의되어있습니다。
기록하는동안기기의Y축을중심으로위를향하게했다가아래를향하게하도록기기를몇차례돌립니다。그러면각속도의Y축에변화가생기고이에따라방향의롤에도변화가생깁니다。
데이터수집중지하기
日志记录
속성을다시사용하여기기가mobiledev
로센서데이터를보내는것을중지하도록합니다。
m.Logging = 0;
기록된데이터가져오기
mobiledev
객체에서각센서의데이터에액세스할수있습니다。기기에서각속도데이터와방향데이터를동시에기록하지않을수있기때문에두가지다른타임스탬프변수가생성됩니다。
(av, tav) = angvellog (m);[o] = orientlog (m);
원시센서데이터플로팅하기
센서에서관심있는데이터를별도의변수로분리하고플로팅합니다。
yAngVel = av (:, 2);滚= o (: 3);情节(yAngVel,抗议者,卷);传奇(“Y”角速度,“滚”);包含(“相对时间(s)”);
데이터는mobiledev
의InitialTimestamp
속성을기준으로초단위로플로팅됩니다。이속성은센서에서기록되고MATLAB으로전송된첫번째데이터점의절대시간을제공합니다。이는angvellog
및orientlog
와같은함수를사용하여액세스되는모든센서데이터의타임스탬프에대한기준점역할을합니다。이러한타임스탬프는InitialTimestamp
에상대적인초단위값으로주어집니다。
절대적인타임스탬프로변환하기
모든센서타임스탬프를절대적인타임스탬프로변환하기위해InitialTimestamp
값을datetime
객체로변환합니다。개별센서타임스탬프(단위:초)를秒
로변환합니다。그러면상대적인타임스탬프를절대적인타임스탬프로변환하기위한날짜계산이간단해집니다。
tInit = datetime (m。InitialTimestamp,“InputFormat”,“dd-MM-yyyy HH: mm: ss。瑞士的);tAngVel = tInit +秒(tav);toent = tInit +秒(to);
절대시간에대해여러센서플로팅하기
두센서모두이제datetime
을사용하여나타낸절대적인타임스탬프를갖습니다。따라서센서판독값에서유의미한이벤트가발생한실제시간을쉽게시각화할수있습니다。
방향센서는도(学位)를단위로사용하는반면,각속도센서는초당라디언을단위로사용합니다。다시플로팅하기전에yAngVel
을초당도(学位)로변환합니다。
/ /情节(tAngVel yAngVelDeg、tOrient卷);传奇(“Y”角速度,“滚”);包含(“绝对时间(s)”);
정리하기
활성화된센서를끄고mobiledev
를지웁니다。
m.AngularVelocitySensorEnabled = 0;m.OrientationSensorEnabled = 0;清晰的米;