matlab 讀取串口傳感器數(shù)據(jù)
2022/12/10??????點(diǎn)擊:
讀取數(shù)據(jù)后,解析到相應(yīng)的蘇話(huà)劇格式用到的函數(shù):
serialport 作用:連接到串行端口
使用方法:參考鏈接 https://ww2.mathworks.cn/help/matlab/ref/serialport.htmlreadline 作用:從串行端口讀取 ASCII 字符串?dāng)?shù)據(jù)行
使用方法:參考鏈接 https://ww2.mathworks.cn/help/matlab/ref/serialport.readline.html?s_tid=doc_ta
strsplit 作用:在指定分隔符處拆分字符串或字符向量
使用方法: 參考鏈接 https://ww2.mathworks.cn/help/matlab/ref/strsplit.html?searchHighlight=strsplit&s_tid=srchtitle_strsplit_1
str2double 作用:將字符串轉(zhuǎn)換為雙精度值
使用方法: 參考鏈接 https://ww2.mathworks.cn/help/matlab/ref/str2double.html?s_tid=doc_ta
范例代碼:
% ======注意:本程序需要在arduino端代碼使用Serial.print(),并以逗號(hào)分隔========
% ======例如,arduino端將x,y兩個(gè)數(shù)據(jù)傳輸?shù)紺OM3口,arduino端代碼為
% ============Serial.print(x);Serial.print(",");
% ============Serial.print(y);
% ============Serial.print("\n");
clear;clc;clf
% 自定義參數(shù)
N=3000; % 總數(shù)據(jù)量長(zhǎng)度
n1=100; % *近數(shù)據(jù)量長(zhǎng)度
% 讀取串口字符串,并轉(zhuǎn)化為數(shù)據(jù)
arduinoObj=serialport("COM3",9600); % 串口通信COM3,波率9600(可根據(jù)實(shí)際情況修改)
data = readline(arduinoObj); % 讀取 ASCII 字符串?dāng)?shù)據(jù)行
n=length(strsplit(data,',')); % 在逗號(hào)分隔符處拆分字符串,并得到拆分后的長(zhǎng)度
% 初始化用來(lái)存儲(chǔ)數(shù)據(jù)的矩陣
B=zeros(N,n,'double'); % 初始化矩陣B,用來(lái)存儲(chǔ)總數(shù)據(jù)。
A=zeros(n1,n,'double'); % 初始化矩陣A,用來(lái)存放*近100組數(shù)據(jù)
t=zeros(n1,1,'double'); % 初始化數(shù)組t,用來(lái)存放*近的100個(gè)時(shí)間數(shù)
% 更新畫(huà)圖
for kk=1:N % 總共存N行數(shù)據(jù)
str = readline(arduinoObj); % 從串口讀取字符串
data=str2double(strsplit(str,',')); % 在逗號(hào)分隔符處拆分字符串,并將除逗號(hào)外的字符串轉(zhuǎn)化為double數(shù)據(jù)
B(kk,:)=data; % 把所有數(shù)據(jù)存儲(chǔ)到B矩陣
figure(n+1)
plot(1:kk,B(1:kk,2)); % 畫(huà)出B的第二列數(shù)據(jù)(可根據(jù)實(shí)際情況修改)
% 如果需要畫(huà)*新的n個(gè)數(shù)據(jù),則啟用以下代碼,否則可注釋掉
% A=circshift(A,-1); % 把A矩陣向下循環(huán)平移
% A(end,:)=data; % 把A矩陣*后行數(shù)替換為data。以上兩行的作用是應(yīng)A矩陣的數(shù)據(jù)為*新的100組數(shù)據(jù)
% t=circshift(t,-1);
% t(end)=kk;
% for ii=n:-1:1
% figure(ii)
% plot(t,A(:,ii));
% end
end
delete(arduinoObj); % 刪除端口,以便能在arduino中修改
- 上一篇:三維環(huán)境下的左手和右手坐標(biāo)系相互轉(zhuǎn)換方法 2023/2/7
- 下一篇:Csv文件操作(創(chuàng)建、讀取、寫(xiě)入、修改) 2022/9/11
