迷宫小车
(1)了解并熟悉电子元器件焊接技术与方法。
(2)了解并熟悉电子元器件工作原理和功能特性。
(3)掌握单片机对编码电机的控制与红外发射与接收的控制。
(4)熟练运用keil软件进行单片机的C语言编程。
1.2
设计的电脑鼠应该具有三种最基本的能力:
拥有稳定、准确、快速的行走能力
能争取判断路结构图如下。
图3.1 硬件电路结构框图
3.1.1
本次课程设计使用的单片机型号为STC89C52的8位单片机。STC89C52是STC公司生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。单片机电路图如3.1.1。
相对方位:这是一种与电脑鼠行进方向有关的标记方式,以一个三位的二进制数即可实现标记,分别表示“前”“左”“右”, 以1表示允许(无墙壁),0表示不允许(有墙壁)。
2.3.3
在电脑鼠试跑过程中或在最后冲刺时,需要对部分路径进行“阻断”,即在发现某条路径是死路(只有入口而无出口)时,在该路径的入口处(一般是交叉点)设置标记,即将入口的线路标记由1改为0。
为了记忆迷宫的详细信息,需要对迷宫单元的位置进行线路标记。全迷宫共有8×8个单元组成,可采用二维坐标方式标记,即用每个单元的XY坐标表示,如起点可标记为(0,0),终点为(7,7)。此外,还需要对迷宫单元的可行进方向进行标记,可采用绝对方位或相对方位二种方式。
绝对方位:这是一种与电脑鼠行进方向无关的标记方式,以一个四位的二进制数,分别表示“东”﹑“西”﹑“南”和“北”四个方向。以1表示允许行进(无墙壁),0表示不允许行进(有墙壁)。
左手法则:遇有交叉时,以左边为优先的前进方向,然后是直线方向、右边方向。
中左法则:遇有交叉时,以直线为优先的前进方向,然后是左边方向、右边方向。
与此类似的还有中右法则。
乱数法则:遇有交叉时,取随机值作为前进方向。
向心法则:由于终点在迷宫的中心,遇有交叉时,以向迷宫中心的方向为优先的前进方向。
2.3.2
图3.1.1
3.1.2.
时钟震荡电路作用:时钟电路时微计算机的心脏,它控制着计算机的工作节奏。CPU就是通过复杂的时序电路完成不同的指令功能的。时钟震荡电路图如图
图3.1.2
3.1.3
作用:为单片机系统供能。此充电电路设计通过一个开关控制,当开关拨到SW位置时,系统通过锂电池供能;当开关拨到SW SPOT位置时,系统通过充电线供能,并为锂电池蓄电。供电及充电电路如图3.1.3。
(2)迷宫电脑鼠能够在迷宫中记忆路径。
创建一格8*8的二维数组,初始化其中的数字,迷宫的一格对应二维数组的一个位置,标记的位置代表走过的位置。这样数组中被标记的数字就为迷宫电老鼠走过的路径。
(3)迷宫电脑鼠能够在找到终点坐标并能返回原点。
在迷宫电脑鼠走的过程中,将要到达的单元格的最高四位记录小车到达该单元格方向的反方向,如此利用回溯算法,可知回来的路线的方向。如图2.1。
图2.1
设小车在箭头处,坐标为(p,q)处,map[p][q]=0xf*,小车将要到达坐标为(p,q+1)处,在进入(p,q+1)前,将map[p][q+1]&=0xdf,即map[p][q+1]=0x1101 *,高四位描述了改坐标下方为小车进入方向。由于小车没走一个未走过的格子,就会也只会修改一个方向的信息,因此记录小车进入该格子的方向是唯一的。
记忆路径的能力
总之,电脑鼠的设计目标是:在最短的时间内找到一条通往总店的最短路径,并以最快速度从起点到达终点。
蓝牙遥控部分:用手机使用蓝牙无线连接到小车,通过发送命令遥控小车实现前进、左转、右转、向后转。
2
2.1
(1)迷宫电脑鼠能够在迷宫中随意穿行。
迷宫一格长为18cm,各个转角为90°,然后需要在迷宫中随意穿行,需要迷宫电脑鼠的基本直行,与转向,在其中加入遇到墙时小车的修正,再运用右手法则等算法便可达到初步的在迷宫中随意穿行的目的。
综合课程设计报告
题目:迷宫电脑鼠的设计
二级学院计算机科学与工程学院
专 业计算机科学与技术
班 级112030701
学生姓名李 洋学号11203070314
指导教师黄贤英 刘小洋
时 间2015年1月17日
摘
本次做的迷宫电脑鼠的设计实验中,迷宫电脑鼠可以通过利用传感器识别周围是否有障碍物,来发送信号给单片机,单片机通过下载好的驱动程序调用相关算法控制小车的左右电机,实现小车走转弯、右转弯、直走等一系列动作。迷宫电脑鼠在行走路线走偏了,可以通过检测是否准备碰墙,自动调整行走路线,回到预定路线。该迷宫电脑鼠可以一定的算法,遍历整个迷宫,记录二维8*8的迷宫的坐标信息,通过坐标信息找到终点和找到多条到达终点的路径,并且找到一条最短到达终点的路径,沿路返回起点进行最后的冲刺到达终点。
电脑鼠在一巷道内行走,如果最后无路可走,则该巷为死巷。电脑鼠在任一单元内,可能的行走方向最多只有三个(前、左、右),如果有二个或二个以上的可能行走方向,称为交叉,遇有交叉时,由于有多个可以行走的方向,在行走方向的选择上,可有下面的几种选择法则:
右手法则:遇有交叉时,以右边为优先的前进方向,然后是直线方向、左边方向。
关键词:嵌入式或单片机微控制器,电脑鼠,智能算法,蓝牙,无线遥控
1
1.1
本项目要实现的是用电脑鼠找出迷宫中通往终点的最短路径并以最快速度到达迷宫的终点。
电脑鼠从迷宫起点位置前进,由程序判断通过前视距离探测器探测到的迷宫状况,控制驱动机构前进或转向并记录路径和距离(控制车轮编码器可完成),由于起点位置和终点位置是已知的,虽然不知道具体路径,但通过编写算法程序即可找到最短路径,在重新开始时便可以最快速度从最短路径到达终点。
3、迷宫电脑鼠走到终点所需的时间越短越好,最长应不得超过2分钟。
2.3
2.3.1
探测策略主要有两种:
(1)全迷宫探索策略,即将迷宫的所有单元均搜索一次,从中找出最佳的行走路径。这种策略需要有足够的时间或探测次数,但在IEEE竞赛规则中每场竞赛只有15分钟的时间,因此是不可能的。
(2)部分迷宫探索策略,即在有限的时间或探测次数下,只探测迷宫的一部分,从中找出次最佳的路径,显然只能采用这种策略。
2.2
1、迷宫电脑鼠外形合理,符合8×8迷宫场地需求。迷宫小车如图2.2,迷宫如图2.3
图2.2图2.3
2、迷宫电脑鼠运行稳定,能够正常在迷宫中随意穿行。
在普通的行走中,由于外界原因回使车走离出原来应该有的路线,然后与墙体碰撞,为了使其不要碰撞,左右的1,3传感器感应左右是否有阻碍,在动作里面添加相应的感应函数,做出动作修改,使小车尽量不与墙碰撞。