Arduino 采集雷達模塊數(shù)據(jù)與串口繪圖


**當采用串口輸出模式時,雷達檢測到運動時,則輸出 **v=0.0km/h, str=1234 字樣;
v 表示目標速度大小,str 表示信號強度;
當雷達檢測不到目標時,串口停止輸出。

項目實現(xiàn)
**Arduino 串口采集雷達模塊數(shù)據(jù),并通過串口打印至接收窗口,繪制 **速度演化曲線 和 信號強度演化曲線 。
原始代碼
void setup()
{
Serial.begin (115200);
while (Serial.read() >= 0){}//clear serialbuffer
}
?
String comdata = "";
?
void loop() {
if (Serial.available() > 0)
{
char data = Serial.read();
comdata += data;
if (data == 'n')
{
Serial.println (comdata);
comdata = "";
}
}
}
串口打印

注意到串口打印出的字符串既包含文字也包含數(shù)字,若要實現(xiàn)串口繪圖,則需將其中的數(shù)字部分提取出來。
代碼升級
String comdata = "";
void setup()
{
Serial.begin (115200);
while (Serial.read() >= 0){}//clear serialbuffer
}
?
void loop() {
if (Serial.available() > 0)
{
char data = Serial.read();
comdata += data;
if (data == 'n')
{
// 分割字符串
int separatorIndex = comdata.indexOf(','); // 假設分隔符為逗號
if (separatorIndex != -1)
{
String part1 = comdata.substring(0, separatorIndex); // 第一個部分
String part2 = comdata.substring(separatorIndex + 1); // 第二個部分
// 打印分割后的數(shù)據(jù)
Serial.println(part1);
Serial.println(part2);
}
comdata = "";
}
}
}
效果

數(shù)字提取
**同理,對 **part1 和 part2 進行分離提取索引數(shù)字
String comdata = "";
void setup()
{
Serial.begin (115200);
while (Serial.read() >= 0){}//clear serialbuffer
}
?
void loop() {
if (Serial.available() > 0)
{
char data = Serial.read();
comdata += data;
if (data == 'n')
{// type of comdata: v=1.0 km/h, str=10151
int separatorIndex = comdata.indexOf(','); // 假設分隔符為逗號
if (separatorIndex != -1)
{
String part1 = comdata.substring(0, separatorIndex); // 第一個部分
String part2 = comdata.substring(separatorIndex + 1); // 第二個部分
// 打印分割后的數(shù)據(jù)
//Serial.println(part1); // type of part1: v=1.0 km/h
//Serial.println(part2); // type of part2: str=10151
/*------------ part1 : v=1.0 km/h ----------*/
int part1separatorIndex = part1.indexOf('='); //index of '='
if (part1separatorIndex != -1)
{
String vlc = part1.substring(part1separatorIndex + 1); // index of velocity, type of vlc is 1.0 km/h
// vlc: 1.0 km/h
int VLCseparatorIndex = vlc.indexOf(' '); // index of ' '
String v = vlc.substring(0, VLCseparatorIndex);// v only include number
float Vn = v.toFloat();
Serial.print(Vn); // print velocity number
Serial.print(',');
}
/*------------- part2 : str=10151 ------------------*/
int part2separatorIndex = part2.indexOf('='); //index of '='
if (part2separatorIndex != -1)
{
String strng = part2.substring(part2separatorIndex + 1); // strng only include number
int Sn = strng.toInt();
Serial.print(Sn); // print strength number
}
Serial.println();
}
comdata = "";
}
}
}
流程圖

串口打印數(shù)字

串口繪圖

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
雷達
+關注
關注
51文章
3234瀏覽量
122501 -
串口
+關注
關注
15文章
1603瀏覽量
81680 -
Arduino
+關注
關注
190文章
6512瀏覽量
195502
發(fā)布評論請先 登錄
相關推薦
熱點推薦
TF系列激光雷達在Arduino上的開發(fā)例程
TF01、TF mini、TF20等)同樣適用,如果通信協(xié)議有改動,請參考程序?qū)龀鲂薷募纯?。最終結(jié)果,用Arduino將雷達發(fā)送的數(shù)據(jù)按對應協(xié)議正確解析,并發(fā)送到PC端,通過IDE上的串口
發(fā)表于 11-22 11:12
matlab串口讀取arduino數(shù)據(jù)
我想用matlab讀arduino uno 串口的數(shù)據(jù),是arduino uno上的電壓值,arduino uno 的波特率是115200,
發(fā)表于 12-04 06:57
做一個matlab接收串口數(shù)據(jù)繪圖的項目
MATLAB串口接收數(shù)據(jù)+動態(tài)繪圖最近在做一個matlab接收串口數(shù)據(jù)繪圖的項目,順便測試了一下
發(fā)表于 01-11 06:13
matlab串口數(shù)據(jù)采集
本文主要介紹了matlab串口數(shù)據(jù)采集,matlab功能強大,串口操作也很簡單,通過以下幾個實例你就能掌握串口數(shù)據(jù)采集是怎么
發(fā)表于 01-15 10:23
?2.5w次閱讀
使用Python進行Arduino實時繪圖
電子發(fā)燒友網(wǎng)站提供《使用Python進行Arduino實時繪圖.zip》資料免費下載
發(fā)表于 11-08 11:59
?1次下載
PENXZYL Arduino畫筆繪圖儀開源
電子發(fā)燒友網(wǎng)站提供《PENXZYL Arduino畫筆繪圖儀開源.zip》資料免費下載
發(fā)表于 11-10 11:47
?1次下載
制作Arduino XY繪圖儀繪圖機器人極譜儀
電子發(fā)燒友網(wǎng)站提供《制作Arduino XY繪圖儀繪圖機器人極譜儀.zip》資料免費下載
發(fā)表于 11-29 14:46
?4次下載
Arduino串口數(shù)據(jù)采集
電子發(fā)燒友網(wǎng)站提供《Arduino串口數(shù)據(jù)采集.zip》資料免費下載
發(fā)表于 01-04 09:44
?0次下載
基于Arduino的串口通信項目
、Arduino Mega等。 USB數(shù)據(jù)線 :用于將Arduino開發(fā)板連接到計算機。 串口設備 :可以是另一個Arduino開發(fā)板、傳感

Arduino采集雷達模塊數(shù)據(jù)與串口繪圖
評論