芯查查logo
  • 数据服务
    1. 新产品
    2. 物料选型
    3. 查替代
    4. 丝印反查
    5. 查品牌
    6. PCN/PDN
    7. 查方案
    8. 查代理
    9. 数据合作
  • SaaS/方案
      SaaS产品
    1. 供应链波动监控
    2. 半导体产业链地图
    3. BOM管理
    4. 解决方案
    5. 汽车电子
    6. 政府机构
    7. 数据API
  • 商城
  • 行业资讯
    1. 资讯
    2. 直播
  • 论坛社区
    1. 论坛
    2. 学习
    3. 测评中心
    4. 活动中心
    5. 积分商城
  • 查一下
  • 开通会员
单片机2
创作者认证
精华 简单的超声波雷达

一、引言

  在军用、民用领域中的许多设备,如无人机、汽车、机器人等通常会出现雷达的身影,但是一般使用的都是毫米波雷达、亚米波雷达、激光雷达等,这些雷达一般结构复杂或驱动难度大,对于新手来说一般使用难度大、不方便开发导致新手失去信心,这时候就需要一款简单易使用和开发的雷达了,就比如超声波雷达。超声波雷达是指通过超声波(即一种听不见频率高的声波)来实现探测物体的雷达。

二、所需材料

1、超声波模块

  它是整个设计的重要组成部分,它的作用是测量周围物体的距离。我这里使用的是5针的HY-SRF05超声波模块,它和4针的HY-SRF04驱动方法相同,当然也可以用别的。这个传感器接收到主控板的信号就会,发射超声波(即一种听不见频率高的声波),然后等待超声波返回来接收到后返回给主控板信号,这样主控板就能计算中间的时间差来计算距离了。

2、舵机(伺服电机)

  它是用来旋转超声波传感器的,这样就可以测不同方位物体的距离了。我这里用的是SG90舵机的旋转范围180°版本,它可以通过脉冲信号进行控制,具体控制方法我就不多说了,一般都有现成的库了。

3、显示屏

  它是用来显示超声波雷达所获取的信息的,这样就可以方便地看到周围的物体了。我这里使用的是ST7735S它是一款彩色的显示屏,分辨率是128*160,看起来十分舒适,具体驱动方法我就不多说了,一般都有现成的库了而且比较复杂。

4、主控板

  它是整个设计的核心部分,它可以采集传感器传输过来的信息,可以进行计算,也可以控制执行器进行输出信息。我这里使用的是Arduino uno主控板,它的USB转串口芯片是CH340,它的主控芯片是ATMEGA328P,有20个数字IO口(其中6个可做PWM口,图中带“~”的就是),模拟输入口有6个(带“A”的就是),Flash存储器容量32KB,EEPROM容量1KB,时钟频率16MHZ,它的性能可以满足一般的需求了。

5、面包板

  它的作用是方便快速地连接电路,搭配杜邦线进行使用,当然不要也可以。

三、程序

//超声波雷达程序
//导入库
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include <SPI.h>
#include <U8g2_for_Adafruit_GFX.h>
#include <Servo.h>
#include "SCoop.h"

//定义变量
volatile int jl;
//初始化外部模块
Adafruit_ST7735 tft = Adafruit_ST7735(9, 10, 8);
U8G2_FOR_ADAFRUIT_GFX u8g2_for_adafruit_gfx;
//定义数组
int jdfw[9][2] = {
  {0, 20},
  {20, 40},
  {40, 60},
  {60, 80},
  {80, 100},
  {100, 120},
  {120, 140},
  {140, 160},
  {160, 180}
};
Servo servo_2;

float checkdistance_3_4() {
  digitalWrite(3, LOW);
  delayMicroseconds(2);
  digitalWrite(3, HIGH);
  delayMicroseconds(10);
  digitalWrite(3, LOW);
  float distance = pulseIn(4, HIGH) / 58.00;
  delay(10);
  return distance;
}

//显示红色半圆
void xianshi(int c) {
  u8g2_for_adafruit_gfx.setFont(u8g2_font_timR18_tf);
  pianjing(80, 128, 80, c, 31);
  jl = checkdistance_3_4();
  pianjing(80, 128, constrain(jl, 0, 80), c, 14310);
  tft.fillRect(0,0,160,48,(0));
  u8g2_for_adafruit_gfx.setCursor(10,25);
  u8g2_for_adafruit_gfx.setForegroundColor((65126));
  u8g2_for_adafruit_gfx.print(String(servo_2.read()) + String("°"));
  u8g2_for_adafruit_gfx.setCursor(80,25);
  u8g2_for_adafruit_gfx.setForegroundColor((65126));
  u8g2_for_adafruit_gfx.print(String(String(jl)) + String("cm"));
}

//多线程
defineTask(scoopTask1)
void scoopTask1::setup()
{
}
void scoopTask1::loop()
{
  Serial.println(jl);
  delay(500);
}

// 显示圆
void hojing(int x, int y, int r) {
  //显示背景圆
  //画圆每个扇形
  for (int i = 0; i <= 8; i = i + (1)) {
    pianjing(x, y, r, i, 31);
  }
}

// 显示圆
void pianjing(int x, int y, int r, int c, int l) {
  //显示障碍物
  //画扇形
  double x1 = x + r * cos(jdfw[c][0] / 180.0 * 3.14159);
  double y1 = y - r * sin(jdfw[c][0] / 180.0 * 3.14159);
  double x2 = x + r * cos(jdfw[c][1] / 180.0 * 3.14159);
  double y2 = y - r * sin(jdfw[c][1] / 180.0 * 3.14159);
  tft.fillTriangle(x,y,x1,y1,x2,y2,l);
}

void setup(){
  jl = 0;
  tft.initR(INITR_GREENTAB);
  tft.fillScreen(0x0000);
  u8g2_for_adafruit_gfx.begin(tft);
  tft.setRotation(1);
  tft.fillScreen((0));
  // 显示圆
  hojing(80, 128, 80);
  pinMode(3, OUTPUT);
  pinMode(4, INPUT);
  servo_2.attach(2);
  Serial.begin(9600);
  mySCoop.start();
}

void loop(){
  yield();

  for (int a = 0; a <= 8; a = a + (1)) {
    servo_2.write((a * 20 + 10));
    delay(120);
    //显示
    xianshi(a);
  }
  for (int a = 8; a >= 0; a = a + (-1)) {
    servo_2.write((a * 20 + 10));
    delay(120);
    //显示
    xianshi(a);
  }

}

程序有点复杂大家可以放AI里解析一下。

四、制作说明

1、电路连接

Arduino uno主控板 HY-SRF05超声波模块
3 Trig
4 Echo
  ST7735S显示屏
13 SCL
11 SDA
9 CS
10 DC
8 RST
  SG90舵机
2 信号线(黄色的)

注意舵机的三根线一般红色为正极(即VCC),棕色为负极(即GND),黄色为信号线

2、使用软件

  建议使用Mixly(米思奇)软件,简单易懂而且程序已经准备好了在下面,不过也可以使用Arduino IED软件,或其他支持Arduino uno的软件。使用Mixly软件一般不需要导入任何库,不过其他的建议导入Mixly2.0中的库。

五、结束语

  怎么样这款超声波雷达是不是非常简单易懂,造价也十分便宜,感兴趣的快快行动起来吧!最后感谢大家的观看,如果有错误请指出。

 

工程附件
超声波雷达mixly程序.zip
申请原创奖励 雷达
版块: 电子DIY
2025/05/05 21:48
  • 举报
😁😂😃😄😅😆😉😊😋😌😍😏😒😓😔😖😘😚😜😝😞😠😡😢😣😤😥😨😩😪😫😭😰😱😲😳😵😷😸😹😺😻😼😽😾😿🙀🙅🙆🙇🙈🙉🙊🙋🙌🙍🙎🙏✂✅✈✉✊✋✌✏✒✔✖✨✳✴❄❇❌❎❓❔❕❗❤➕➖➗➡➰🚀🚃🚄🚅🚇🚉🚌🚏🚑🚒🚓🚕🚗🚙🚚🚢🚤🚥🚧🚨🚩🚪🚫🚬🚭🚲🚶🚹🚺🚻🚼🚽🚾🛀Ⓜ🅰🅱🅾🅿🆎🆑🆒🆓🆔🆕
@好友

全部评论

加载中
游客登录通知
已选择 0 人
自定义圈子
移动
发布帖子
发布动态
发布问答
最新帖子
【工程师经验】+ 飞线【开源】zvs142857 2.1A,3A快充 充电宝迷你UC3842 开关电源优化全解析:攻克常见难题,提升性能飞腾CPU × DeepSeek大模型,双芯加持全系列稳跑速进!解锁芯查查核心用户 2024 活动宝藏经历
热门版块
查看更多
维修技术
电子元器件
电子DIY
抄图联盟
汽车电子工程师论坛
工业电子专区
新手入门指南
单片机/MCU论坛
PCB设计
开源项目

146

收藏

分享

微信扫码
分享给好友

评论