基于FPGA的超声波雷达感应预警系统 全过程记录

青灰色的风 / 2023-05-13 / 原文

FPGA系统开发 综合实验记录

实验时间节点与想法记录

  • 2023.4.24 新建本文档。目前决定有以下两个方案,要根据学校发的器件和自己的水平和后面时间决定。

    课设想法 具体情况
    基于FPGA的高速运动体速度测量系统设计 难,可以当小型的毕业设计
    基于FPGA的智能交通装置 做的人比较多,要有创新点
  • 2023.4.27 决定使用超声波雷达作为项目。目前想法是使用舵机+雷达实现360度探测障碍物,如果在某一方向有距离接近,则在某一方向锁定探测范围,并报告距离。如果距离达到设定值则蜂鸣器报警。

  • 2023.5.12 购买以下器件用于实验

    器件 具体情况 备注
    杜邦线 公对母/母对母若干条
    HC-SR04超声波模块 宽电压3-5.5V
    SG90舵机 9克经典舵机360度
    无源蜂鸣器 2-4V无源9042电磁式16欧2731HZ 2只

器件功能与使用

HC-SR04超声波模块

1 基本工作原理

(1)采用 IO 口 TRIG 触发测距,需要给最少 10us 的高电平信号。
(2)模块自动发送 8 个 40khz 的方波,自动检测是否有信号返回;
(3)有信号返回,通过 IO 口 ECHO 输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。
测试距离=(高电平时间*声速(340M/S))/2

2 实物图

image

3 电气参数

image

4 超声波时序图

image

5 使用建议

建议测量周期为 60ms 以上,以防止发射信号对回响信号的影响。
模块不宜带电连接,若要带电连接,则先让模块的 GND 端先连接,否则会影响模块的正常工作。
测距时,被测物体的面积不少于 0.5 平方米且平面尽量要求平整,否则影响测量的结果。

SG90舵机

1 基本工作原理

控制信号由接收机的通道进入信号调制芯片,获得直流偏置电压。它内部有一个基准电路,产生周期为20ms,宽度为1.5ms的基准信号,将获得的直流偏置电压与电位器的电压比较,获得电压差输出。最后,电压差的正负输出到电机驱动芯片决定电机的正反转。当电机转速一定时,通过级联减速齿轮带动电位器旋转,使得电压差为0,电机停止转动。

2 实物连接

黄线接信号线,红线接VCC 5V,褐色线接GND。

3 FPGA与舵机

FPGA可以很方便地将脉宽的精度精确地控制在2微秒甚至2微秒以下。主要还是Delay Memory这样的具有创造性的指令发挥了功效。该指令的延时时间为数据单元中的立即数的值加1个指令周期(数据0除外,详情请参见Delay指令使用注意事项)因为是8位的数据存储单元,所以Memory中的数据为(0~255),记得前面有提过,舵机的角度级数一般为1024级,所以只用一个存储空间来存储延时参数好像还不够用的,所以可以采用2个内存单元来存放舵机的角度伺服参数了。所以这样一来,我们可以采用这样的软件结构了。

SG90(360°)需要什么信号? 首先必须明确,SG90不论是90°、180°还是360°,它需要的控制信号都是周期为20ms的脉宽调制(PWM)信号,只是脉冲宽度从0.5ms-2.5ms在三种舵机上的作用不同。对于360°舵机来说,0.5-1.5ms的脉冲宽度实现顺时针转动,只是速度不同;1.5-2.5ms的脉冲宽度实现逆时针转动,也只是速度不同;1.5ms的脉冲宽度实现暂停。 这里还需要明确一点(举例来说),脉冲宽度为1ms、周期为20ms的脉宽调制信号需要不断传输给舵机才能保证舵机不停地顺时针转动,并不是给了一个周期信号就完事了!https://blog.csdn.net/SHRtuji/article/details/113354315