迷宫小车.doc

上传人:叶*** 文档编号:38535492 上传时间:2022-09-04 格式:DOC 页数:27 大小:75.50KB
返回 下载 相关 举报
迷宫小车.doc_第1页
第1页 / 共27页
迷宫小车.doc_第2页
第2页 / 共27页
点击查看更多>>
资源描述

《迷宫小车.doc》由会员分享,可在线阅读,更多相关《迷宫小车.doc(27页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、综合课程设计报告题目: 迷宫电脑鼠的设计 二级学院 计算机科学与工程学院 专 业 计算机科学与技术 班 级 112030701 学生姓名 李 洋 学号 11203070314 指导教师 黄贤英 刘小洋 时 间 2015年1月17日 第 17 页目 录目 录I摘 要II1、课程设计的目的及要求11.1 课程设计目的11.2课程设计要求12、题目分析12.1 功能分析12.2 性能需求分析22.3 算法分析32.3.1 探测策略32.3.2 标记32.3.3阻断33、系统设计43.1系统整体设计43.1.1单片机43.1.2.时钟震荡电路53.1.3供电及充电电路53.2硬件设计63.2.1 硬件

2、结构设计63.2.2 传感器组设计73.2.3 电机驱动电路设计83.3软件设计93.3.1 电脑鼠正常行走程序设计93.3.2 蓝牙遥控程序设计154 总结174.1 所遇问题及解决办法174.2 心得体会17摘 要本次做的迷宫电脑鼠的设计实验中,迷宫电脑鼠可以通过利用传感器识别周围是否有障碍物,来发送信号给单片机,单片机通过下载好的驱动程序调用相关算法控制小车的左右电机,实现小车走转弯、右转弯、直走等一系列动作。迷宫电脑鼠在行走路线走偏了,可以通过检测是否准备碰墙,自动调整行走路线,回到预定路线。该迷宫电脑鼠可以一定的算法,遍历整个迷宫,记录二维8*8的迷宫的坐标信息,通过坐标信息找到终点

3、与找到多条到达终点的路径,并且找到一条最短到达终点的路径,沿路返回起点进行最后的冲刺到达终点。关键词:嵌入式或单片机微控制器,电脑鼠,智能算法,蓝牙,无线遥控1、课程设计的目的及要求1.1 课程设计目的本项目要实现的是用电脑鼠找出迷宫中通往终点的最短路径并以最快速度到达迷宫的终点。电脑鼠从迷宫起点位置前进,由程序判断通过前视距离探测器探测到的迷宫状况,控制驱动机构前进或转向并记录路径与距离(控制车轮编码器可完成),由于起点位置与终点位置是已知的,虽然不知道具体路径,但通过编写算法程序即可找到最短路径,在重新开始时便可以最快速度从最短路径到达终点。(1)了解并熟悉电子元器件焊接技术与方法。(2)

4、了解并熟悉电子元器件工作原理与功能特性。(3)掌握单片机对编码电机的控制与红外发射与接收的控制。(4)熟练运用keil软件进行单片机的C语言编程。1.2课程设计要求设计的电脑鼠应该具有三种最基本的能力: 拥有稳定、准确、快速的行走能力 能争取判断环境的能力(如有墙、有路) 记忆路径的能力总之,电脑鼠的设计目标是:在最短的时间内找到一条通往总店的最短路径,并以最快速度从起点到达终点。蓝牙遥控部分:用手机使用蓝牙无线连接到小车,通过发送命令遥控小车实现前进、左转、右转、向后转。2、题目分析2.1 功能分析(1) 迷宫电脑鼠能够在迷宫中随意穿行。迷宫一格长为18cm,各个转角为90,然后需要在迷宫中

5、随意穿行,需要迷宫电脑鼠的基本直行,与转向,在其中加入遇到墙时小车的修正,再运用右手法则等算法便可达到初步的在迷宫中随意穿行的目的。(2) 迷宫电脑鼠能够在迷宫中记忆路径。创建一格8*8的二维数组,初始化其中的数字,迷宫的一格对应二维数组的一个位置,标记的位置代表走过的位置。这样数组中被标记的数字就为迷宫电老鼠走过的路径。(3)迷宫电脑鼠能够在找到终点坐标并能返回原点。在迷宫电脑鼠走的过程中,将要到达的单元格的最高四位记录小车到达该单元格方向的反方向,如此利用回溯算法,可知回来的路线的方向。如图2.1。图 2.1设小车在箭头处,坐标为(p,q)处,mappq=0xf*,小车将要到达坐标为(p,

6、q+1)处,在进入(p,q+1)前,将mappq+1&=0xdf,即mappq+1=0x1101 *,高四位描述了改坐标下方为小车进入方向。由于小车没走一个未走过的格子,就会也只会修改一个方向的信息,因此记录小车进入该格子的方向是唯一的。2.2 性能需求分析1、 迷宫电脑鼠外形合理,符合88迷宫场地需求。迷宫小车如图2.2,迷宫如图2.3图 2.2 图 3.32、 迷宫电脑鼠运行稳定,能够正常在迷宫中随意穿行。在普通的行走中,由于外界原因回使车走离出原来应该有的路线,然后与墙体碰撞,为了使其不要碰撞,左右的1,3传感器感应左右是否有阻碍,在动作里面添加相应的感应函数,做出动作修改,使小车尽量不

7、与墙碰撞。3、迷宫电脑鼠走到终点所需的时间越短越好,最长应不得超过2分钟。2.3 算法分析2.3.1 探测策略探测策略主要有两种:(1)全迷宫探索策略,即将迷宫的所有单元均搜索一次,从中找出最佳的行走路径。这种策略需要有足够的时间或探测次数,但在IEEE竞赛规则中每场竞赛只有15分钟的时间,因此是不可能的。(2)部分迷宫探索策略,即在有限的时间或探测次数下,只探测迷宫的一部分,从中找出次最佳的路径,显然只能采用这种策略。电脑鼠在一巷道内行走,如果最后无路可走,则该巷为死巷。电脑鼠在任一单元内,可能的行走方向最多只有三个(前、左、右),如果有二个或二个以上的可能行走方向,称为交叉,遇有交叉时,由

8、于有多个可以行走的方向,在行走方向的选择上,可有下面的几种选择法则:l右手法则:遇有交叉时,以右边为优先的前进方向,然后是直线方向、左边方向。l左手法则:遇有交叉时,以左边为优先的前进方向,然后是直线方向、右边方向。l中左法则:遇有交叉时,以直线为优先的前进方向,然后是左边方向、右边方向。l与此类似的还有中右法则。l乱数法则:遇有交叉时,取随机值作为前进方向。l向心法则:由于终点在迷宫的中心,遇有交叉时,以向迷宫中心的方向为优先的前进方向。2.3.2 标记为了记忆迷宫的详细信息,需要对迷宫单元的位置进行线路标记。全迷宫共有88个单元组成,可采用二维坐标方式标记,即用每个单元的XY坐标表示,如起

9、点可标记为(0,0),终点为(7,7)。此外,还需要对迷宫单元的可行进方向进行标记,可采用绝对方位或相对方位二种方式。l绝对方位:这是一种与电脑鼠行进方向无关的标记方式,以一个四位的二进制数,分别表示“东”“西”“南”与“北”四个方向。以1表示允许行进(无墙壁),0表示不允许行进(有墙壁)。l相对方位:这是一种与电脑鼠行进方向有关的标记方式,以一个三位的二进制数即可实现标记,分别表示“前”“左”“右”,以1表示允许(无墙壁),0表示不允许(有墙壁)。2.3.3阻断在电脑鼠试跑过程中或在最后冲刺时,需要对部分路径进行“阻断”,即在发现某条路径是死路(只有入口而无出口)时,在该路径的入口处(一般是

10、交叉点)设置标记,即将入口的线路标记由1改为0。3、系统设计3.1系统整体设计电脑鼠的硬件电路结构图如下。单片机传感器组5传感器组4传感器组3传感器组2传感器组138KHz载波发生器3-8译码选择器显示器蜂鸣器电机1电机2驱动电路1驱动电路2操作按键图3.1 硬件电路结构框图3.1.1单片机本次课程设计使用的单片机型号为STC89C52的8位单片机。STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU与在

11、系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。单片机电路图如3.1.1。图3.1.13.1.2.时钟震荡电路时钟震荡电路作用:时钟电路时微计算机的心脏,它控制着计算机的工作节奏。CPU就是通过复杂的时序电路完成不同的指令功能的。时钟震荡电路图如图图3.1.23.1.3供电及充电电路作用:为单片机系统供能。此充电电路设计通过一个开关控制,当开关拨到SW位置时,系统通过锂电池供能;当开关拨到SW SPOT位置时,系统通过充电线供能,并为锂电池蓄电。供电及充电电路如图3.1.3。图3.1.33.2硬件设计3.2.1 硬件结构设计1.传感器组电路设计该

12、部分包含五组红外传感模块与对应的传感器驱动模块,红外传感模块分为红外发射与红外接收传感器,传感器驱动模块主要包括了74HC138译码器、74HC00芯片与电位器。(1) 红外发射与接收传感器组图3.2.1红外发射与接收传感器组作用:检测外界障碍物信息。(2) 74HC138译码器图3.2.274HC138译码器作用:扩展IO口,实现引脚的逐一控制。(3) 74HC00芯片图3.2.374HC00芯片作用:连接到红外发射器,使之产生38KHz的光波。(4) 电位器图3.2.4电位器调节器作用:实现对红外发射器发射光波远近的控制。2.电机驱动电路设计该部分主要包含两块L9110电机驱动芯片。图3.

13、2.5L9110电机驱动芯片作用:控制电机的转动圈数与正反转。3.2.2 传感器组设计(1) 传感器的选择本次中选择的传感器为HS0038,它的作用为红外接收探头,接受红外信号频率为38kHz,周期约26us,HS0038电子元件有3个引脚,分别是1,2与3号引脚分别连接在VCC与GND(即电源的两端),不难理解这两个引脚是用来给HS0038供能使之工作的,1号与irR1引脚相连,与单片机的IO口连接到一起,如此实现对HS0038信号的采集。如图3。图 4.2.6(2)74HC138译码器3-8译码器(如图4)电路的输入变量有三个即D0,D1,D2,输出变量有八个Y0-Y7,对输入变量D0,D

14、1,D2译码,就能确定输出端Y0-Y7的输出端变为有效(低电平),从而达到译码目的。图3.2.7在发射红外信号时为了达到分时的效果,通过三个口实现对5个口的输出控制,并且每次输出一个3-8译码器在其中有着一定的作用,不仅节约了引脚,还能到达分时(为防止多组传感器之间的互相干扰)输出一个信号的目的。(3)载波发生器载波发生器就是把载波信号转换器。把其它信号转换成数字信号通过载波传输的。74HC00芯片(图5)集成了4个与非门,其作用是通过硬件来产生与HS0038接收频率一致的红外线。图3.2.8(4)传感器的调试电位器控制的LED发射光波的强弱,实际上是调节电阻大小来改变给红外二极管的电压,电位

15、器中间接正极,两边均为负极。3.2.3 电机驱动电路设计该部分主要包含两块L9110电机驱动芯片,L9110是为了控制与驱动电机设计的两通道推挽式功率放大专用集成电路器件,他分立电路集成在单片IC之中,使外围期间成本降低,整机可靠性提高。该芯片有两个TTL/CMOS兼容电平的输入,具有良好的抗干扰性;两个输出端能直接驱动电机的正反向运动,它具有较大的电流驱动能力。图3.2.9L9110电机驱动芯片作用:控制电机的转动圈数与正反转。3.3软件设计3.3.1 电脑鼠正常行走程序设计流程图:图3.3.2小车直走图3.3.3小车向左向右转弯代码:/启动左电机void startML(unsigned

16、char check) if(check=1)ML1 = 0; ML2 = 1; else ML1 = 1; ML2 = 0; /启动右电机void startMR(unsigned char check) if(check=1) MR1 = 1; MR2 = 0;else MR1 = 0; MR2 = 1;/停止左电机void stopML() ML1 = 0; ML2 = 0;/停止右电机void stopMR() MR1 = 0; MR2 = 0;/直走void go(unsigned char k)/T0初始化EA=1;ET0=1;/开T0中断TMOD&=0xf6;TMOD|=0x06

17、;/设定T0模式2,8位自动重装值定时计数器TH0=256-ICP;TL0=256-ICP;/设定T0计数初值,定义中断脉冲数TR0=1;/启动T0计数/T1初始化EA=1;ET1=1;/开T1中断TMOD&=0x6f;TMOD|=0x60;/设定T1模式2,8位自动重装值定时计数器TH1=256-ICP;TL1=256-ICP;/设定T1计数初值,定义中断脉冲数TR1=1;/启动T1计数intCount0=0;intCount1=0;while(intCount0k)|(intCount1intCount1)stopMR();startML(1);elsestopML();startMR(1

18、);stopML();stopMR();/左转90度void turnL(unsigned char i)/T0初始化EA=1;ET0=1;/开T0中断TMOD&=0xf6;TMOD|=0x06;/设定T0模式2,8位自动重装值定时计数器TH0=256-ICP;TL0=256-ICP;/设定T0计数初值,定义中断脉冲数TR0=1;/启动T0计数/T1初始化EA=1;ET1=1;/开T1中断TMOD&=0x6f;TMOD|=0x60;/设定T1模式2,8位自动重装值定时计数器TH1=256-ICP;TL1=256-ICP;/设定T1计数初值,定义中断脉冲数TR1=1;/启动T1计数intCoun

19、t0=0;intCount1=0;while(intCount0i)|(intCount1intCount1)stopMR();startML(0);elsestopML();startMR(1);stopML();stopMR();/右转90度void turnR(unsigned char i)/T0初始化EA=1;ET0=1;/开T0中断TMOD&=0xf6;TMOD|=0x06;/设定T0模式2,8位自动重装值定时计数器TH0=256-ICP;TL0=256-ICP;/设定T0计数初值,定义中断脉冲数TR0=1;/启动T0计数/T1初始化EA=1;ET1=1;/开T1中断TMOD&=0

20、x6f;TMOD|=0x60;/设定T1模式2,8位自动重装值定时计数器TH1=256-ICP;TL1=256-ICP;/设定T1计数初值,定义中断脉冲数TR1=1;/启动T1计数intCount0=0;intCount1=0;while(intCount0i)|(intCount1intCount1)stopMR();startML(1);elsestopML();startMR(0);stopML();stopMR();/向后转 void turnback(unsigned char i)/T0初始化EA=1;ET0=1;/开T0中断TMOD&=0xf6;TMOD|=0x06;/设定T0模

21、式2,8位自动重装值定时计数器TH0=256-ICP;TL0=256-ICP;/设定T0计数初值,定义中断脉冲数TR0=1;/启动T0计数/T1初始化EA=1;ET1=1;/开T1中断TMOD&=0x6f;TMOD|=0x60;/设定T1模式2,8位自动重装值定时计数器TH1=256-ICP;TL1=256-ICP;/设定T1计数初值,定义中断脉冲数TR1=1;/启动T1计数intCount0=0;intCount1=0;while(intCount0i)|(intCount1i)if(intCount0intCount1)stopML();startMR(0);elsestopMR();st

22、artML(1);stopML();stopMR();3.3.2 蓝牙遥控程序设计void yanshi(unsigned int ms)unsigned char k;while(ms-)for(k=0;k200;k+)void init( ) / 初始化子函数TMOD=0x20; /设定T1定时器的工作方式为2TH1=0xfd; /T1定时器装初值TL1=0xfd; /T1定时器装初值TR1=1; /启动定时器REN=1; /允许串口接受SM0=0; /设定串口工作方式1/SM1=1; EA=1; /开总中断ES=1; /开串口中断void main() init( ); while(1)

23、 if(flag = 1) SBUF=a;b=SBUF; while(!TI);TI=0; ES=1;if(b=8)go(98);yanshi(10);if(b=4)turnL(41);yanshi(10);if(b=6)turnR(41);yanshi(10);if(b=8)turnback(90);yanshi(10);if(b=1)turnL(4);yanshi(10);if(b=3)turnR(4);yanshi(10); ET1= 0;init( ); flag = 0;void set() interrupt 4 /中断服务程序 RI=0; a=SBUF; flag = 1;4 总

24、结4.1 所遇问题及解决办法(1)刚开始时,将焊接好89SC52芯片的小车主板拿去下驱动程序,结果发现下不了驱动程序,后来经过将芯片与下载电路的元件重新焊接一遍,才可以下载驱动程序,原因是芯片与下载电路中的某个地方存在虚焊。(2)焊好传感器的板子,下载好传感器驱动程序,发现与传感器连接的二极管在接收到有障碍物的信号时,没有亮,一直处于熄灭状态。后来经过请教同学与教师,发现是与传感器连接的可调电阻太大了,将电阻调小二极管才亮了。(3)编写的直走程序下载到焊好的小车中,发现小车并没有按想象中那样直走,而是走偏了,经过请教教师与同学,由于小车存在硬件方面的原因,很难通过同时直接驱动左右电机让小车直走

25、,需要通过定时器计数,控制左右电机启动才可以很好让小车直走,尽量减少小车走偏。(4)编写好的向左向右程序下载到焊好的小车中,发现小车转弯的角度超过90度,经过思考,发现是控制转弯的参数太大了,需要逐步调小,才让小车向左右转弯很接近90度。(5)将写好正常行走的驱动程序下载到焊好的小车放到迷宫中行走,发现小车走着走着就会碰到墙,不能顺利走迷宫,经过思考,原来小车行进中会存在走偏的情况,需要在行进中走偏了进行微调小车方向,让小车重新走回预定的路线。4.2 心得体会通过做这次迷宫电脑鼠的设计实验,让我获益良多。刚开始做这个实验,认为这个实验做起来很难,害怕自己做不了,后来发现做这个实验并没有想象中那么难。本次课程设计提高了我的写程序能力与算法思想,比如遍历迷宫、向心法则、单一法则、小车方向计算、回溯算法与最短路生成算法等。结果这个迷宫电脑鼠还是让我成功做出来了,虽然做出来的迷宫电脑鼠还存在一些瑕疵,但是已经让我感到莫大的成就感。特别是自己做出了蓝牙遥控,让我对嵌入式的兴趣大增。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 合同协议

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com