MATLAB採集手機內置感測器數據進行實時演算法設計的方法
本文介紹的方法能夠實現將手機內置的加速度感測器、磁力計、角速度感測器、陀螺儀及GPS數據採集到MATLAB。這裡也部分參考了http://www.ilovematlab.cn/thread-505864-1-1.html,同時非常感謝貼主inumo。
1、硬體準備:手機(本文示例iphone7plus),電腦,且在同一區域網中;
2、軟體準備:ios手機安裝MATLABmobile(以下簡稱mobile);
PC安裝MATLAB(R2014a以上版本,以下簡稱MATLAB),且需安裝MATLAB Support Package for Android Sensors in MATLAB/MATLAB Support Package for Apple iOS Sensors in MATLAB,直接在MATLAB的help文檔可以搜索下載。
3、具體步驟:
① 在MATLAB中建立與mobile連接,MATLAB命令行輸入connector on,首次建立聯繫需要輸入密碼。
MATLAB輸入輸出如下:
>> connector on 123456
DNS name: SMD-1688
IP address: 192.125.107.68
Use this link to test the MATLAB Connector:
http://SMD-1688:31414/
If the test is successful, but MATLAB Mobile cannot connect,
your computer might have multiple IP addresses. To determine
the correct one, see Determining the DNS Name or IP Address of a Computer.
DNS name為主機名,IPaddress為IP地址,但連接時應使用區域網中地址,如192.168.1.xxx,埠號默認為31415,但是也可能為其他的數字。
②打開Mobile,點擊右下側的More,在點擊選擇setting,,然後點擊Add a computer如圖1和圖2
輸入IP地址(電腦的區域網地址)及密碼,埠,DNS ,然後點擊Connect連接至電腦。如圖3示
③連接成功後,在MATLAB中創建一個mobiledev對象,MATLAB命令行輸入m=mobiledev後,命令窗口顯示:
>> m=mobiledev
m =
mobiledev with properties:
Connected: 1
Logging: 0
InitialTimestamp: ""
AccelerationSensorEnabled: 1
AngularVelocitySensorEnabled: 0
MagneticSensorEnabled: 0
OrientationSensorEnabled: 0
PositionSensorEnabled: 0
Supported functions
其中 Connectd 只讀,表示連接狀態,1 連接,0未連接;InitialTimestamp只讀,表示採集數據的起始時間信息,為空字元串時候表示採集還沒開始。
AccelerationSensorEnabled: 加速度感測器 1:表示採集 0:表示不採集
AngularVelocitySensorEnabled: 陀螺儀 1:表示採集 0:表示不採集
MagneticSensorEnabled: 磁力計 1:表示採集 0:表示不採集
OrientationSensorEnabled: 方向感測器 1:表示採集 0:表示不採集
PositionSensorEnabled: GPS 1:表示採集 0:表示不採集
還有一個非常重要的參數,就是採集信號的採樣率m.SampleRate,默認是10Hz,最高值為100Hz,可以設置的範圍為0-100Hz。
④開始/結束數據採集及感測器數值獲取。
控制採集過程的方法有兩種,分布在pc端和mobile端:
●pc MATLAB:m.Logging = 1,開始採集,m.Logging = 0 結束採集,這裡也為編程實現自動控制提供了便捷;
●mobile MATLAB:點擊Start Sending開始採集,點擊Stop Sending結束採集。
獲取當前加速度感測器數值,可在命令行輸入m. Acceleration來獲得,其他感測器如AngularVelocity、Orientation、MagneticField等類似。
具體可用properties(m)查看mobiledev的所有屬性,或查看幫助文檔中的介紹。圖4中給出連接時mobile 端感測器的選項圖,點亮的圖標為選中採集感測器數據,否則不採集對應感測器的數據。
TAG:matlab的旋律 |