基于MCS-51单片机的智能机器人迷宫车设计
数一一对应。在实际使用时算法并不太复杂。该额外内存区域称为"浪头",它将体现在内存区域的实际状况中如图9所示。当迷宫被淹没的时候,一个波浪的前头从目标格向外扩展。在内存区域中这种单元格是惟一需要处理的,当浪头到达开始的单元格子,机器人已经被淹没。通常来说,开始的单元格可以是任何一个格子。但是为了方便起见,把开始点设在迷宫的第一个单元格,终点任意。反过来也可以把出口放在第一个单元格,把开始点设在中间或希望的位置。一旦到达了起点即搜索完成,最短的路径可以使机器老鼠移动到周围的格子中数值比较小的那个格子去,依次类推机器老鼠就能走到终点。
洪水算法的优缺点:
①按照该算法小车在第一次走迷宫的时候,必须把迷宫中所有的道路都走一遍。但是该算法可以让小车走任何迷宫,即使迷宫本身有"孤岛"小车一样可以顺利的走出迷宫。
②当小车再走第二遍迷宫的时候小车可以1次性走正确的路线走出迷宫,并且该路线一定为最短的路线。
(4)铺路算法
在内存中建立一个区域与实际中的迷宫格数一一对应,并将所有走过的路进行记忆,如果发现前方是死胡同或走过的路就转回前一个岔道口;在行走过程中遇岔道口默认靠左。因为有了记忆功能,就可以走第二遍。
铺路算法的优缺点:
①运用该算法可以走复杂的迷宫,不存在走不出来的问题。
②运用该算法在小车第二次走迷宫的时候可以一次性的走出迷宫,但是不能保此条道路走的是最短的线路。
这几种算法各有优缺点,经权衡比较,最终选择靠前算法。
1.3 系统运行及调试
程序运行时遇到的问题及解决方法:
(1)小车的外壳及轮子是纯手工安装的,精度不是很高,小车在行驶过程中不能一直走直线,很容易发生擦墙事故影响小车走迷宫。若是手工制作时所引起的,可通过给行驶时较落后的轮子上绕一些胶带来增加轮子的周长来解决。也可通过在电路中加入A/D转换器,对程序进行相对的改进,不断的测小车与周围墙壁的距离,保持小车与周围墙壁保持一定距离来解决。
(2)采用ST188型红外线传感器,易受外界干扰不能准确地检测墙壁信号,尤其是在强光下无法正常运行,对某些材料反射的光无法接收,易受阳光干扰,导致小车不能无误地走出迷宫。引起干扰的原因是阳光所发出的红外线与红外传感器所发出的红外线是一样的,都是连续的,无法区别,所以易受周围光线的干扰。对于该问题的解决办法是利用无线遥控基本原理使红外传感器所发出的红外是一种有固定频率有别于周围红外的信号。对于接收方也进行电路处理,使有辨别能力直接收有固定频率的红外信号。这两处的改进都是通过改进电路来实现的。若是反射面所引起的,通过限制反射面的材料可以解决。根据555定时器原理,改进传感器电路如图10所示。其工作原理是555电路发出频率为100 Hz的方波,驱动ST188放射端发光二极管以100 Hz的频率闪动,发出闪烁的光波,当有障碍物接近时,反射光引起ST188接收端的光敏电阻以相同的频率变化,使得图10中A点的电压值VA发生相应变化。VA中包含有直流成分V直和频率为100 Hz的交流成分V变,其中后者反映了障碍物的接近情况。为了保留有用的交流信号V交,清除直流成分V直,用隔直电容C1来完成隔直通交的功能,并由第一个运放电路完成对V交进行放大,由第二个运放实现直流到交流的转换。具体来说,当远离障碍物时,运放的输出VO为高电平;当传感器接近障碍物时,VO输出低电平。
(3)小车的速度很难控制,通过程序控制很难把握小车的旋转时间,小车在转90°和180°时,经常转过规定的角度,以至影响小车不能直线走出迷宫。一种解决办法是接入调压电路,在给小车转弯时间一定的情况,调节马达上的电压来改变车轮速度,不断实践直到达到预定的标准。另一种解决办法是,在小车速度一定的情况下,不断通过改变程序中的小车转角时间来改变小车的转角,多次实践,以求达到预定目标。通过实际调试发现这两种办法单独应用很难达到预定目标。因此,将两种结合起来,通过调试,容易达到目标。
2 结语
机器人迷宫车是大学生电子制作常选项目,是电子电路、机械传动及自动控制等多种知识的综合应用。对小车的转向控制涉及到电机调速,可以先对小车建立控制模型,再应用自动控制原理知识给出具体控制算法,这样就可以使小车转向控制及路径选择更为精确。
- 基于Atmegal6L单片机的智能小车的设计与制作(07-16)
- 智能库区防盗系统的设计(02-11)