基于ARM-LINUX平台的障碍物识别系统的设计

2013-01-29 02:54王袁杰张树群雷兆宜
陕西科技大学学报 2013年1期
关键词:示波器驱动程序接收器

王袁杰, 张树群, 雷兆宜

(暨南大学 信息科学技术学院, 广东 广州 510632)

0 引言

超声波传感器[1]的优点是价格低廉、信息处理方法简单、硬件易实现等,因此被广泛用为测距传感器.本系统设计了“一发三收”式的超声波探测装置[2],如图1所示.

ARM开发板输出控制“一发三收”式的超声波收发模组,通过开发板上的GPIO口输出来触发超声波发射器T0发射超声波,超声波遇到障碍物后反射回波,通过数字示波器抓取R0、R1、R2接收到的回波波形图,将所测得的波形图通过USB数据线传至PC进行对比分析,针对不用形状不同尺寸不同距离障碍物所带来的回波波形的差异找出规律,达到识别物体形状的目的.

图1 “一发三收”式的超声波探测装置

1 系统硬件平台设计

本系统硬件平台包括ARM9开发板、“一发三收”式的超声波收发模块组及数字示波器.系统硬件平台框图如图2所示.

ARM9开发板的作用有两个,一是通过其提供的GPIO扩展资源,编写驱动程序和应用程序实现对超声波传感器的控制,二是回波波形通过A/D转换成数字信号,再通过算法对数字信号加以处理,达到自动识别物体形状的目的.目前已经实现手动识别.

这里用到的超声波收发模块的工作原理是:通过开发板的GPIO口提供触发信号,给至少10us的高电平信号,发射器模块自动发射8个40 kHz的方波,接收器自动检测是否有信号返回.有信号返回时,可以通过数字示波器直接抓取回波波形,同时通过检测ECHO端口高电平持续的时间得到超声波从发射到返回所经历的时间.两个数字示波器均采用双通道抓取波形,其中示波器1对R0/T0进行采集,示波器2对R1和R2进行采集.

图2 系统硬件平台框图

2 系统软件平台设计

在开发软件之前,首先需要搭建软件开发环境,其次最重要的就是开发设备驱动程序[3],接着编写应用程序[4],最后把驱动程序和应用程序下载到开发板运行.本系统采用的LINUX平台是Red Hat企业版5.0,采用的交叉编译工具是arm-linux-gcc-3.4.1[5].超声波模块程序由驱动程序及应用程序组成.应用程序将控制参数传送给超声波模块驱动,启动模块的操作由驱动程序完成.在用户态应用程序中读取超声波收发模块返回的信号,可获得所需的信息.

超声波传感器设备驱动中定义的数据结构[6]如下:

static struct file_operations s3c2440_csb_fops = {

.owner = THIS_MODULE,

.open = s3c2440_csb_open,

.read = s3c2440_csb_read,

.write = s3c2440_csb_write,

.ioctl = s3c2440_csb_ioctl,

};

函数s3c2440_csb_open用于打开并配置为输入口.函数s3c2440_csb_read和s3c2440_csb_write用于读和写超声波模块的数据.函数s3c2440_csb_ioctl用于向设备发控制和配置命令,这些命令需要控制参数,控制参数是不能用read/write读写的.

除此以外,驱动程序中还包括函数s3c2440_csb_init用于初始化GPIO设备,函数register_chrdev创建并注册字符设备,动态分配设备号.函数s3c2440_csb_exit用于关闭GPIO设备.

超声波收发模块应用程序[7]的框图如图3所示.

图3 应用程序框图

3 超声波回波识别形状原理

“一发三收”式超声波收发模组探测平面体、圆柱、边角[8]等不同形状的障碍物情况下的回波原理图如图4所示.

图4中的H为障碍物到超声波收发模组的长度,d为超声波发射器到接收器的距离,L为障碍物的宽度.中间的R0/T0为收发一体式的超声波传感器,因此原理图中把他们合为一体.为了使两侧的R1、R2接收器能有效地接收到超声波回波,由波的反射原理可知障碍物的宽度L一定要大于d,即

L>d

(1)

同时H/d的比值超过一定的阀值时,d相对于H就可以忽略,为了更接近于理想化的测试环境,本系统中位于中心的接收器R0到发射器T0的距离d0相对于H可忽略,两侧的接收器R1和R2到发射器T0的距离d1和d2不能被忽略.在本实验中,我们取阀值为10,那么

图4 不同障碍物回波原理图

H/d0≥10,H/d1≤10,H/d2≤10

(2)

这里有两个实验条件:(1)当H>1 m时,回波的波形和距离信息的误差都会增加,因此H的取值应该小于1 m;(2)本系统所采用的超声波收发模块的发射探头和接受探头中心之间的距离为1.5 cm.那么H、d1、d2的取值范围如式3:

15 cm≤H≤100 cm,

d1≤10 cm,d2≤10 cm

(3)

以发射器T0所在点为0起点,本系统选取的H、d0、d1、d2的取值如式4:

H=20 cm和40 cm,d0=1.5 cm,

d1=5 cm,d2=10 cm

(3)

由原理图可以初步推断,当障碍物是角落时,发射器T0发出的超声波能被接收器R0接收,但是两侧相隔距离为d的接收器R1和R2由于角度的问题接收不到超声波,超声波全被反射掉了,此时,可以判断障碍物是角落.当障碍物是圆柱和平面时,发射器T0发出的超声波能被接收器R0、R1、R2接收,但是圆柱的接收器R1和R2所接收到的波形由于反射掉一部分而少于平面的接收器R1和R2接收到的波形.

4 超声波回波识别形状[9]测试结果分析

4.1 数字示波器抓取的波形图

当传感器模组到障碍物距H=20 cm(如图5)和H=40 cm(如图6)时,回波波形如图5和图6.

图5 H=20 cm回波波形图

图6 H=40 cm回波波形图

由图5和图6纵向比较可得,平面回波的轮廓和幅度都好于圆柱回波,圆柱回波的轮廓和幅度都好于角落回波;其次横向比较可得,随着d的增加,无论是平面、圆柱还是角落回波波形都产生了一定程度的衰减,尤其角落的R1,R2接收不到回波.

4.2 角落区别于平面体和圆柱的方法

根据波形图和振幅表可以很明显地看到:(1)在H相同的情况下,角落的R0接收器接收到回波的位置均落后于平面体和圆柱;(2)在H不相同的情况下,角落的R1接收器和R2接收器都接收不到回波,如原理图所示因为角度的问题回波全部反射掉了,这是角落区别于平面和圆柱的两个显著特征.通过这两点可以很简单地区分出障碍物是否是角落.

4.3 平面体区别于圆柱的方法

在H相同的情况下,可以通过振幅表中回波波形的幅度来区分平面体和圆柱,幅度大的是平面体,幅度小的是圆柱.在H不相同的情况下,通过回波波形的声压数据来辨别.

设A为波形的最大振幅,根据上图可以得到平面体、圆柱、角落在不同距离下的值见表1.

表1 不同距离下的AH值

由动量原理和波动方程,超声场中某一点的声压的定义如式5:

P=ρcωAcos(ωt+φ)

(5)

式中ρ为介质密度,c为超声波波速,ω为角频率,A为振幅,Acos(ωt+φ)为振动位移.

声波衰减的程度与声波的扩散、散射及吸收等因素有关.声压的衰减规律[10]如式6:

PH=P0e-αH

(6)

式中PH为距声源H处的声强;H为声波与声源间的距离;α为衰减系数.

在本系统测试环境不变的情况下,介质密度ρ不变,超声波波速c不变,由于ω=2πf,每次发射器T0发射的超声波频率f均为40 kHz,因此ω也不变,那么不同点的声压值就取决于该点的振动位移Acos(ωt+φ).振动位移的最大值为A,对应于每一段回波的峰值,我们取振动位移的峰值作为研究对象.那么振幅A也遵循声压P的衰减规律.即

AH/A0=e-αH

(7)

已知20 cm和40 cm下的H、AH值求出相应的平面体、圆柱、角落的A0和α,见表2.

表2 平面体、圆柱、角落的A0和α

由表2可见,平面体和圆柱的A0有很明显的差别,因此,根据测得的振幅大小AH、障碍物到超声波收发模组的距离H、表中所提供的α,即可求出A0的值,以此来区分平面体和圆柱.下面通过多组实验数据验证该方法的有效性,见表3.

表3 识别平面体和圆柱实例

综上所述,通过A0值可以有效地区分平面体和圆柱,当A0值近似等于平面体的A0时,可判断该障碍物为平面体,当A0值近似等于圆柱的A0时,可判断该障碍物为圆柱.

5 结束语

利用超声波回波的信息,将障碍物的距离信息和示波器抓取的直观回波波形特征相结合,可以得到简单障碍物的形状信息.本系统采用“一发三收”式的超声波探测系统,基于ARM-LINUX平台开发了系统的驱动程序和应用程序.本方法的优点就是能够直观地看到超声波回波信息,将回波信息与理论分析相结合,以此来实现简单障碍物的识别形状, 具有较高的准确度.同时本方法存在一定的局限性:(1)当传感器模组与障碍物距离超过1 m时,波形衰减过大不容易抓取,影响识别效果.(2)识别过程还没有通过A/D模数变换实现自动识别功能,这个将是下一步的工作.

[1] 肖 峻,牛 炜,莫易敏.收发同体型超声测距系统设计[J].传感器技术, 2003, 22(8): 32-33.

[2] 孙明明.超声导航移动机器人关键技术的研究[D].杭州:浙江大学, 2005.

[3] 张 杨,于银涛.嵌入式Linux设备驱动开发详解[M].北京:人民邮电出版社,2008.

[4] 孙 琼.嵌入式Linux应用程序开发详解[M]. 北京:人民邮电出版社, 2006.

[5] 韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2008:29-43.

[6] 李 军,申俊泽.超声测距模块HC-SR04的超声波测距仪设计[J].单片机与嵌入式系统应用,2011,11(10):78.

[7] 金文俊,冯 浩,华 亮.基于超声波传感器的自主移动机器人的探测系统[J].现代电子技术,2008,32(4):158.

[8] 钱志伟.护士助手机器人的超声波障碍物识别方法研究[D].哈尔滨:哈尔滨工程大学,2008..

[9] Seiji Aoyagi,Kiyoshi Takehata. Study onobject shape recognition using an ultrason-ic sensor[J].Faculty of Engineering,2001,18(2):105-117.

[10] 张 举,钟 勇.脱水器油水界面超声监测仪[J].黑龙江:大庆石油学院学报,1988,12(1):86.

猜你喜欢
示波器驱动程序接收器
JXG-50S型相敏轨道电路接收器自动测试台
计算机硬件设备驱动程序分析
一款教学示波器的Y通道设计与实现
可携带式虚拟双踪示波器
基于TEGRA K1的实时信号处理示波器的设计
ZPW-2000A轨道电路接收器冗余电路存在问题分析及对策
基于MPC8280的CPU单元与内部总线驱动程序设计
IDT推出超紧凑型无线电源接收器,可节省70%板面积
高速光学示波器
妙用鼠标驱动