0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Arduino采集雷达模块数据与串口绘图

单片机/嵌入式开发 来源:单片机/嵌入式开发 作者:单片机/嵌入式开发 2024-12-14 11:44 次阅读

Arduino 采集雷达模块数据与串口绘图

top.jpg

bottom.jpg

**当采用串口输出模式时,雷达检测到运动时,则输出 **v=0.0km/h, str=1234 字样;

v 表示目标速度大小,str 表示信号强度;

当雷达检测不到目标时,串口停止输出。

UART_print.png

项目实现

**Arduino 串口采集雷达模块数据,并通过串口打印至接收窗口,绘制 **速度演化曲线信号强度演化曲线

原始代码

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 = "";
    }
  }
}

串口打印

Arduino_Print.png

注意到串口打印出的字符串既包含文字也包含数字,若要实现串口绘图,则需将其中的数字部分提取出来。

代码升级

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); // 第二个部分
        // 打印分割后的数据
        Serial.println(part1);
        Serial.println(part2);
      }
      comdata = "";
    }
  }
}

效果

UART_update.png

数字提取

**同理,对 **part1part2 进行分离提取索引数字

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); // 第二个部分
        // 打印分割后的数据
        //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 = "";
    }
  }
}

流程图

UART_plot_flowchart.jpg

串口打印数字

UART_num.png

串口绘图

UART_plot_board.png

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 雷达
    +关注

    关注

    50

    文章

    2926

    浏览量

    117454
  • 串口
    +关注

    关注

    14

    文章

    1550

    浏览量

    76398
  • Arduino
    +关注

    关注

    188

    文章

    6468

    浏览量

    186901
收藏 人收藏

    评论

    相关推荐

    TF系列激光雷达Arduino上的开发例程

    TF01、TF mini、TF20等)同样适用,如果通信协议有改动,请参考程序对应做出修改即可。最终结果,用Arduino雷达发送的数据按对应协议正确解析,并发送到PC端,通过IDE上的串口
    发表于 11-22 11:12

    matlab串口读取arduino数据

    我想用matlab读arduino uno 串口数据,是arduino uno上的电压值,arduino uno 的波特率是115200,
    发表于 12-04 06:57

    串口数据绘图软件

    电子发烧友网站提供《串口数据绘图软件.exe》资料免费下载
    发表于 08-21 14:10 19次下载

    基于FPGA的某型雷达视频采集预处理模块设计

    基于FPGA的某型雷达视频采集预处理模块设计
    发表于 08-30 15:10 34次下载

    串口绘图小软件SerialChart

    串口绘图小软件
    发表于 02-15 22:23 17次下载

    matlab串口数据采集

    本文主要介绍了matlab串口数据采集,matlab功能强大,串口操作也很简单,通过以下几个实例你就能掌握串口数据采集是怎么
    发表于 01-15 10:23 2.5w次阅读
    matlab<b class='flag-5'>串口</b><b class='flag-5'>数据采集</b>

    基于FPGA的某型雷达视频采集预处理模块设计

    和定位等预处理操作,得到动目标在图像中的相对坐标,采用串口设备与上位机进行通信,将所得数据送往上位机。实验结果表明,该采集预处理模块结构简单、运行稳定、
    发表于 02-01 16:11 14次下载
    基于FPGA的某型<b class='flag-5'>雷达</b>视频<b class='flag-5'>采集</b>预处理<b class='flag-5'>模块</b>设计

    arduino实时绘图软件

    电子发烧友网站提供《arduino实时绘图软件.zip》资料免费下载
    发表于 11-07 15:27 2次下载
    <b class='flag-5'>arduino</b>实时<b class='flag-5'>绘图</b>软件

    使用Python进行Arduino实时绘图

    电子发烧友网站提供《使用Python进行Arduino实时绘图.zip》资料免费下载
    发表于 11-08 11:59 1次下载
    使用Python进行<b class='flag-5'>Arduino</b>实时<b class='flag-5'>绘图</b>

    PENXZYL Arduino画笔绘图仪开源

    电子发烧友网站提供《PENXZYL Arduino画笔绘图仪开源.zip》资料免费下载
    发表于 11-10 11:47 1次下载
    PENXZYL <b class='flag-5'>Arduino</b>画笔<b class='flag-5'>绘图</b>仪开源

    制作Arduino XY绘图绘图机器人极谱仪

    电子发烧友网站提供《制作Arduino XY绘图绘图机器人极谱仪.zip》资料免费下载
    发表于 11-29 14:46 4次下载
    制作<b class='flag-5'>Arduino</b> XY<b class='flag-5'>绘图</b>仪<b class='flag-5'>绘图</b>机器人极谱仪

    Arduino串口数据采集

    电子发烧友网站提供《Arduino串口数据采集.zip》资料免费下载
    发表于 01-04 09:44 0次下载
    <b class='flag-5'>Arduino</b><b class='flag-5'>串口</b><b class='flag-5'>数据采集</b>

    Arduino绘图机器人开源分享

    电子发烧友网站提供《Arduino绘图机器人开源分享.zip》资料免费下载
    发表于 06-25 16:24 2次下载
    <b class='flag-5'>Arduino</b><b class='flag-5'>绘图</b>机器人开源分享

    基于Arduino串口通信项目

    Arduino Mega等。 USB数据线 :用于将Arduino开发板连接到计算机。 串口设备 :可以是另一个Arduino开发板、传感
    的头像 发表于 11-22 09:24 438次阅读

    OLED 显示雷达数据

    使用萤火工场CEM5826-M11雷达模块Arduino IDE 编译代码,OLED显示雷达数据
    的头像 发表于 12-10 13:38 98次阅读
    OLED 显示<b class='flag-5'>雷达</b><b class='flag-5'>数据</b>