Android sensor資料通過matlab實時顯示波形圖
前兩年在我們平臺上除錯VR Sensor時候,做的一個輔助工具,在此做個記錄。
當時有客戶會報一些VR app中sensor存在異常的問題,但若是更換其它的VR app又沒有類似問題。
如何確認是否我們sensor存在問題呢?如果只是把sensor資料打印出來看,很難看出問題來。
為此,我用matlab寫了段簡單的程式碼,把樣機上的sensor資料打印出來送給matlab實時顯示,效果還可以,如下圖所示:
原始碼在此:
clc
clear
% 只顯示10秒資料
xrange=[-9 1];
%yrange=[-20 +20];
yrange=[-1 +1];
data_rate_hz=16
disp_rate_hz=10
step=1/data_rate_hz
% 顯示資料間隔
disp_interval=data_rate_hz/disp_rate_hz
% 只緩衝30秒的資料,過多的緩衝資料會導致系統無法及時處理資料,導致響應慢。
data_cache = 30*data_rate_hz;
in_file = '/tmp/matlab_pipe'
% 建立PIPE, 其它程序可通過該管道把資料傳送進來
!rm -rf /tmp/matlab_pipe
!mknod /tmp/matlab_pipe p
!adb shell logcat -c; adb shell logcat -s MPL | grep "BIAS:" > /tmp/matlab_pipe &
t=[0]
m=[0; 0; 0]
p = plot(t,m,...
'EraseMode','background','MarkerSize',5);
axis([xrange(1) xrange(2) yrange(1) yrange(2)]);
grid on;
i=0;
try
fd = fopen(in_file);
while(true)
%tic
%toc
i = i+1;
s = fgetl(fd);
if (strncmp(s, 'D/MPL' , 5) == false)
fprintf('-- skip: %s\n\n', s)
continue;
end
%disp(s);
S = regexp(s, '\s+', 'split');
x = str2double(char(S(4)));
y = str2double(char(S(5)));
z = str2double(char(S(6)));
%fprintf('%+f %+f %+f %s\n', x, y, z, char(S(9)));
t(end+1)=step*i;
m(:,end+1)=[x; y; z];
if (mod(i, data_cache) == 0)
t = [];
m = [];
end
t(end+1)=step*i;
m(:,end+1)=[x; y; z];
if (mod(i, disp_interval) == 0)
%t=[t step*i];
%m=[m [x; y; z]];
%t(end+1)=step*i;
%m(:,end+1)=[x; y; z];
set(p(1),'XData',t,'YData',m(1,:))
set(p(2),'XData',t,'YData',m(2,:))
set(p(3),'XData',t,'YData',m(3,:))
%drawnow
xrange(1)=xrange(1)+step*disp_interval;
xrange(2)=xrange(2)+step*disp_interval;
%{
if (x<yrange(1))
yrange(1) = x+1;
end
if (y<yrange(1))
yrange(1) = y+1;
end
if (z<yrange(1))
yrange(1) = z+1;
end
if (x>yrange(2))
yrange(2) = x+1;
end
if (y>yrange(2))
yrange(2) = y+1;
end
if (z>yrange(2))
yrange(2) = z+1;
end
%}
axis([xrange(1) xrange(2) yrange(1) yrange(2)]);
drawnow
%pause(0.1);
end
end
fclose(fd);
catch err
disp('Exit Sensor Monitor');
fclose(fd);
!rm -rf /tmp/matlab_pipe
!adb shell busybox pkill logcat
end
相關推薦
Android sensor資料通過matlab實時顯示波形圖
前兩年在我們平臺上除錯VR Sensor時候,做的一個輔助工具,在此做個記錄。 當時有客戶會報一些VR app中sensor存在異常的問題,但若是更換其它的VR app又沒有類似問題。 如何確認是否我們sensor存在問題呢?如果只是把sensor資料打印出
MATLAB利用串列埠接收資料,並實時顯示圖形
matlab讀取串列埠資源總結:一、matlab讀取串列埠資料,並顯示實時圖形:點選這裡開啟二、使用matlab進行串列埠除錯的2中方法:點這裡開啟三、matlab讀取微控制器串列埠資料並顯示出來(m語
關於使用CCSV5利用斷點匯入外部資料在Graph中顯示波形的實踐
關於使用CCSV5利用斷點匯入外部資料在Graph中顯示波形的實踐 關於**.dat**檔案的介紹 關於DSP中定點浮點數的表示與轉換 關於補碼的計算 .dat檔案不是一種標準的檔案格式,許多軟體都在使用這個副檔名,但是各個軟體對.dat檔案的定
Js動態追加行,並將內容儲存到資料庫,並取出資料通過js動態顯示
實現步驟講解: 首先需要在html頁面建立一個table表格和一個動態新增行的按鈕 <input type="button" onclick="addT()" value="新增" /> 然後實現表格中追加行的js方法 //新增動態行(可在實現的列中新增相應的滑鼠事
android執行緒實現:實時顯示所連線的wifi訊號強度(程式碼帶註釋)
首先:AndroidManifest.xml檔案中加一行:獲取許可權 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> layout.xml檔案中的程式碼: <Li
獲取伺服器資料通過Gson解析顯示Listview上
之前寫了一篇博文是獲取伺服器資料並解析顯示到listview上,上次使用的解析是通過jsonarray和jsonobject完成,解析json的資料還是可以,但是發現解析複雜點的資料真的很麻煩,然後查了一下Gson的解析方式寫了一個demo,發現省事了許多.上程式碼: 效果
把資料通過串列埠或USB以1秒間隔實時發給另外一臺計算機,在另外一臺計算機上以同樣方式顯示條形圖或趨勢曲線。
前面兩篇文章已經講過了隨機資料產生,繪製直方圖,趨勢圖,資料儲存,串列埠傳送。接下來則是串列埠接收部分的程式。 注意:如果在一臺電腦上進行除錯,需要用虛擬串列埠軟體把串列埠1,2連結起來。 // 作業Dlg.cpp : 實現檔案 // #includ
三軸力感測器資料在MATLAB中實時顯示
演示視訊: 使用了嵌入式PAL Board作為資料採集裝置,搭載ADI公司的ADXL345三軸力感測器。使用串列埠RS232傳輸資料到MATLAB,MATLAB建立串列埠物件,每上來一組資料就呼叫一次回撥函式。回撥函式實現繪圖的功能。Enjoy! Display th
Android攝像頭採集的視訊資料流如何通過Socket實時傳送到目標服務端
分兩塊: 1.取得攝像頭採集的視訊流 2.傳送到伺服器端 protected MediaRecorder mMediaRecorder; private LocalServerSocket mLss = null; private LocalSock
基於matlab的音訊波形實時採集顯示 v0.1
robj = audiorecorder(44100,16,1); %設定取樣頻率、取樣位數、通道數 recordblocking(robj,1); %採集初步資料(1s長度) rdata = getaudiodata(robj); %
《gnuplot》Java計算出三角函式的資料並通過gnuplot作出波形圖
一、用Java計算資料 使用Java程式計算出sin、cos、tan三個三角函式在-360° ~ 360°角度範圍內每一度所對應的數值。 程式中需要用到的Java中Math類方法簡介: 方法 功能
關於arduino通過串列埠傳送到processing的資料混亂(錯誤\顯示不正確)的問題解答
最近的教學中,已經開始使用processing和arduino進行串列埠通訊的互動,使用中發現有的同學遇到了arduino傳送給processing的資料存在顯示不正確,甚至混亂的現象。這裡給予統一解釋。 arduino程式碼完成的工作是將模擬訊號口讀入模擬資料,然後經過map對映為0到
MAC Android Studio用android手機進行除錯並實時同步在電腦上顯示(錄屏gif體積小清晰)
第一步:Mac電腦使用Android Studio進行真機除錯 第二步:Vysor:一款連線Android裝置和Chrome的神奇工具! 第三步:翻牆(藍燈)下載Vysor chrome外掛 第四步:Vysor chrome外掛破解 1.9.3 (Mac) 破解可以顯示更高清的
通過Matlab 使用 FFT 分析週期性資料
傅立葉變換可以用來分析資料中的變化 前言:天文學家使用蘇黎世太陽黑子相對數將幾乎 300 年的太陽黑子的數量和大小製成表格。對大約 1700 至 2000 年間的蘇黎世數繪圖。 load sunspot.dat year = sunspot(:,1); relNums =
四軸飛行器1.4 姿態解算和Matlab實時姿態顯示
MPU6050資料讀取出來後,經過一個星期的努力,姿態解算和在matlab上的實時顯示姿態終於完成了。 1:完成matlab的串列埠,並且實時通過波形顯示資料 2:新增RTT檢視CPU使用率的擴充套件功能,MPU6050讀取資料的優化 3:四元素表示的座標變
Android(或者Java)通過HttpUrlConnection向SpringMVC請求資料(資料繫結)
問題描述 當我們使用SpringMVC作為服務端的框架時,有時不僅僅要應對web前端(jsp、javascript、Jquery等)的訪問請求,有時還可能需要響應Android和JavaSE(桌面應用)這些客戶端的請求,因此,除了web使用form表單
Android開發,GPS獲取實時時間並轉為北京時間,定位資訊,海拔高度,並進行顯示
在轉載的基礎上增加一些內容,主要是時間的轉換所以這裡直接先把重點列出來: (GPS時間轉為本地時間): @SuppressLint("SimpleDateFormat") private static String getGpsLoaalTime(long gpsTim
Android客戶端通過TCP接收伺服器端傳送的資料
引言 因為我確實不懂TCP通訊這一塊兒,最近專案中要實現客戶端接收伺服器端傳送過來的資料(這個資料是int型的,範圍是0~360,而且伺服器端用C語言寫的,每一秒傳送一次,客戶端只需要不斷接收就好了),很開心的用BufferedReader讀取資料,結果發現一直讀取不到資
matlab中資料型別及影象顯示
1、uint8與double double函式只是將讀入影象的uint8資料轉換為double型別,一般不使用;常用的是im2double函式,將 uint8影象轉為double型別,範圍為0-1,如果是255的影象,那麼255轉為1,0還是0,中間的做相應改變
Android 實現資料的列表顯示
介面操作: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="