陈昱 电脑鼠电路的改进及搜索算法的研究.docx

上传人:b****7 文档编号:11329577 上传时间:2023-02-27 格式:DOCX 页数:45 大小:1.38MB
下载 相关 举报
陈昱 电脑鼠电路的改进及搜索算法的研究.docx_第1页
第1页 / 共45页
陈昱 电脑鼠电路的改进及搜索算法的研究.docx_第2页
第2页 / 共45页
陈昱 电脑鼠电路的改进及搜索算法的研究.docx_第3页
第3页 / 共45页
陈昱 电脑鼠电路的改进及搜索算法的研究.docx_第4页
第4页 / 共45页
陈昱 电脑鼠电路的改进及搜索算法的研究.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

陈昱 电脑鼠电路的改进及搜索算法的研究.docx

《陈昱 电脑鼠电路的改进及搜索算法的研究.docx》由会员分享,可在线阅读,更多相关《陈昱 电脑鼠电路的改进及搜索算法的研究.docx(45页珍藏版)》请在冰豆网上搜索。

陈昱 电脑鼠电路的改进及搜索算法的研究.docx

陈昱电脑鼠电路的改进及搜索算法的研究

本科毕业设计

 

设计题目:

电脑鼠电路的改进及搜索算法的研究

学生姓名:

陈昱

学号:

200600930012

专业:

应用物理学

指导教师:

杨济民

学院:

物理与电子科学学院

 

毕业设计内容介绍

设计

题目

电脑鼠电路的改进及搜索算法的研究

选题时间

2010.01.11

完成时间

2010.520

设计

字数

11711

关键词

数字PID迷宫算法红外测距电机控制RTOS

设计题目的来源、理论和实践意义:

本论文题目来源于电脑鼠走迷宫竞赛,为了使电脑鼠以更快的速度完成比赛,需对其电路和算法进行研究和改进。

本论文应用了嵌入式技术,在对搜索算法和原有电路进行较深入的研究的基础上,提出相关改进方案。

通过对该毕业设计的研究,以期总结去年比赛的经验和教训,为今后的比赛打下更好的基础。

设计的主要内容及创新点:

提出了对Micromouse615电源电路、传感器电路的改进方案。

给出了电机控制算法、用于纠正姿态的数字PID算法、传感器驱动算法、连续转弯算法、迷宫信息采集算法以及迷宫搜索与迷宫最短路径算法等算法模块。

用基于RTOS的多进程架构实现了上述各算法模块,并用无线模块与上位机进行通讯实现了算法的实时跟踪与可视化。

本文主要的创新点是将数字PID算法应用在姿态修正,用基于RTOS的多进程架构实现实现上述算法模块,以及用远程桌面调试算法。

附:

设计

本人签名:

年月日

目录

中文摘要………………………………………………………………1

英文摘要………………………………………………………………1

一、引言……………………………………………………………2

二、硬件改进………………………………………………………4

(1)电源电路的改进………………………………………………4

1、原电路……………………………………………………4

(1)电机驱动芯片供电……………………………………4

(2)系统供电………………………………………………4

(3)传感器供电………………………………………………………………4

2、改进方案…………………………………………………5

(2)传感器电路的改进……………………………………………6

1、工作原理…………………………………………………6

2、原电路……………………………………………………7

3、改进方案…………………………………………………8

3、底层算法的研究…………………………………………………8

(1)传感器驱动……………………………………………………8

(2)电机控制………………………………………………………11

(3)姿态纠正………………………………………………………13

(4)信息采集………………………………………………………16

(5)连续转弯………………………………………………………18

4、迷宫算法的研究…………………………………………………18

(1)传统算法………………………………………………………18

(2)本文的迷宫算法………………………………………………19

5、算法的实现与调试………………………………………………21

(1)基于uC/OS-II多进程的软件设计…………………………21

(2)软件调试………………………………………………………31

6、总结………………………………………………………………32

7、致谢………………………………………………………………32

参考文献………………………………………………………………33

电脑鼠电路的改进及搜索算法的研究

陈昱

(山东师范大学物理与电子科学学院)

摘要:

简要介绍了电脑鼠走迷宫竞赛。

分析了MicroMouse615中电源系统和红外发射系统的不足,提出了改进方案,并给出了电路图。

给出了电机控制算法、用于姿态纠正的数字PID算法、传感器驱动算法、连续转弯算法、迷宫信息采集算法以及迷宫搜索与最短路径算法等算法模块。

用基于RTOS的多进程架构实现了上述各算法模块,并给出了各个算法的流程图。

用无线模块与上位机进行通讯实现了算法的实时跟踪与可视化。

关键词:

数字PID迷宫算法红外测距电机控制RTOS

中图分类号:

TP242.6

Micromousecircuitimprovementsandsearchalgorithm

ChenYu

(ShandongNormalUniversityCollegesofPhysics&Electronics)

Abstract:

IntroducedtheMicromousemazecompetition.AnalysisedthepowersystemandinfraredemissionsystemofMicroMouse615,proposedaimprovementprogram,andgivedthecircuitdiagram.Motorcontrolalgorithmwasgiven,togetherwiththeDigitalPIDalgorithmtocorrectposture,sensor-drivenalgorithm,continuousturningalgorithms,mazeofinformationacquisitionalgorithmandamazesearchalgorithmwiththeshortestpathalgorithmmodule.RTOS-basedframeworkformulti-processmechanismwasusedtoachievetheabovealgorithmmodule,andtheflowchartofeachalgorithmwasgiven.Real-timetrackingandvisualizationofalgorithmwereachievedthroughcommunicatingwiththehostcomputeralgorithmbywirelessmodule.

Keywords:

DigitalPID;Mazealgorithm;Infraredrange;MotorControl;RTOS

CLASSNO:

TP242.6

 

一、引言

电脑鼠英文名叫做MicroMouse,是使用嵌入式微控制器、传感器和机电运动部件构成的一种智能行走装置(微型机器人)。

电脑鼠要在指定的迷宫中比赛,在迷宫中探索以找出通往终点的路径,并随时掌握自身的位置信息,准确获取墙壁信息并做记录,最终依靠记忆找出走出迷宫的最佳路径,以最短的时间解开迷宫,赢得比赛。

一只优秀的电脑鼠必须具备良好的感知能力,有良好行走能力,优秀的智能算法和强健体魄。

国际电工和电子工程学会(IEEE)每年都要举办一次国际性的电脑鼠走迷宫竞赛,自举办以来参加国踊跃,为此许多大学还开设了“电脑鼠原理和制作”选修课程。

2007年和2008年,上海市计算机学会率先在国内主办了两次IEEE标准电脑鼠走迷宫邀请赛(长三角地区),有三十多所院校参加。

2009年广州致远电子有限公司赞助了全国“IEEE标准电脑鼠走迷宫”邀请赛,共邀请全国9个赛区的52所高校参赛,反响强烈。

如图一所示为电脑鼠,图二所示为比赛迷宫。

图一电脑鼠图二比赛迷宫

为了更好的普及电脑鼠走迷宫竞赛,广州志公远电子设计生产了一款电脑鼠MicroMouse615,它的元件布局图如图三所示。

它的原理图如图四所示。

图三MicroMouse615元件布局图

图四MicroMouse615原理图

本文以MicroMouse615为原始硬件平台,结合2009年参加济南赛区电脑鼠走迷宫竞赛中的经验教训,提出了一套硬件改进方案,并对底层算法和迷宫算法进行了一番研究,最后给出了算法的具体实现以及软件调试方法。

2、硬件改进

(一)电源电路的改进

1、原电路

MicroMouse615采取外接锂电池供电,并为整个系统提供三种不同的电压,分别用来驱动电机、给传感器供电和给微控制器供电。

(1)电机驱动芯片供电

MicroMouse615装有两个永磁式步进电机,系统中直接把电池的输出电压连接到电机的驱动芯片上。

(2)系统供电

LM3S615微控制器需要3.3V供电,电路如图五所示,外接电源经过C36、C2滤波,然后通过SPX1117M-3.3将电源稳压至3.3V。

SPX1117M-3.3是Exar公司生产的LDO芯片,其特点是输出电流大,输出电压精度高,稳定性高。

其输入电压范围为4.7V到12V,输出电流可达800mA。

在其输出端的C3、C4用来改善瞬态响应和稳定性。

图五3.3V电源电路

(3)传感器供电

MicroMouse615使用的红外传感器的工作电压为5V,在一般情况下可以把电池的输出电压经过LDO稳到5V。

但若电池电压较低或瞬间被拉低时,系统就不能为传感器提供稳定的电源,这将严重影响传感器的灵敏度。

所以原电路把系统中已经较为稳定的3.3V电压升到5V。

升压芯片采用Exar公司的低静态电流、高效率的升压芯片SP6641A,升压电路如图六所示。

图六5V升压电路

2、改进方案

整个系统仍由一个7.2V锂电池供电。

电脑鼠在行走过程中,由于需要不停的加减速,电机负载会不停的变化,因此电源电压将在很大范围内变化。

比如锂电池充足电时的电压为7.8V,放完电后的电压为5.0V,如果负载大时会更低。

为了保证供电电压稳定不变,系统采用三端稳压器供电。

原系统采用常见的SPX1117芯片把电压稳到3.3V给微控制器供电,再用SP6641A-5V芯片把3.3V升到5V给传感器接收管供电。

由于SPX1117的输入输出电压差为1.4V,因此SPX1117允许的最小输入电压为3.3+1.4=4.7V。

当某个时刻电机负载较大时电池电压有可能瞬间被拉到很低(尤其是当电池快没电时),甚至会低于SPX1117的最低工作电压4.7V,所以SPX1117的输出电压可能会不稳定。

为了解决这个问题,笔者选择了支持更低压差且微功耗的三端稳压芯片HT1034,其输出电压为3.3V,且输入输出压差低。

HT1034的主要参数如表一示。

同时,为了使芯片稳定工作,减少输出信号的毛刺并消除干扰,在稳压芯片的输入输出端并联了一个电容。

而且将两路供电改成了三路供电,用两片HT1034分别供给微控制器和传感器,如图五所示,这样进一步保证了传感器和微控制器工作电压的稳定,同时也减小了每一路的电流。

表一HT1034的主要参数

图五三路供电

注意到原红外接收管的工作电压为4.5V至5.5V,HT1034输出的3.3V电压无法提供其工作。

因此选择了一块工作电压为3.3V的红外接收管从而避免了使用升压芯片,使电路更加简单高效。

(2)传感器电路的改进

1、工作原理

MicroMouse615使用一体化红外接收头IRM8601S,它内部集成自动增益控制电路、带通滤波电路、解码电路及输出驱动电路。

当连续收到38KHz的红外线信号时,将产生脉宽10ms左右的低电平,有效电平维持时间TWL的范围为400μs

如果没有收到信号,便在TWL结束后输出高电平。

再根据数据手册,其调制信号应为周期1000us的方波。

IRM8601S内部的带通滤波器的中心频率为38KHz,所以发射红外线的载波信号为38KHz时经过滤波器衰减最小,传感器最灵敏,越是偏离就衰减的越多,这是一体化接收头抗干扰的关键原理。

有效发射信号是指接收头所能识别的信号,改变有效发射信号的方法有两种:

1.改变输出信号的能量,改变输出信号的能量又有两种方法:

(1)改变输出信号的幅度

(2)改变输出信号的占空比

2.改变输出信号的频率,由于一体化接收头是38KHz的带通滤波器,所以发射信号

的频率偏离38KHz越多,能检测到的有效信号就越少。

这样也就可以改变有效发射信号的强度。

2、原电路

原电路的红外发射电路如图六所示。

通过W4调节红外线发光管的发光强度。

图六发射电路图七接收电路

接收电路如图七所示。

U4为一体式红外线接收传感器IRM8601S,,它内部集成自动增益控制电路、带通滤波电路、解码电路及输出驱动电路。

但由于它是开漏输出,所以输出端需接一个上拉电阻,见图七中的R10。

其中R4是限流电阻。

由图六可知,每个发射二极管接一个电位器后直接接到微控制器的PWM引脚上,在实际调试中发现这个电路虽然简单易行但存在三个问题。

第一,由于二级管工作曲线的非线性,实际调节时不能充分利用电位器的调节作用,大大增加了调节的难度和精度。

第二,由于五个发射模块彼此独立,故需要调节五次,调节次数多,容易照成调节的不对称。

第三,不能通过程序来控制发射电流的大小。

3、改进方案

改进后的电路如图六所示,三级管的作用是作为一个电流源来驱动红外发射二级管。

运放LM324作为一个电压跟随器,跟随PWM的输出。

通过合理调配各电阻的阻值,使三级管工作在线性区。

当调节电位器时相应的改变PWM的占空比从而实现对发射电流大小的控制。

图六改进后的红外发射电路

3、底层算法的研究

(1)传感器驱动

电脑鼠在迷宫中行进时要随时侦测路面情况。

它的左右传感器不但要检测是否存在支路(没有挡板就是一条支路)还要避免和挡板碰触。

因此电脑鼠每一侧就需要完成两组参数的检测,一组检测稍微远一点的距离是否有墙,判断是否存在支路,另一组检测稍微近一点的距离,判断是否即将碰触挡板。

如果只用一组传感器来完成两组参数的检测的话,若使用非调制的普通红外接收头,可以根据接收到的信号的强弱来计算距离,可是非调制的抗干扰差,但是如果使用调制的一体化接收头,检测信号输出的是数字信号,这样通过检测传感器输出信号的强弱来计算距离的方法肯定行不通。

解决的方法是把上面测距的原理反过来,可以通过改变有效发射信号强度,当接收头刚好能接收到信号时,记录下此时发射的强度,这样也就可以大致测算出距离。

本文让五个发射头轮流发射38KHz及35KHz的调制信号,由上文可知这可以改变有效发射信号的强度,从而能够粗略判断障碍物的远近距离,完成两组参数的检测,于是可以指示出没有障碍物、检测到障碍物和障碍物靠的太近三种状态。

然而,如果五个发射管同时发射红外信号,由于漫反射的作用,信号之间可能发生相互干扰,如图七所示。

左前发射头发射的信号错误的被前接收头收到了。

解决这一问题的方法是分组分时发射。

所谓分组分时发射是指左、前、右三个传感器为一组同时发射,左前、右前两个传感器为一组同时发射,这样做的目的是使组内各个传感器的发射头彼此垂直,避免相互间的干扰。

所谓分时发射是指当第一组发射时,第二组接收,而当第一组接收时第二组发射。

如图八所示,其中PWM1连接斜左、斜右两个传感器,PWM2连接左、前、右三个传感器。

图七漫反射示意图

图八分时分组发射示意图

PWM2轮流以38KHz和35KHz驱动第一组发射头(左、前、右),检测左、前和右的远距离和近距离。

PWM2发射时PWM1停止发射。

而当PWM2停止发射时,PWM1以35KHz或38KHz检测第二组发射头(左前和右前)。

这样做的目的是使两组传感器可并行的工作,缩短一倍的采样周期。

红外线在空气中传播和反射受外界的干扰,如果测量距离刚好处在能够检测到信号的临界状态,保持距离不变,传感器输出信号也可能不确定。

这样就需要在合适的时机读取接收头输出端的状态。

图九为IRM8601S信号处于临界状态时用逻辑分析仪抓到的波形图,Pulse为38KHz的输出信号,Send高电平有效,有效时发送红外线脉冲,OUT为一体化接收头输出端。

由图可知当刚刚结束上次发射时读接收头输出端的状态,此时正处于OUT有效信号的中间,读能保证正确检测到信号。

图九传感器检测波形图

综上所述,传感器驱动的流程图如图十所示。

图十传感器流程图

(二)电机控制

为了减少轮胎的打滑,降低车身的晃动,防止电机的震荡与失步,一种有效地解决方案是对电机进行匀加减速的控制,本系统使用的是步进电机。

步进电机不能像直流电机那样自动加减速,它的的加减速需要通过设定节拍的频率来实现。

假设每步的平均速度等于中心时间的速度。

电机转过的步数n为:

由①②得

但上式需要开平方,不适合没有浮点运算功能的LM3S615处理器,因此还需进一步变换

由泰勒公式

代入③式可近似得到

将n换成i,得:

减速过程是加速过程的逆过程,如果减速过程中要跑m步,同理可得

由表中数据可以看出除C1/C2外其他比值误差都很小,故可单独令C1=0.4142C0,而C2,C3,C4……Cn可由公式⑤或⑥计算出。

表二近似误差

n

精确的Cn/Cn-1

近似的Cn/Cn1

近似值误差

1

0.4142

0.6000

0.4485

2

0.7673

0.7778

0.0136

3

0.8430

0.8462

0.00370

4

0.8810

0.8824

0.00152

5

0.9041

0.9048

7.66×10-4

10

0.9511

0.9512

9.42×10-5

100

0.9950

0.9950

9.38×10-8

1000

0.9995

0.9955

9.37×10-11

实际使用公式求每步定时器初值时,可以把事先计算好的加速和减速表存储在微控制器的ROM中,需要时直接查表即可。

例如下面这个数组,存储了加速度为1200步/s2的加速度表。

constunsignedintAccelTable1200[120]={

2041241,845482,657598,556430,490968,444210,408674,380490,357430,338110,321617,307323,294780,283657,273705,264732,256587,249150,242324,236030,230203,224787,219736,215011,210578,206409,202478,198763,195246,191909,188737,185718,182839,180090,177461,174944,172531,170216,167991,165851,163791,161806,159892,158044,156259,154533,152863,151246,149679,148160,146686,145255,143865,142515,141202,139925,138682,137471,136291,135141,134020,132926,131859,130817,129799,128805,127833,126883,125954,125045,124155,123284,122431,121596,120778,119976,119190,118419,117663,116921,116193,115478,114777,114088,113411,112746,112093,111451,110820,110200,109590,108990,108400,107819,107248,106686,106132,105587,105050,104521,104000,103487,102981,102483,101992,101508,101031,100560,100096,99638,99187,98742,98303,97869,97441,97019,96602,96191,95785,95384};

(三)姿态纠正

由于左右轮摩擦以及初始位置方向不正,要使电脑鼠在直线的迷宫中正常运行,需要电脑鼠在前进的过程中不断调整姿势,以免碰到挡板。

电脑鼠在迷宫中理想的姿势是处于迷宫格的中央,且前进方向平行于挡板,如图七所示。

图中箭头为左前右前传感器能够检测到的大致距离。

图七正确姿势图八偏左图九偏右

图十斜左图十一斜右

在实践中发现电脑鼠在迷宫格中姿态不需要时时刻刻调整,只需当两侧都有挡板时对电脑鼠姿态进行纠正,这样可以使算法更加简洁高效。

当且仅当电脑鼠处在如图八、九、十、十一所示位置时才需要执行纠正。

仔细观察这四种姿势可发现一个共同点,即当发现左边信号强于右边时应向右转,当发现右边信号强于左边时应向左转。

姿态纠正算法的核心是当发现需要对姿态进行纠正时,如何合理控制其左转右转的快慢。

理想的姿态修正算法应该使电脑鼠不仅可以很快的回到中心线上而且在中心线附近的震荡越小越好。

为了同时满足以上两个要求,策略是采用数字PID算法,比例控制具有快速对现状进行纠正的特性,使系统纠正更加灵敏快速,积分控制具有利用历史状态进行修正的特性,可以提高系统的稳态性能,微分控制具有利用系统未来状态进行修正的特性,可以改善系统的动态性能。

数字PID控制的结构图如图十二所示。

图十二数字PID控制结构图

由图可知:

将模拟量转换为数字量:

则:

实际的控制系统中,存在着饱和特性。

当控制变量达到一定值后,系统的输出变量不再增长,系统进入饱和区。

这就要求系统的控制变量必须限制在某个范围之内,即

采用积分分离法:

有关比例系数Kp,积分系数Ti,微分系数Td的调节可参照以下口诀:

参数整定找最佳,从小到大顺序查

先是比例后积分,最后再把微分加

曲线震荡很频繁,比例增益要减小

曲线漂浮绕大弯,比例增益要增大

曲线偏离回复慢,积分时间往下降

曲线波动周期长,积分时间再加长

曲线震荡频率快,先把微分降下来

动差大来波动慢,微分时间应加长

当确定了全部参数后,可定义一个数字PID函数,如下:

unsignedintPID(unsignedinte1,unsignedinte2,unsignedinte3){

returnP*(e3-e2)+I*e3+D*(e3-2*e2-e1);

}

其中P=KPI=KID=KD

该函数在下文介绍姿态纠正进程时会被用到。

姿态纠正算法的实现可参照30页图十五。

(四)信息采集算法

要想使电脑鼠具备智能选路的本领,必须使其具备记忆迷宫信息的能力,除此之外电脑鼠还需记忆当前所在迷宫格和前进方向的信息,这些信息将随着电脑鼠在迷宫格中行走而不断被刷新。

用CurDir存储当前方向,用CurPosition[1][1]存储当前坐标,用Cellshape[16][16]存储每个迷宫格的形状,用CurEye存储当前传感器采集到迷宫格墙壁情况。

信息采集算法的核心是确定何时刷新信息以及输入参数。

为此用三张表格来表示这三个刷新逻辑。

 

表三CurDir刷新逻辑

触发事件j件

参数

N

S

W

E

左转执行完

W

E

S

N

右转执行完

E

W

N

S

后转执

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1