超声测距模块HC—SR04的超声波测距仪设计

超声测距模块HC—SR04的超声波测距仪设计


2024年4月19日发(作者:mini2平板参数尺寸)

— 囊。 j : IENGE EXCHANGE 经验交流 ■ 

超声测距模块HC—SR04的超声波测距仪设计 

李军,申俊泽 

(东北石油大学计算机与信息技术学院嵌入式实验室,大庆163318) 

现的。设超声波脉冲由传感器发出到接收所经历的时间 

引 言 

随着国民经济的迅速发展,超声波在机械制造、石油 

化工、航空航天等领域发挥着越来越重要的作用。 

为t,超声波在空气中的传播速度为c,则从传感器到目标 

物体的距离D可用下式求出: 

D:C・t/2 

超声波测距作为一种非接触式距离测量方法,具有不 

受外界光及电磁场等因素影响的优点,实现电路简单,成 

超声波测距模块HC—SR04可提供2~400 cm的非 

接触式距离感测功能,测距精度 

可高达3 mill。模块包括超声波 

发器、接收器与控制电路。图2 

为HC—SR04的引脚图。 

各引脚功能如下: 

①VCC是5 V电源,GND为地。 

图2 HC—SR04引脚图 

本低;同时,还具有易于定向发射、方向性好、对人体伤害 

小等特点。上述优势使得与超声波测距领域相关的仪器 

设备在数据处理、检测性能和工程设计系统化等方面有了 

更大的发展空间。 

1 总体设计 

本系统利用三星公司的¥3C241o及超声波测距模块 

HC—SR04构造了一个嵌入式系统平台。整个系统由3 

部分组成:底层硬件平台、系统软件层和应用软件层。系 

统硬件结构如图1所示。 

HC.SR04 

②TRIG是触发测距引脚,给至少1O s的高电平 

信号。 

③ECHO是信号接收引脚。有信号返回时,通过I/O 

口ECHO输出一个高电平,高电平持续的时间就是超声 

波从发射到返回的时间。 

障 匝 碍 

物 

S处理器 显示屏 3C2410 LCD 

3 软件设计 

在软件开发之前,首先要完成软件开发环境的搭建, 

接下来最重要的工作就是设备驱动程序的开发。当软件 

系统底层的程序完成之后,就可以着手上层的与设备无关 

的应用程序。最后就是系统的图形界面的设计,并将应用 

程序烧写到¥3C2410开发板上。 

图1 系统硬件结构图 

超声波测距仪的软件层由驱动及应用程序组成。其 

中,应用程序包括数据采集程序及图形用户界面;而驱动 

程序的设计是本系统的重点。 

3.1 系统开发环境的建立 

(1)交叉编译环境的建立 

2 硬件设计 

2.1¥3C241 O处理器 

¥3C2410处理器是三星公司的一款基于ARM920T 

交叉编译是嵌人式开发过程中的一项重要技术,是编 

译技术发展过程中的一个重要分支。本系统采用的交叉 

编译器是cross一3.3.2.tar.bz2。安装此编译器只需要在 

/usr/local目录下建一个arm的目录,将cross一3.3.2.tar. 

bz2拷贝到arm目录下,然后进入该目录进行解压,并设 

内核的16/32位RISC嵌人式微处理器。ARM920T由 

ARM9TDMI、存储管理单元(MMu)和高速缓存3部分组 

成,主频可达200 MHz;外围硬件资源包括64 MB 

SDRAM、64 MB NAND Flash、2个五线异步串行口、1个 

10M网口及用户扩展口等。本系统利用开发板提供的 

置相应的环境变量。 

(2)Qt/Embedded和Qtopia开发环境的建立 

建立Qt/Embedded和Qtopia开发环境的具体步骤如 

GPIO扩展资源,实现对超声波测距模块HC—SR04的数 

据采集及控制,同时在LCD屏上显示精确的距离数值。 

下:首先,下载tmake、Qt/Embedded、Qtopia的源码包,注 

意版本之间的向后兼容性;其次,把这3个源码包分别解 

压到不同的目录下;最后,编辑/etc/bashrc文件,设置环 

境变量,并利用交叉编译器编译Qt/Embedded。 

2.2超声波测距模块 

超声波测距是借助于超声脉冲回波渡越时问法来实 

paper@mesnet.com.cn(投稿专用) 201 1年第10期 卑 机 嵌入式彖碗应国 77 

匡甄al,EXPERtENGE EXCHANGE 算j童 

3.2超声波测距模块程序设计 

超声波测距模块程序由驱动及应用程序组成。应用 

程序传送给超声波测距模块驱动控制参数,具体测距由驱 

动程序完成。存用户态应用程序中读取超声波设备,可获 

得所需的信息。 

I inux系统访问设备就像访问文件一样。字符设备 

使用struct file—operation结构来定义没备的各种操作集 

合,结构中的各个函数分别响应同名或类似名称的系统调 

O1 

O2 

O3 

O4 

定性,测试了12组数据,并对测距结果与实际距离进行了 

比较。距离测试结果如表1所列。 

表1距离测试结果 

序 号 测试距离 

2 

2 

11 

5O 

cm 

实际距离 

1 

2 

1O 

5O 

O5 

06 

O7 

O8 

09 

1O 

11 

12 

102 

l52 

2O2 

253 

3O3 

352 

402 

4O2 

1OO 

15O 

200 

25O 

3OO 

350 

4O0 

500 

州。它是操作外设的函数接口,又称设备驱动程序接口。 

编写宁符设备驱动程序,主要实现struet file—operation结 

构中的各个函数。 然,驱动程序并不是要实现所有的这 

些函数,可以根据实际设备需要实现必要的函数。超声波 

传感器设备驱动中定义的数据结构为: 

slalie struct file operations gpio

fops一{ 

owrler—

open 

THIS M(}DUI E, 

gpio

open, 

由实验数据可知,该超声波测距器的盲区(超声波传 

感器检测到墙壁的最近距离)为2 efn;而最远测量距离为 

read=:gpioread, 

release—gpio release, 

400 cm。电路程序设计时,为了避免超声波从发射器直接 

传送到接收器引起的直射波触发,延时约为0.1 ms,所以 

超声波测距器会有一个最小可测距离。而由于超声波在 

数gpl’o—init用于初始化GPIO 

没备。函数gpi0 setup—cdev创建并 

传播过程中会产生衰减且发射功率有限,导致远距离回波 

很难检测到,所以会有一个最远测量距离。另外,通过温 

注册字符设备,动态分配设备号。函 

数gpio—open用于打开并配置为输入 

度补偿可以提高测量精度。 

口。函数gpio read用于读取超声波 

测距模块输出的距离数据。函数 

gpio release用于关闭GPIO设备。 

超声波测距系统的应用程序主 

要由测距程序、超声波发生子程序、 

5 结 论 

利用超声波测距原理,系统在¥3C2410+Linux的平 

台上,实现了自动测距和实时显示功能。该系统所有运 

算、处理、显示都实现数字化;操作简单,使用方便,测量速 

度快、准确,结果显示直观;体积小,携带方便,适用于各种 

水文液位测量、障碍物的识别以及车辆自动导航等领域, 

具有良好的应用前景。●鬣 

参考文献 

[1]石秀民.嵌入式系统原理与应用[M].北京:北京航空航天大 

学出版社,2007. 

E2]工宜怀.嵌人式技术基础与实践[M].北京:清华大学出版 

社,2009. 

[3]优龙科技发展公司.YLP2410使用手册,2007. 

[4]宋宝华.Linux设备驱动开发详解[M].北京:人民邮电出版 

社,2008. 

[5]欧文盛.ARM嵌入式Linux应用实例开发[M].北京:中国 

电力出版社,2008. 

[63 Xteam(中国)软件技术有限公司.Qt程序设计[M .北京:清 

4超声波测距仪数据测量结果 

在系统设计并实现后,为了验证测距仪的准确性与稳 

7 8 Microcontrollers&Embedded Systems 

华大学出版社,2002. 

(收稿日期:2011 06 1 5) 

20 1 7年第10期 

Www.mesnet.corn.cn 


发布者:admin,转转请注明出处:http://www.yc00.com/num/1713492803a2259676.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信