基于STM32的倒车雷达系统设计
目录
前言
一、绪论
1.1 设计背景
1.2 设计内容
二、系统硬件设计
2.1 硬件系统框图
2.2 主控制电路
2.3 超声波电路
2.4 OLED显示电路
2.5 键盘输入电路
2.6 声光报警模块电路
三、系统软件设计
3.1 系统主程序设计
3.2 OLED显示程序设计
3.3 键盘设定程序设计
四、系统调试
4.1 硬件调试
4.2 软件调试
4.3 系统调试
五、实物测试
总结
前言
本设计为博主利用每日闲余时间设计的小作品,有不足之处还请各位在评论区批评指正,部分内容参考来源网络资料,如有侵权请联系博主删除。
一、绪论
1.1 设计背景
超声波测距是一种传统并且实用的测距方法,利用超声波可以非接触式测量,比起卷尺、激光或者无线电测这些更加方便,并且不存在其他因素等干扰的问题,不管在什么环境中都能正常使用,超声波具有自适应能力,并且超声波收发器成本低廉、结构简单,使用开发非常方便。超声波在各个行业领域使用的非常多,例如在工业控制方面、建筑测量方面、身高测量、声呐定位等都是利用超声波来做探测。
由于超声波传播速度相对适中,其传播的时间也方便计算出来,通过定时发射,方向性准确,强度好控制,因此人们采用这种方式超声波测距[1]。
超声波是一种人类听觉范围以外的一种声波,一种真实存在的波,它的传播速度非常慢,光速的万分一都不到,由于其速度传播慢,在传播过程中容易被检测捕获,超声波碰到障碍物介质时能够反射回来。超声波的传播具有方向性和可控制性,故而超声波用于很多方面,例如超声治结石、超声声呐等等,而本设计采用超声波的反射特性来用于测距设备,通过声波发出到反射接受的时间推理计算得到前方实际距离的方法实现测距。超声波技术在工业、计算机领域取得了很好的成就,并且在人们生活中普遍存在,把超声波应用到科技产品当中是开发者义不容辞的责任。
1.2 设计内容
本设计研究出一款基于超声波的倒车雷达系统。系统采用STM32F103C8T6单片机作为主控制器, 利用超声测距的原理, 设计了一种超声波测距装置,该装置可以对前方的障碍物进行距离探测并把障碍物距离信息通过OLED显示出来。并且根据实际情况在单片机内部设置一个临界值,当通过超声波探测的距离小于临界值时,声光报警,提醒前方距离变小。可以根据声光报警提示报警,通过提示得知距离是否在正常范围,从而达到报警的目的。即本次设计的倒车雷达系统主要具有以下功能:
1、具有实时测量距离的功能,在一定范围内实现测距,距离小于一定时,发出声光报警提示。
2、具有实时显示功能,单位精确到厘米。
3、安全距离可以调,可通过按键修改并保存。
二、系统硬件设计
2.1 硬件系统框图
本设计硬件设计部分主要由以下几个模块组成:单片机最小系统、超声波模块、报警模块、OLED显示模块、键盘模块。通过这几种模块组成倒车雷达系统,单片机最小系统由复位电路和时钟电路组成。具体硬件系统框图如下图所示:
2.2 主控制电路
设计中主控芯片采用STM32F103C8T6单片机作为主控制。该型号单片机为LQFP44封装,内部资源足够用于本次设计。STM32F103系列芯片最高工作频率可达72MHZ,在存储器的01等等待周期仿真时可达到1.25Mip/MHZ(Dhrystone2.1)。内部128k字节的闪存程序存储器,也即代码量可以写到128k字节,足够本次设计。所用STM32F103C8T6最小系统板如下图所示:
2.3 超声波电路
超声波模块工作电压为5V,Trig为触发控制信号输入连接单片机的PC13引脚,PC13通过该引脚输出高电平信号保持10微秒以上,此时超声波模块才被使能。自动发出方波信号,经过返回,Echo为回响信号输出接口端,直接相连单片机的PA0定时器输入脚,单片机判断该I/O高电平持续的时间来得出实际的距离。本设计中超声波模块电路设计图如下图所示:
2.4 OLED显示电路
本次采用低功耗的0.96寸OLED显示屏作为本次可穿戴设备的显示器,该OLED具有多种驱动方式,常用的方式主要有SPI和IIC驱动,本次采用IIC接口的方式,IIC只需要两根数据线即可驱动显示,使用原理简单。该模块内部不带任何字符,在显示字符、数字、汉字时都需要制作字库,因此可以显示各图案。该模块具有4个引脚,VCC接电源3.3V供电,GND接地线,SCL接STM32F103C8T6的IIC SCL脚PB6,SDA接STM32F103C8T6的IIC SDA脚PB7,如下图所示为本设计OLED电路设计图。
2.5 键盘输入电路
本次设计采用三个独立式按键实现对安全距离值进行调整,三个按键分为设置/退出键、设置加键、设置减键。设置键按下一次后,进入安全距离值设定界面,然后才可通过设置加和设置减键进行调整。如下图、为键盘电路设计图,图中三个按键一端接公共端GND,另一端分别接单片机的I/O。三个按键接口分别接单片机的PB12、PB13、PB14引脚,当单片机的相应引脚检测到低电平时,说明该引脚被触发,从而实现相应的动作。
2.6 声光报警模块电路
本次设计的报警系统设计采用有源蜂鸣器以及发光二极管LED实现声光报警电路,当检测到的距离小于设置好的距离时,单片机控制声光报警模块实现报警。如下图为声光报警电路设计图,由于蜂鸣器是非信号类器件,单片机的I/O不可直接进行驱动,故而利用三极管的开关作用控制蜂鸣器的开关。如图中所示,BUZZER1为蜂鸣器元件,Q1为S8550三极管,通过基极的电平状态从而控制三极管的开关,当单片机BEEP输出高电平时,三极管集电极导通,蜂鸣器通电,从而蜂鸣器发出声响,同时LED灭;当BEEP输出低电平时,三极管集电极处于截止状态,蜂鸣器没有电压从而不发声,LED亮。
三、系统软件设计
3.1 系统主程序设计
本系统是以STM32F103C8T6单片机为核心,设计的一款基于超声波测距原理的倒车雷达系统。STM32F103C8T6是整个系统的核心部分,利用HC_SR04超声波模块作为测距模块,模块是利用声波测距进行判断前方是否达到一定距离,达到报警的效果。在单片机内部设置一个阀值,当测得的距离小于阀值时,系统进行声光报警提示,用来提示使用者前方距离小于阈值,如果前方距离保持小于该阀值时,报警块循环报警提示,直到使用者前方距离大于阈值,才退出声光提示。整体软件设计的流程图,如下图所示:
3.2 OLED显示程序设计
本次设计采用OLED屏作为显示器,本次选用的是IIC接口,四针的OLED,通过IIC实现驱动OLED,使用方式非常简单。由上一章节可知,OLED的SDA、SCL分别接STM32的PB6、PB7,通过软件模拟IIC驱动。IIC接口包括IIC起始信号、IIC停止信号、IIC读数据、IIC写数据、IIC响应信号和非响应信号。以下为OLED读取显示数据流程图,首先进行初始化配置,初始化IIC,然后配置指令。接下来进入显示数据工作中,首先确定显示显示为坐标,然后显示字体大小等信息,然后写入显示数据。其流程图如下图所示:
3.3 键盘设定程序设计
按键在本系统中主要起到修改安全阈值的作用,主要有设置键、设置加键、设置减键等三个。工作如下:首先在正常工作状态下,按下设置键,进入设置菜单界面,OLED显示距离下限值。此时通过按键加、按键减可对距离下限值进行修改,步进值为1cm。设置完成后再次按下设置键将会保存,再自动回到主界面实时显示距离,具体流程图如下图所示:
四、系统调试
4.1 硬件调试
本次设计采用立创EDA设计出了PCB电路板线路图,该软件是一款高性能、开发方便的EDA软件,该软件能够完成原理图绘制和PCB设计。本次采用该软件绘制出来整个系统的电路图,以及PCB图,在设计过程中要注意以下几点:
(1)线宽规则:地线铺铜,电源线宽大于信号线宽。
(2)走线不能直角,尽量45度转角。
(3)电源电路和信号电路尽量隔远。
(4)电源线从滤波电容布线输出。
如下图为PCB板设计布线调试图。
4.2 软件调试
软件调试主要在KEIL5 MDK平台上进行软件bug调试,通过对软件中编译的问题进行修改和调试。本次设计主控是基于STM32F103C8T6的,开发环境是基于KEIL5,通过新建工程、创建主程序、创建子程序、编译、下载调试等步骤,先写出一个小模块,然后点击编译按钮,然后增加完善到最后的理想结果。
4.3 系统调试
最后一步就是硬件整体测试了,主要运用万用表、直流电源和示波器对焊接好的板子进行整体调试,主要检查每一个器件是不是都正常工作了,主要分为两个环节动态调试和静态调试。其中静态调试主要分为以下三种:
1.肉眼观察。主要观看焊接点是否饱满,以及相连器件之间是否相连或者器件管脚没有焊接好,出现短路现象。
2.使用万用表调试。首先查看电源是否短路,然后测量管脚是否连接正确,有没有接线错误。
3.上电检查。在完成第一步和第二步都没有问题,接下来就可以上电了,上电以后观看每个器件是否正常工作,然后在逐一测试功能。
动态调试。动态调试主要是静态调试没有任何问题,做最后一步检查,就是每个器件能否正常工作,能否满足我系统开发的功能,防止器件内部损坏,影响系统性能。
五、实物测试
通过对本次设计的硬件电路设计,最终做出电路板,将电路各个模块进行焊接。在焊接时应该注意先后顺序,先焊接电路模块,将电路接口和电源开关焊接好后,接通电源。接下来利用万用表测试各个电源点是否正常,测试正常后进入下一步的焊接。焊接顺序按照先焊接电源和主控制单片机部分,先焊接小元件再焊接大元件的方式,最终焊接完成图样如下图所示。
在系统板在开机后,正常运行时,OLED第一行会显示测试距离,第二行显示当前报警阈值,然后自动刷新测试距离,当所测距离小于报警阈值时,蜂鸣器会“滴滴”报警,LED指示灯会持续闪烁,直到所测距离大于报警阈值时,蜂鸣器关闭,LED指示灯停止闪烁。如下图所示为系统数据显示主界面图。在主界面下实时显示该系统所测距离的数据。如下图所示当前距离测量值为37cm,报警阈值10cm。
在主界面上实时显示,可通过按键实现其他功能,按下切换键时,OLED将切换到阈值设置界面,如下图所示为阈值设置界面图。
在阈值设置界面下,按下设置减键和设置加加键可以调整报警阈值,如下图所示。
总结
本次设计顺利完成预期设计功能,设计源码、PCB原理图、设计报告见下百度网盘链接:https://pan.baidu.com/s/1RlROmoShmfH6AiuRgY8TFA
提取码:qe4v
下一期将制作基于51单片机的脉搏测量仪,创作不易,还请各位多多支持!