二维定位设计报告.docx
《二维定位设计报告.docx》由会员分享,可在线阅读,更多相关《二维定位设计报告.docx(25页珍藏版)》请在冰豆网上搜索。
二维定位设计报告
作品题目序号
09
作品题目名称
二维平面内物体定位
参赛队伍序号
49
参赛队伍名称
参赛队员姓名
作品完成情况
□作品完整 □作品部分完成
□作品未制作
2014 年山东工商学院电子设计竞赛
作品设计报告
超声波定位系统
摘要
我们根据超声波的特性来研发制成超声波传感器,机械振动频率比声
波高波,我们称之为超声波。
超声波的频率比较高,其次波长短和绕射现象不
明显,而且具有方向性好,能量消耗缓慢,能长距离传播等优点。
当今社会,在
传感器以及自动控制 距离的方案中,超声波测距是被最广泛应用的一个方
案,它被使用于以下的实际操作中,例如,水位的测量,建筑工地测距这些场
合。
本论文讨论了超声波的定位系以及相应的算法,还比较全面地描述了超
声波传感器的原理以及特性。
基于超声波测距原理的分析,提出了超声波
测距系统的设计过程和需要问题。
以 MC9S12XS128 单片机为核心,我们设
计好的超声波测距仪以及硬件电路有很多优势,它的精度高、低成本以及
数字显示的使用微型。
这个系统的电路的设置和布局较合理,工作性能和稳
定性好,计算简单,实时控制是比较容易做到的,更重要的是,测量满足了工业
实际的要求。
关键词:
超声波定位算法;超声波传感器;超声波测距;误差
分析
1
一 、 引言 .............................
二 、 方案设计 .........................
三 、 模块设计 .........................
3.1 整体设计示意. . . . . . . . . . . . . . . . . . . . . .
3.2 超声波模块. . . . . . . . . . . . . . . . . . . . . . . .
3.3 报警电路. . . . . . . . . . . . . . . . . . . . . . . . .
3.4 显示电路. . . . . . . . . . . . . . . . . . . . . . . . .
四 、 设计程序及流程图.................
4.1 软件流程图
4-2.程序
五 、 测试结果及分析...................
5.1测试结果分析
5.2测试结果误差分析
六 、 总结 .............................
七 、 附录 .............................
7-1.完整电路图
7-2.元器件清单
2
§1 引言
当前超声波测距技术应用已经比较成熟,但是对超声波定位系统的研
究探讨才在刚起步的阶段。
超声波定位的原理和无线电定位原理有比较相
似,区别是超声波其在空气传播过程中的衰减很大,其仅能在较小的空间
范围适用。
在实际中,超声波测距系统在短距离测量中得到了应用,其精
度在厘米级,如在没有人的车间的场所运动物体定位的选择等使用超声波
定位系统比较好。
为了研究超声波定位系统,我们要从研究超声波的测距方法开始,之
后由距离和提供的计算方法来求出待被定位的物体的位置坐标,我们采用
的是反射式测距法:
这种测距法就是超声波发射器发射超声波,然后发射
的超声波被待测物反射从而产生回波被接收探头接收,我们依据回波和发
射波之间的时间隔则就可以求出待测物与发射器之间的长度距离。
其原理
图如图 1-1 所示
图 1-1采用回波测距法的原理图
超声波发射器在空气中向任一目标位置发射超声波,发射超声波的同
一时刻马上进行计时,超声波在空气传递过程当中如果遇到障碍物就会即
刻返回,一旦超声波接收器获取到反射信号则就会马上中止计时。
超声波
处于空气中传播的速率约为 340 米每秒,并读出计时器所获得的时间 t,
基于计算公式就能够求出发射点与障碍物之间的长度距离 s,也就是:
s=340t/2。
这就是所被人们称为时间差测距法。
3
§2方案设计
方案一:
回波法定位的定位系统,对周围物体进行定位,超声波的测距仪器固
定在一个已知点上,以这个点为原点建立坐标系,对周围的物体进行测距,
然后测出偏转角度,便可对周围物体进行定位。
图 2-1采用回波法的超声波测距仪
如图 2-1 示,O 点为超声波发射与接收测距的原点,和一个测量角度
的仪器规定一个以 O 点为原点的直角坐标系,然后对待测物体进行扫射,
若考虑到超声波当第一次接收到信号时记住一个角度 Q 和距离 M 然后继续
扫射当信号瞬间没有时停止记录另一个角度 W 和距离 N,两个角度求平均
值 α 和距离 L ,便可根据三角函数计算出 A 点的坐标:
x=L×cosα
y=L×sinα
把 O 点周围的物体进行测量之后,各个物体进行了定位,用计算机便
可行对周围的物体进行详细计算,对周围环境形成图像,对其本身进行定
位。
优点:
系统设计非常简单,操作简便,采用回波测距发电路设计简单。
缺点:
误差较大,需进行较详细的误差分析,角度不好测量
方案二:
三角形定位法:
在同一个平面上,设置两个固定的超声波云台,分别
测量出主体到每个接收点的距离,经过相关的计算就可以得到主体的位置
坐标。
在下面二维平面图 2-2 中,选取一个直角坐标系,(-M,0),(M,0)的两
个位置设定接收点。
其中
图 2-2 平面三角形定位示意图
主体坐标(x,y)到设定的两个接收点的距离长度分别为 L1、L2,根据
距离计算坐标(x,y)的方法原理如下:
由图 2-1 关系可得
4
求解可得:
由此可实现超声波平面定位,就是可以求出主体的坐标(x,y)。
优点:
两个超声波云台测量,精准度较高,角度测量方便。
较方案一
合适。
所以,最终采取方案二。
§3 模块设计
3.1 整体设计示意
整体设计示意图如图 3-1 所示
液晶
显示
超
声波收
发模块
128
控制芯片
报警
电路
图 3-1 整体设计示意图
根据总体设计图,可以设想根据超声波发射与接收器模块在工作时发
射超声波到接收反射回的回波后,并将发射超声波与接收回波的状态信号
传输到单片机,再经过单片机内部程序的处理,并将计算结果以数据的形
式由 128 芯片 I/O 接口传输到 LCD 液晶显示屏并显示出测量结果的数据,
同时由软件控制测量距离在某一临界值时 128 芯片会向报警电路输出报警
信号,使报警电路正常工作。
实现由 128 芯片实现对超声波模块的声波发
射和接收信号进行监控,并将测量数据传送至 128 芯片进行处理,并将结
果由 LCD 显示出来。
3.2 超声波模块
对于超声波发射和接受部分要考虑其结构复杂,所以在设计时考虑设
计的难易程度和在涉及做成实物时让其简化,所以在设计时我选择用 US-
100 超声波收发模块。
以下是对超声波模块作出说明;
该超声波收发模块可自己产生 40kHz 的方波,并经放大电路驱动超声
波发射探头发射超声波,发射出去的超声波经障碍物反射后由超声波接收
5
探头接收。
经接收电路的检波放大,积分整形,在 ECHO 引脚上产生方波
脉冲,该脉冲宽度与被测距离成线性关系。
具体过程如图 3-2 所示。
图 3-2 US-100 超声波收发模块工作时序图
图 3-2 表明:
只需要在 Trig/TX 管脚输入一个 10us 以上的高电平,系
统便可发出 8 个 40KHZ 的超声波脉冲,然后检测回波信号,当检测到回波
信号后,模块还要进行温度值的测量,然后根据当前温度对测距结果进行
校正,将校正后的结果通过 ECHO/RX 管脚输出。
在此模式下,模块将距离值转化为 340m/s 时的时间值的 2 倍,通过
Echo 端输出一个高电平,可根据此高电平的持续时间来计算距离值。
即距
离值为:
(高电平时间*340m/s)/2
注:
因为距离值已经经过温度校正,此时无需再根据环境温度对超声
波声速进行校正,也就是不管温度多少,声速选择 340m/s 即可。
使用 US-100 超声波收发模块进行距离测量测量时,单片机只需要输出
触发信号,并监视回响引脚,通过定时器计算回响信号宽度,并换算成距
离即可。
该模块简化了发送和接收的模拟电路,工作稳定可靠,其参数指
标如表 3-3 所示。
VCC1
TRIG2
ECHO3
GND4
GND5
US-100
图 3-3 超声波收发模块
应注意测量周期必须在 60 毫秒以上,防止发射信号对回响信号的影
响。
模块共有两个接口,即模式选择跳线和 5pin 接口。
模式选择跳线接口
设置为当安装上短路帽时为 UART(串口)模式,拔掉时为电平触发模式。
3.3 报警电路
图 3-5 所示为 LED 报警电路。
电路设计为低电平输出时 LED 灯亮,
高电平关闭。
而且接在 128 芯片的 A2 脚上,当 A2 脚输出低电平时,
LED 灯闪烁报警。
6
图 3-5 报警电路
3.4 显示电路
图 3-412864 显示模块
1. GND 电源地
2. VCC 电源正(3~5.5V)
3. SCL 脚,在SPI 和IIC 通信中为时钟管脚
4. SDA 脚,在SPI 和IIC 通信中为数据管脚
5. RES OLED 的RES#脚,用来复位(低电平复位)
6. DC OLED 的D/C#E 脚,数据和命令控制管脚
7. CS OLED 的 CS#脚,也就是片选管脚
§4 设计程序及流程图
4.1 软件流程图
本设计软件主程序流程图如图 4-1 所示,外部中断子程序流程图如图
4-2 所示
7
数据初始化
定时器初始化
显示初始化
进入后台while循环
超声波测量触发
有回波否?
有
外部中断子程序
计算距离并显示
距离小于
20cm否?
是
声光报警
延时60ms
无
否
外部中断入口
读取定时器当前值
置测量成功标志
返回
图 4-1 主程序流程图图 4-2 外部中断子程序流程图
4-2.程序
//============================MAIN()===========================
/*********************主函数************************************/
void main(void)
{
int i=0;
int succeedflag_L = 0,succeedflag_R = 0;
double angle = 0;
byte a = 0, b = 0;
int X,Y;
double LF, RF;
double L_average, R_average;
double cos,sin;
SetBusCLK_16M();
PitInit();
PWM_Init();
DDRB=0X00;
DDRA=0XFF;
DDRK=0XFF;
8
LCD_Init();
TrigL=0;
TrigR=0;
PORTA_PA2 = 1;
EnableInterrupts;
LCD_Print(64,0,"距左下角");
LCD_Write_Num(64,2,dis_L,4);
LCD_P6x8Str(88,2,"mm");
LCD_Print(64,3,"距右下角");
LCD_Write_Num(64,5,dis_R,4);
LCD_P6x8Str(88,5,"mm");
LCD_Print(64,6,"角度");
LCD_Write_Num(104,7,angle,2);
//Draw_xy(1,1);
LCD_Print(4,0,"图像显示");
LCD_Print(11,3,"有 BUG!
");
LCD_Print(4,6,"囧囧囧囧");
while
(1)
{
while
(1)
{
if(succeedflag_L == 0)
{
distance_L();
LF = dis_L;
if(((LF*sinnow(a)) < 640) && ((LF*cosnow(a)) < 640))
{
succeedflag_L = 1;
PWMDTY01 = 800;
}
else
{
a++;
pwm_changeL(a);
Dly_ms(400);
}
9
}
if(succeedflag_R == 0)
{
distance_R();
RF = dis_R;
if(((RF*sinnow(b)) < 640) && ((RF*cosnow(b)) < 640))
{
succeedflag_R = 1;
PWMDTY45 = 400;
}
else
{
b++;
pwm_changeR(b);
Dly_ms(400);
}
}
if(a == 8 && b == 8 && RF+LF>800)
{
error_flag = 1;
}
if(succeedflag_L == 1 && succeedflag_R == 1) break;
if( a == 8)break;
if( b == 8)break;
}
if(succeedflag_L == 1 && succeedflag_R == 1)
{
//计算余弦值
cos = cosa(LF,RF);
//计算角度
angle = acos(cos);
10
//sin = sina(angle);
X = (int)(LF*cos);
Y = (int)(64-(RF*sin));
angle = (int)((angle/3.1415926) * 180);
LCD_Write_Num(64,2,LF,4);//距左下角距离显示
LCD_Write_Num(64,5,RF,4);//距右下角距离显示
LCD_Write_Num(104,7,angle,2);//角度显示
//Dly_ms(100);
//Draw_xy(X,Y);
}
if(error_flag == 1)
{
PORTA_PA2 = 0;
LCD_P6x8Str(64,2,"----");
LCD_P6x8Str(64,5,"----");
LCD_P6x8Str(104,7,"--");
Dly_ms(2000);
PORTA_PA2 = 1;
}
a = 0;
b = 0;
error_flag = 0;
succeedflag_L = 0;
succeedflag_R = 0;
pwm_changeL(a);
pwm_changeR(b);
}
}
§5测试结果及分析
11
5.1测试结果分析
通过多次实验,分别对各电路进行了测量、调试和分析。
下表 5-1 是
使用本论文设计的测距仪所进行的实际测量的结果。
表 5-1测距仪测试结果
实际距离(cm)测量结果(cm)误差℅
20.019.05.0
30.029.03.33
40.039.02.5
50.051.02.0
60.060.00
70.070.00
90.089.01.11
100.0100.00
150.0148.01.33
200.0198.01.0
250.0254.01.6
300.0305.01.67
350.0358.02.3
400.0408.02.0
450.0458.01.78
500.0510.02.0
根据表格的资料我们知道, 在 20 厘米至 150 厘米的范围内误差相对很
小;20 厘米之内的范围误差相对较大,主要是超声波在距离测量的过程中
存在着一定范围的盲区,之所以有盲区的出现是因为发出信号务必有一个上
升的时间, 当距离过近时计算机系统已经不可以迅速处理超声波信号, 所
以距离小于 0.2 米测量误差明显增加。
3 米以后的数据误差会显著增大,
这主要是因为发射的功率不够大, 导致接收到的信号比较弱, 从而出现了
部分干扰因素。
但电路引入温度补偿电路后总的实验结果误差在厘米级,
基本上可以满足测量要求。
5.2测试结果误差分析
根据超声波测距仪的原理,我们可以知道测量误差的来源主要有:
驱
动发射和开始启动计时之间的偏差;接收到超声波到波被检测出的滞后;
接收到中断信号至中断响应后中止计时的滞后偏差;计时器自身的误差;
温度对声波速度的影响。
上述五个因素都会引起测量误差,现在详细分析这些误差:
误差一是由于 128 芯片每一次都只能处理一次事件,所以开始发射和
计时按时间顺序完成,有一定的时间差,但命令的速度是否足够快,偏差
是可以忽略不计的。
误差二产生的原因是由于检测电路灵敏程度和判断误差。
实际的超声
接收电路相对确定的输出信号会有一定的滞后性,被接收到的超声波的信
号强弱、超声波被检测电路的原理和判断电路接收灵敏度将影响滞后,这
也是超声波测距的关键。
灵敏度如果过高,会把其他干扰波当作是需要接
12
收的波形,将会导致测量出现差错;灵敏度如果太低,将会限制了检测距
离,因为信号衰减与距离的有很大的关联。
这项误差是导致数据不稳定的
主要来源。
误差三产生的原因是由于 128 芯片中断系统接到中断的信号之后,不
能够立刻响应,起码要完成好当前的指令,有时还需要其它中断服务结束
才能响应,所以这各滞后的时间也是不能准备获取的,故会引起测量的结
果产生一定的误差。
这种误差我们可以使用加快 128 芯片的运行速度和利
用高优先级中断弱化之。
误差四来源于计时器的本身。
为减小此误差可以通过提高计时的最小
单位,减少量化误差,也要选择质量好的晶体。
最后一项误差是源于环境的影响。
温度不同,超声波的传播速度会发
生变化,计时频率会发生变化,导致检测的电路灵敏性也发生变化,一般
可以采用温度补偿来修正音速的变化,后两个变化影响有限可以忽略不计。
§6 总结
经过了一个月的学习和工作,我终于完成对超声波测距仪的设计。
从
开始接到论文题目到设计方案的确定,再到论文文章的完成,每走一步对
于我来说都是新的尝试和挑战。
这也是我在大学期间独立完成的最大的项
目。
在这段时间里,我学到了很多知识也有很多感受。
通过这次设计我开
始独立的学习和探索,查看相关的资料和书籍,让自己头脑模糊的大概到
逐渐清晰,使自己的设计逐步完善起来,每一次改进都使我收益颇丰。
从
中我也了解到不断学习的重要性。
虽然我的设计不是很成熟,还有很多不足之处,但是我付出了自己的
劳动并且认真动手做出了实物,虽然遇到了很多困难,但是我都尽力解决,
这是我引以自豪的地方,我相信只有经历过的人才会明白其中的酸甜苦辣。
这次做设计的经历也使我终身受益,我感受到做设计是要真正用心去
做的一件事情,是真正的自己学习的过程和研究的过程。
没有学习就不可
能有研究的能力,对自己的研究就不会有所突破,那也就不叫设计,希望
这次经历能让我在以后的工作学习中激励我继续进步。
13
§7 附录
7-1.完整电路图
14
7-2.元器件清单
LM29401开关1
128 芯片1电容 0.1uf 2
舵机2电解电容 0.47uf122uf1
超声波模块2470uf1
LED 灯2
128641电阻 5.1k11k1
15