当前位置:文档之家› -综合课程设计

-综合课程设计

图3-2-2-1
(2)74HC138译码器
如图3-2-2-2所示,是硬件电路部分3-8译码选择器电路。
采用74HC138译码器将单片机的三位二进制编码译码为8位控制线,使用其中的5位控制线分别控制5个传感器组的分时工作。
例如A0A1A2地址为000时,74HC138输出Y0有效,从而使第一组传感器工作,而其他组传感器处于没有工作的状态。这样就可以实现单片机的3个引脚控制5个或者更多的传感器组。
3、
在电脑鼠的寻路过程中有两个比较特殊的过程,就是在小车遇到了死胡同时,就是此时前进方向的数比自己还小,所以无路可走。应该让小车回到上一个岔路口,虽然可以利用堆栈的先入后出的特性来存储寻路过程中经过的岔路口坐标,但是具体地要怎么样使得小车从当前的位置移动到岔路口呢?换言之,我们需要实现将小车从当前的位置移动到一个指定的任意位置,而且还要使得移动过程经历的路径尽可能地短。在后期的最短路径的生成问题其实也是上面的问题的一个特例,只不过把当前的位置设置为了迷宫的起点,而要到达的位置设置成了迷宫的终点而已。下图2-3为普通等高表:
L9110的逻辑关系表如表3所示:
表3 L9110逻辑关系
IA
IB
OA
OB
H
L
H
L
正转
L
H
L
H
反转
L
L
L
L
停止
H
H
L
L
停止
3.3
如图3-3所示,是电脑鼠主程序流程图。遍历探索迷宫,记录信息数据,生成等高表,计算出最短路径,完成最短路径的来回,完成设计目的迷宫电脑鼠走迷宫。
3.3.1 电脑鼠搜索迷宫行走程序设计
左手法则
左上区域
右方1
中右法则
右上区域
上方0
左手法则
右上区域
下方2
中右法则
右上区域
左方3
中左法则
右上区域
右方1
右手法则
寻路过程中还要正确的使用堆栈,整个寻路算法的运行过程中会大量地使用堆栈的入栈和出栈操作,如果对入栈和出栈的条件判断不正确,有可能造成数据紊乱,整个算法就崩溃了。
寻路算法中也要判断小车的车头方向,迷宫机器鼠的车头有绝对方向和相对方向之分。绝对方向:以小车刚开始运行的时候车头面向的方向作为“前”,再依次为“右、后、左”。相对方向:相对于当前小车所朝向的方向的方向。修正式为:转弯后的绝对方向=(转弯前的绝对方向+转弯数值)% 4,如表2-3-2所示。
图3-2-2-2
(3)载波发生器
如图3-2-2-3所示,是产生38KHz方波的载波发生器电路。
由于传感器组是由38KHz的红外一体化接收头和红外发射管构成的障碍感测器。为了能够让传感器组正常工作,红外发射管需要一个38KHz的方波来驱动,使红外发射管发射出调制频率与接收头接收频率匹配的红外光。
图3-2-2-3
2、能争取判断环境的能力(如有墙、有路)
运用传感器来探测,是否有障碍物,路径是否可以行走,达到随意在迷宫里行走的能力。
3、记忆路径的能力
4、能够迷宫电脑鼠能够在找到终点坐标并能返回原点。
2.2
1、迷宫电脑鼠外形统一设计,符合迷宫场地要求。
2、迷宫电脑鼠运行稳定、准确、快速;能够正常在迷宫中随意穿行。
2、传感器组
传感器组的作用是用来整体感知环境,探测电脑鼠的左、前、右是否有路可走。本设计中采用的是红外线方式,发射和接收分别受微控制器控制。由硬件电路部分结构框图可知,在电脑鼠的前、左、右、左前、右前方共有5组,其中左、右、前三组传感器是用于探测电脑鼠在当前迷宫格左、右、前三个方向上是否有支路的,左前、右前两组传感器呈45度安装,用于电脑鼠行进过程中进行姿态矫正,防止电脑鼠走偏而撞到迷宫墙。并且可以通过可调电阻来调传感器的检测距离。(电脑鼠的眼睛)
图3-2-2-4
3.2.3 电机驱动电路设计
如图3-2-3所示,是用来驱动电脑鼠伺服电机的驱动电路。由于单片机I/O口电流输出能力有限,不能直接驱动电机转动。为了能让单片机控制电机运转,需要使用电机驱动电路,将单片机I/O口弱电流放大到足以驱动电机的电流。
图3-2-3
图3-2-3是左电机驱动电路,右电机驱动电路和这个也是一样的。ML为左电机,1、2脚是电机组绕,与驱动芯片L9110输出相连。3脚是电机光电码盘A相脉冲输出,连接到T1定时/计数器1外部计数引脚,通过脉冲计数,计算电机角位移和速度。电路图中引脚与驱动电路中的引脚编号一一对应。通过L9110驱动芯片IA、IB输入的逻辑值的组合(L9110的逻辑关系如表3所列),控制电机正转、反转、停转。
图3-3-1电脑鼠搜索迷宫行走流程图
迷宫电脑鼠结合五个传感器的整合信息,判断自己所处的位置以及前方是否有路或者有没有走过,再结合墙壁信息,进行行走转向的选择,此过程中用到定时器控制左右轮的转动脉冲,使得两轮配合有效率的转动前进、转弯等。
3.3.2 电脑鼠遍历过程中记路径程序设计
图3-3-2电脑鼠遍历过程中记路径流程图
2、
回溯算法的基本思想是:从一条路往前走,能进则进,不能进则退回来,换一条路再试。这里,小车将要到达的单元格的高四位记录小车到达该单元格方向的反方向。假设小车当前坐标为(m,n),当小车要往前边走时,先给map[m][n+1]的下边赋值。由于每个单元格的高四位存储的返回方向是唯一的,当小车前方无路返回时,读取当前坐标的高四位,便可知道到达该坐标的上一个坐标在哪个方向,从而进行相关的转弯操作。
综合课程设计报告
题目:迷宫电脑鼠的设计
二级学院计算机科学与工程学院
专 业计算机科学与技术
班 级112030702
学生姓名刘博学号11203070215
指导教师杨宏雨
时 间2015.1

“电脑鼠”是使用嵌入式或单片机微控制器、传感器和机电运动部件构成的一种微型机器人,可以在 “迷宫”中自动记忆和选择路径,快速地达到所设定的目的地。电脑鼠走迷宫竞赛是一项具有一定难度、富有挑战性和趣味性的比赛。本研究性课程重点对电脑鼠硬件、迷宫算法进行分析研究。本研究性课程通过对电脑鼠自动穿越迷宫过程的研究,综合嵌入式专业的电路设计、传感器控制、单片机程序开发和算法研究等多学科知识,熟悉掌握嵌入式应用开发的全过程。
表2-3-2
转弯前的方向
转弯方向
转弯后的方向
0(上方)
向左(+3)
向左(0+3)%4 = 3
0(上方)
向右(+1)
向右(0+1)%4 = 1
0(上方)
向后(+2)
向后(0+2)%4 = 2
1(右方)
向左(+3)
向上(1+3)%4 = 0
1(右方)
向右(+1)
向下(1+1)%4 = 2
1(右方)
向后(+2)
如图3-3-2是迷宫电脑鼠遍历迷宫的流程图,迷宫电脑鼠在遍历时,一直在检测挡板信息,统计方格信息,岔路口判断选择前进方向,用栈存储小车位置,进行寻路判断、前进选择,相对也就记下了路径的信息。
3.3.3 电脑鼠到达目的终点的程序设计
图3-3-3电脑鼠到达目的终点的流程图
如图3-3-3所示,是电脑鼠到达终点流程图。电脑鼠到达终点子程序就是根据设定的终点坐标,采用一定的规则不断的去搜索迷宫,直到找到一条通往终点的路为止。如流程图所示,电脑鼠每走一格就将当前坐标与终点坐标进行比对,如果比对相同说明找到终点退出返回,不相同则继续探索迷宫,判断当前坐标格是否走过,对于没有走过的迷宫格采用向心法则选路。对于走过的迷宫格,选一个未走过的方向进行探索或返回上一个路口探索。如果所有路都走不通,使电脑鼠向等高表数值较小的方向转弯,在获取当前坐标等高值,再比较,再前进。
1
1.1
(1)了解并熟悉电子元器件焊接技术与方法。
(2)了解并熟悉电子元器件工作原理和功能特性。
(3)掌握单片机对编码电机的控制与红外发射与接收的控制。
(4)熟练运用keil软件进行单片机的C语言编程。
1.2
完成要求:
本项目要实现的是用电脑鼠找出迷宫中通往终点的最短路径并以最快速度到达迷宫的终点。电脑鼠从迷宫起点位置前进,由程序判断通过前视距离探测器探测到的迷宫状况,控制驱动机构前进或转向并记录路径和距离(控制车轮编码器可完成),由于起点位置和终点位置是已知的,虽然不知道具体路径,但通过编写算法程序即可找到最短路径,在重新开始时便可以最快速度从最短路径到达终点。
表 2-3-1向心法则
小车当前所处区域
小车车头当前面向方向
应选择的策略
左下区域
上方0
中右法则
左下区域
下方2
左手法则
左下区域
左方3
右手法则
左下区域
右方1
中左法则
右下区域
上方0
中左法则
右下区域
下方2
右手法则
右下区域
左方3
中右法则
右下区域
右方1
左手法则
左上区域
上方0
右手法则
左上区域
下方2
中左法则
左上区域
左方3
3、迷宫电脑鼠走终点能够判断环境,遍历及冲刺所需的时间越短越好。
4、迷宫电脑鼠要在不确定的从起点到终点的路径中找到最近的路,选择到最佳的路径。
2.3
1、
寻路是小车在运行的整个过程中进行的第一个操作,是让小车在迷宫中探索,同时记录已经走过的路径的信息,直到小车找到终点结束。也可以在找到终点后继续探索遍历整个迷宫,使小车尽可能多地收集迷宫的地图信息,以便后期进行最短路径的分析计算时能够运用更多的信息。
3.2.2 传感器组设计
(1)传感器的选择
如图3-2-2-1,由硬件电路部分系统架构可知,电脑鼠共有5组传感器。这5组传感器分别安装于左、左前、前、右前、右5个不同的方向,其中左、右、前三组传感器是用于探测电脑鼠在当前迷宫格左右前三个方向上是否有支路的,左前、右前两组传感器呈45度安装,用于电脑鼠行进过程中进行姿态矫正,防止电脑鼠走偏而撞到迷宫墙。电脑鼠通过对五组传感器信息的融合,实现环境整体感知的功能。
相关主题