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


**當(dāng)采用串口輸出模式時(shí),雷達(dá)檢測到運(yùn)動(dòng)時(shí),則輸出 **v=0.0km/h, str=1234 字樣;
v 表示目標(biāo)速度大小,str 表示信號強(qiáng)度;
當(dāng)雷達(dá)檢測不到目標(biāo)時(shí),串口停止輸出。

項(xiàng)目實(shí)現(xiàn)
**Arduino 串口采集雷達(dá)模塊數(shù)據(jù),并通過串口打印至接收窗口,繪制 **速度演化曲線 和 信號強(qiáng)度演化曲線 。
原始代碼
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ù)字,若要實(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(','); // 假設(shè)分隔符為逗號
if (separatorIndex != -1)
{
String part1 = comdata.substring(0, separatorIndex); // 第一個(gè)部分
String part2 = comdata.substring(separatorIndex + 1); // 第二個(gè)部分
// 打印分割后的數(shù)據(jù)
Serial.println(part1);
Serial.println(part2);
}
comdata = "";
}
}
}
效果

數(shù)字提取
**同理,對 **part1 和 part2 進(jì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')
{// type of comdata: v=1.0 km/h, str=10151
int separatorIndex = comdata.indexOf(','); // 假設(shè)分隔符為逗號
if (separatorIndex != -1)
{
String part1 = comdata.substring(0, separatorIndex); // 第一個(gè)部分
String part2 = comdata.substring(separatorIndex + 1); // 第二個(gè)部分
// 打印分割后的數(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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
-
雷達(dá)
+關(guān)注
關(guān)注
52文章
3328瀏覽量
123935 -
串口
+關(guān)注
關(guān)注
15文章
1619瀏覽量
82865 -
Arduino
+關(guān)注
關(guān)注
190文章
6526瀏覽量
196965
發(fā)布評論請先 登錄
相關(guān)推薦
熱點(diǎn)推薦
TF系列激光雷達(dá)在Arduino上的開發(fā)例程
TF01、TF mini、TF20等)同樣適用,如果通信協(xié)議有改動(dòng),請參考程序?qū)?yīng)做出修改即可。最終結(jié)果,用Arduino將雷達(dá)發(fā)送的數(shù)據(jù)按對應(yīng)協(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
做一個(gè)matlab接收串口數(shù)據(jù)繪圖的項(xiàng)目
MATLAB串口接收數(shù)據(jù)+動(dòng)態(tài)繪圖最近在做一個(gè)matlab接收串口數(shù)據(jù)繪圖的項(xiàng)目,順便測試了一下
發(fā)表于 01-11 06:13
基于FPGA的某型雷達(dá)視頻采集預(yù)處理模塊設(shè)計(jì)
基于FPGA的某型雷達(dá)視頻采集預(yù)處理模塊設(shè)計(jì)
發(fā)表于 08-30 15:10
?34次下載
matlab串口數(shù)據(jù)采集
本文主要介紹了matlab串口數(shù)據(jù)采集,matlab功能強(qiáng)大,串口操作也很簡單,通過以下幾個(gè)實(shí)例你就能掌握串口數(shù)據(jù)采集是怎么
發(fā)表于 01-15 10:23
?2.5w次閱讀
arduino實(shí)時(shí)繪圖軟件
電子發(fā)燒友網(wǎng)站提供《arduino實(shí)時(shí)繪圖軟件.zip》資料免費(fèi)下載
發(fā)表于 11-07 15:27
?2次下載
使用Python進(jìn)行Arduino實(shí)時(shí)繪圖
電子發(fā)燒友網(wǎng)站提供《使用Python進(jìn)行Arduino實(shí)時(shí)繪圖.zip》資料免費(fèi)下載
發(fā)表于 11-08 11:59
?1次下載
PENXZYL Arduino畫筆繪圖儀開源
電子發(fā)燒友網(wǎng)站提供《PENXZYL Arduino畫筆繪圖儀開源.zip》資料免費(fèi)下載
發(fā)表于 11-10 11:47
?1次下載
制作Arduino XY繪圖儀繪圖機(jī)器人極譜儀
電子發(fā)燒友網(wǎng)站提供《制作Arduino XY繪圖儀繪圖機(jī)器人極譜儀.zip》資料免費(fèi)下載
發(fā)表于 11-29 14:46
?4次下載
Arduino串口數(shù)據(jù)采集
電子發(fā)燒友網(wǎng)站提供《Arduino串口數(shù)據(jù)采集.zip》資料免費(fèi)下載
發(fā)表于 01-04 09:44
?0次下載
Arduino繪圖機(jī)器人開源分享
電子發(fā)燒友網(wǎng)站提供《Arduino繪圖機(jī)器人開源分享.zip》資料免費(fèi)下載
發(fā)表于 06-25 16:24
?3次下載
基于Arduino的串口通信項(xiàng)目
、Arduino Mega等。 USB數(shù)據(jù)線 :用于將Arduino開發(fā)板連接到計(jì)算機(jī)。 串口設(shè)備 :可以是另一個(gè)Arduino開發(fā)板、傳感
Arduino采集雷達(dá)模塊數(shù)據(jù)與串口繪圖
評論