基于单片机的超声波测距仪设计_kaic

摘 要

如今社会持续深化转型,在人工智能领域,传感器采集外部数据,经过处理器对数 据运算和处理,从而实现相应的功能。比如自动驾驶技术中,超声波传感器应用广泛, 超声波是一种频率在 20khz 以上的声波,具有声波传输的物理基本特性反射、折射、干 涉、衍射和散射。

本次选题经过对超声波技术的深入了解,旨在设计一个超声波测距仪,进行无接触 式空间距离测量,通过优化硬件,以及升级软件算法,使超声波技术在人们的生活中得 到广泛应用。该超声波测距仪器基于 stm32 单片机,利用超声波发射接收头,实现短距 离的数字信号传输,运用温湿度传感器采集所处环境的温度和湿度,集中处理数据,对 测量数据进行校准,保障数据的准确性,使得测距仪在严苛的条件下,仍然可以稳定运 行。最终在液晶显示屏呈现测量数据,能够达到便捷、快速、准确的距离测量。同时, 能够在手机客户端操作,利用蓝牙传输信息,更加便捷测距。但是,由于系统硬件的限 制,仪器存在一定程度上数据误差。

关键词:超声波;stm32;手机客户端

Design of ultrasonic rangefinder based on single chip computer

Abstract

Today's society continues to deepen the transformation, in the field of artificial intelligence, sensors collect external data, through the processor to calculate and process the data, so as to achieve the corresponding function. For example, in automatic driving technology, ultrasonic sensors are widely used. Ultrasonic wave is a kind of sound wave with a frequency above 20khz, which has the physical basic characteristics of sound wave transmission: reflection, refraction, interference, diffraction and scattering.

After in-depth understanding of ultrasonic technology, this topic aims to design an ultrasonic rangefinder for non-contact space distance measurement, through optimizing the hardware, as well as upgrading the software algorithm, so that ultrasonic technology is widely used in people's life. The ultrasonic ranging instrument is based on stm32 microcontroller, using ultrasonic transmitting and receiving head, to achieve short distance digital signal transmission, the use of temperature and humidity sensors to collect the temperature and humidity of the environment, centralized data processing, calibration of the measured data, ensure the accuracy of the data, so that the rangefinder in harsh conditions, still can run stably. Finally, the measurement data is presented on the LCD screen, which can achieve convenient, fast and accurate distance measurement. At the same time, can operate in the mobile client, using Bluetooth transmission information, more convenient ranging. However, due to the limitation of system hardware, the instrument has a certain degree of data error.

Key Words:Ultrasonic Wave;Stm32;Mobile Client

目 录

摘 要

Abstract

1 绪论

1.1 选题背景及意义

1.2 选题的目的

1.3 课题主要内容

2 方案设计

2.1 超声波原理

2.2 整体方案

3 硬件电路设计

3.1 核心模块

3.1.1 STM32 处理器

3.1.2 HC-SR04 超声波传感器

3.2 辅助模块

3.2.1 蜂鸣器

3.2.2 温湿度传感器

3.2.3 显示屏

3.2.4 蓝牙串口通信

3.3 硬件电路

4 软件开发

4.1 微处理器程序设计

4.1.1 超声波测距仪的算法设计

4.1.2 主程序

4.1.3 超声波发射和收集中断子程序

4.1.4 辅助模块子程序

4.2 客户端应用软件设计

4.2.1 功能需求

4.2.2 软件设计

5 系统测试

5.1 功能实现

5.1.1 超声波测距仪实物

5.1.2 客户端应用软件功能

5.2 注意事项

结 论

参 考 文 献

致 谢

1 绪论

1.1 选题背景及意义

传统的测距方法在实际使用中存在局限性,当空间环境状况不明晰的情况下,传统 测距无法准确计量距离数据。在自然界,蝙蝠依靠自身特殊结构发出高频声波能够在黑 夜中判断飞行轨迹,进行捕猎觅食,不过这种频段的声波人耳无法听到。人们通过自然 界研究出超声波用于无接触式空间测距,并不断改进技术,超声波技术的应用,也越来 越普及。

目前国内外的研究现状,主要是对硬件性能优化,以及数据算法改良等方面。王楠 等通过设计新型硬件板块,提高性能。熊春山等使用波头技术与零交叉点检测的方式[1], 胡跃辉等对测距数值采取加权算术平均处理的方法,都是进一步改善超声波测距的精 度。随着研究的深入,超声波技术在机械制造、石油化工、航海交通等领域,此外在医 学、生物科学等领域中也占据重要地位。

超声波测距仪能够在空间环境复杂,比如当前区域可见度低或者具有腐蚀性化学物 质在地面上,那么超声波测距能够完全达到测量标准,并且保证人员相对安全,因为超 声波探头发射和接收都在整体模块上,它是一种非接触式测量距离的技术,这些优势是 传统测距所达不到的,也使得该项技术广泛应用。

1.2 选题的目的

超声波测距仪相较于传统测距,具有便捷、无接触式等测量优势。本测距仪基于 stm32 单片机,通过超声波发射接收头,实现对短路径精准测量。

(1)本设计使用 stm32 系列单片机为主控板,其它传感器为辅助模块,制作实物; (2)将超声波测距仪输出的的数据进行短距离传输,并在显示终端进行结果显示; (3)利用温湿传感器,收集环境温湿度数据,对距离数值进行校准,降低误差值; (4)使用 APP Inventor 工具设计手机客户端应用软件,采用蓝牙通信,传输数据; (5)通过在客户端应用软件设置参数,使蜂鸣器对安全距离做出相应的提醒。

1.3 课题主要内容

本文主要包括方案设计、硬件电路组装优化、软件开发、系统测试及总结。通过分 析研究和方案规划设计出满足实际应用需求的超声波测距仪实物。

(1)了解技术本质原理,收集资料;

(2)根据需求,分析模块功能结构;

(3)确定仪器硬件整体方案,选购各项模块,并组装仪器;

(4)分析功能需求,设计程序框架,编写主控板和手机客户端程序;

(5)对系统进行测试以及展现,手机客户端调用主控板,并进行距离测量。

2 方案设计

2.1 超声波原理

超声波属于特殊的声波[2] ,声波属于机械波的范畴。机械波是由物体振动引起的, 必须依靠介质传输,具有基本的物理特性。超声波具有机械波的特性,并广泛应用于清 洗、消毒、碎石等广泛应用于行业。超声波发射模块内部构造,如图 2.1 所示。

图 2.1 超声波发射模块内部构造

超声波模块的设计,原理是电磁感应。通过磁场作用拨片,并产生震动,发射出去。 同时,反射回来之后,再把振动频率转化为电信号。

2.2 整体方案

超声波测距仪选用 STM32 系列单片机为主控板,以及其他模块为辅助模块。通过分 析各项模块的电路接入需求,设计组装连接图,以面包板为基础电路板,使用镊子、美 工刀、电路表等工具将各个模块连接起来,局部到整体,逐步将个模块之间连接起来, 构建仪器模型。并采用电流表和电压检测接处,判断电流和电压稳定情况,判断是否有 虚接问题,同时要保障相关电路连接准确。

实际组合过程中,由于 LCD10602 屏幕分辨率较低,引脚过多,不适用实际设计。 所以,进行综合分析,选择 0.96 寸液晶显示屏,其性能好,引脚仅有四个,利用 IIC 协议通信,极大提高引脚端口利用率。

在完成硬件后,使用 KEIL 工程软件,进行程序模块化编程,能够有效对单项区域

程序功能进行测试,而主程序主要负责调用和整合子程序,使得整体架构稳定合理。在 算法设计上,采用准确数学公式理论,利用硬件设备提供的算力,能够使得计算数据快 速精准,为实际应用保障测量数据的准确性。对于手机客户端,登录谷歌插件 Inventor 官网,设计界面排版和逻辑设计。整体系统架构,如图 2.2 所示。

图 2.2 整体系统架构

对系统进行调试,优化稳定性,实现超声波测距仪无接触式空间测距,同时提供手 机客户端对仪器进行短距离无线操作。手机客户端通讯简图,如图 2.3 所示。

图 2.3 手机客户端通讯简图

3 硬件电路设计

3.1 核心模块

3.1.1 STM32 处理器

STM32 系列单片机具有高性能、低成本的特性,基于 Cortex-M3 架构[3] ,内置高速 的处理器以及运算内存 , 能够轻松运行复杂的程序 。本仪器采用芯片型号为 STM32F103RCT6 的系统板作为仪器主控板,对传感器采集的数据进行处理和运算,并控 制各项模块实现相应功能。同时本设计核心功能程序复杂度中等,STM32 系列单片机可 以提供充足的算力支持,保障程序稳定的运行。STM32F103RCT6 系统板,如图 3.1 所示。

图 3.1 STM32F103RCT6 系统板

图 3.2 STM32F103RCT6 系统板原理图

STM32F103RCT6 系统板原理图,如图 3.2 所示。系统板整体电路由单片机、复位电 路、晶振电路构成[4] ,外围电路接口包括 SWD 烧录接口和 USB 电源接口。

3.1.2 HC-SR04 超声波传感器

超声波传感器具有特殊结构,能够发射出高频的声波,经过时间间隔,接收反射回 来的声波,并通过处理器计算得到当前位置距离目标物的精确数据。

本仪器选用 HC-SR04 型号的超生波传感器,其测量最大范围是 4m,误差是±1cm, 价格便宜,能够满足设计基本功能要求 。模块在接入仪器的过程中断电操作,带电情 况下会损坏内部电子元器件,影响其工作寿命,并且需要选择被测物体反射面平整,否 则会影响测量数据准确性。超声波时序图,如图 3.3 所示。

图 3.3 超声波时序图

主控板向模块 Trig 引脚端口发送大于 10us 的高电平脉冲,触发模块发射和接收声 波,并通过 Echo 引脚端口反馈与距离等比的脉冲信号,进而主控板处理脉宽时间得出 时间间隔,计算距离数据。超声波传感器与主控板引脚端口连接,Trig 与 B5,Echo 与 B6。HC-SR04 超生波传感器,如图 3.4 所示。

图 3.4 HC-SR04 超生波传感器

3.2 辅助模块

3.2.1 蜂鸣器

蜂鸣器通过电压振动拨片,发出鸣响,对安全距离进行报警。本仪器设计选用型号 是有源高电平蜂鸣器,主控板对连接的 I/O 端口拉高电平,即可发出鸣响。模块发生孔 不能存在异物,同时保证在正常温度下工作,超过 40℃或低于 0℃都会影响工作情况。 蜂鸣器与主控板引脚端口连接,I/O 与 A11。有源蜂鸣器,如图 3.5 所示。

图 3.5 有源蜂鸣器

3.2.2 温湿度传感器

温湿度传感器,采用内置特殊材料,因温度变化而变化,进而转化为数字信号。本 仪器设计选用 DHT11 型号温湿度传感器,价格便宜。湿度测量范围:25%--90%(0-50℃), 温度测量范围:-15℃--55℃ , 需要注意使用环境[5]。模块应避免长时间下在太阳光照射, 会降低性能,使用高质量屏蔽线,提高数据传输稳定性。

主控板对连接的 DATA 引脚端口发生送信号,模块进入高速模式,开始工作。模块 与主控板之间采用单总线数据格式,数据格式分为两部分。温湿度传感器与主控板引脚 端口连接,DATA 与 A15。DHT11 温湿度传感器,如图 3.6 所示。

图 3.6 DHT11 温湿度传感器

3.2.3 显示屏

主控板将计算出的距离数据,利用屏幕显示出来,方便用户观察使用。本仪器设计 选用型号 0.96 寸显示液晶屏,其性能比较高,但是价格稍贵一些。模块需要在常温环 境下工作,同时避免碰撞,造成内部背光灯管微型器件损坏,影响成像效果。

模块与主控板之间采用 IIC 通信协议进行数据传输[6] ,IIC 总线完成交互通讯仅需 两条线,一条 SCL 时钟线,另外一条双向数据线 SDA。液晶显示屏与主控板引脚端口连 接,SCL 与 B12,SDA 与 B13。0.96 寸显示液晶屏,如图 3.7 所示。

图 3.7 0.96 寸显示液晶屏

3.2.4 蓝牙串口通信

蓝牙技术能够建立临时性的短距离连接,可以双向传输数据,而且功耗较低便于在 移动设备上运行。从性价比方面考虑,采用 JDY-31 类型蓝牙模块。在接入仪器时,注 意电源所提供电压,要适配模块工作电压,否则会对内部元器件造成影响。

模块与主控板之间采用 UART 串口通讯方式,开发方便。同时,与手机客户端采用 蓝牙通讯协议,进行短距离双向数据传输。TXD:数据发送端,与主控板 A10 相接。RXD: 数据接收端,与主控板 A9 相接。JDY-31 蓝牙 3.0 模块,如图 3.8 所示。

图 3.8 JDY-31 蓝牙 3.0 模块

3.3 硬件电路

本硬件设计采用常规电路,实物采用标准化、模块化制作,并符合硬件基础构造。 另外,充分满足程序功能要求,同时要将硬件设计和软件设计共同规划,做到最佳匹配。 同时,需要确定整体功耗数据,优化电路设计,能够在适合的驱动下稳定运行。主控板 与各模块的电路连接,如表 3.1 表述。

表 3.1 引脚端口对应表

模块名称模块引脚端口STM32 引脚端口

蓝牙串口通讯器RXD

TXD

GND

VCCA9

A10

GND

5v

超声波探头Trig

Echo

GND

VCCB5

B6

GND

5v

液晶显示屏SCL

SDA

GND

VCCB12

B13

GND

3.3v

蜂鸣器I/O

GND

VCCA11

GND

3.3v

温湿度传感器DATA

GND

VCCA15

GND

3.3v

仪器整体的组成,由主控板和超声波传感器作为核心模块[7] ,蜂鸣器、温湿度传感 器、蓝牙模块、显示屏作为辅助模块。同时采用面包板为电路基础板,以及各类杜邦线 连接各项模块。仪器可视化电路图(仅供参考),如图 3.9 所示。

相关推荐
Henry_Wu001几秒前
从swagger直接转 vue的api
前端·javascript·vue.js
奋飞安全1 分钟前
初试js反混淆
开发语言·javascript·ecmascript
guoruijun_2012_42 分钟前
fastadmin多个表crud连表操作步骤
android·java·开发语言
浪里个浪的10244 分钟前
【C语言】计算3x3矩阵每行的最大值并存入第四列
c语言·开发语言·矩阵
@东辰12 分钟前
【golang-技巧】-自定义k8s-operator-by kubebuilder
开发语言·golang·kubernetes
Hello-Brand12 分钟前
Java核心知识体系10-线程管理
java·高并发·多线程·并发·多线程模型·线程管理
乐悠小码18 分钟前
数据结构------队列(Java语言描述)
java·开发语言·数据结构·链表·队列
史努比.20 分钟前
Pod控制器
java·开发语言
2的n次方_22 分钟前
二维费用背包问题
java·算法·动态规划
皮皮林55123 分钟前
警惕!List.of() vs Arrays.asList():这些隐藏差异可能让你的代码崩溃!
java