我們生活中經常會問遇到手機拍照記憶體不夠該怎麼辦?朋友圈經常看到各種運動軌跡 APP記錄的跑步路線圖,我們感到好玩,但是我們不禁還想問如何實現的呢?其實這都和手機中的感測器有關。手機是一個高度整合的電子產品,除了能通訊外,他還集中了很多的感測器,包括加速度、角速度、磁場、方向、位置。那麼上面有關拍照上傳或者讀取感測器資料的問題都可以用matlab 軟體實現,以下講進行講解。
一、硬體準備:智慧手機一部、電腦一臺;
二、軟體準備:安卓/iso手機安裝Matlab mobile;
電腦安裝matlab版本需要在R2014以上版本,且需要安裝MATLAB Support Package for Android Sensors in MATLAB/MATLAB Support Package for Apple iOS Sensors in MATLAB、matlab driver connector和相應的mapping tool box
手機資料到電腦的原理圖如下圖,這裡需要注意的是在移動端和PC端的matlab軟體需要使用同一賬戶登入。
1、手機安裝Matlab mobile
警告需要許可證編號升級,否則無法使用,可以透過進入官網獲取一個月試用許可權。選擇流式傳輸至Matlab。
使用自己的郵箱賬號進行註冊和登記(手機版登陸的matlab賬號)
在手機上開啟matlab mobile 可以正常使用,開啟感測器,可以看到感測器記錄的息。如上圖所示。
2、電腦Matlab drive connector等軟體安裝
Matlab大家都比較熟悉了,這裡就不再介紹。從網上下載,如下圖安裝Matlab drive connector,手機上的matlab mobile記錄資料資訊後,會發送到雲端,電腦上的matlab可以透過Matlab Drive Connector在雲端接收到這些資訊,然後對資料進行處理。
3、Matlab Mobile 記錄資料
如下圖箭頭所示進如軟體,選擇感測器都為啟動狀態,並且在“更多”選項中開啟攝像頭。
點開箭頭所示位置進入命令列介面
輸入
clear;
m=mobiledev;
如下圖,點選開始,手機進行記錄資料資料。然後就可以拿著手機沿著待測量的路徑行走。
資料記錄結束後,點選停止,結束記錄資料
如上圖右圖 手機軟體中輸入命令:
[lat, lon, t, spd] = poslog(m);
posdata.lat = lat;
posdata.lon = lon;
posdata.t = t;
posdata.spd = spd;
save('posdata.mat','posdata');
4、電腦 Matlab 進行資料處理和顯示
之後進入matlab 跳轉到Drive connector資料夾中可以看到儲存的mat檔案
開啟matlab ,跳轉到Drive connector資料夾中執行,以下程式碼,結果如下圖
load('posdata.mat');
lat=posdata.lat;
lon=posdata.lon;
spd=posdata.spd;
t=posdata.t;
t=t-t(1);
wm=webmap('World Street Map');
s=geoshape(lat,lon);
wmline(s,'color','red','width',3);
5、同理拍照
根據以上介紹,解決拍照空間不足的問題,我們可以解決。只需要在上面介紹的3、Matlab Mobile 記錄資料中儲存感測器程式碼換為如下即可。
clear;
close all;
clc;
%相機資料採集
m=mobiledev;
c=camera(m,'back')
while 1
img=snapshot(c,'immediate');%開啟後置攝像頭
img=imresize(img,[227,227]);%影象resize
pause(0.2)
try
imwrite(img,'get.jpg');%儲存
end
end
執行結束後我們可以在Drive connector資料夾中可以看到儲存的相機get檔案,這樣我們就可以不佔用手機記憶體,把相片傳送到matlab雲端,進而轉移到我們的電腦裡。