新闻  |   论坛  |   博客  |   在线研讨会
基于MCS-51单片机的智能机器人迷宫车设计
shunzhidui | 2011-12-11 10:55:06    阅读:2748   发布文章


机器人应当具有几个特征:移动功能,执行功能、感觉和智能。目前全世界各国举办的涉及硬件,软件仿真的机器人大赛不下20余类。各种各样的机器人比赛都有一个共同的宗旨:培养科学创新精神,激发思维的想象力,鼓励理论与实践的结合。不仅如此,现在已经有越来越多的自动控制产品已经介入生产,在农业、工业上都有广泛的应用。新的工作方式将大大的缩短了人工作业的时间,并且减轻了人的体力劳动的支出。走迷宫的微型机器鼠主要是基于自动引导小车(Auto Guided Vehicle,AGV)的原理,实现机器鼠识别路线,判断并自动躲避障碍,选择正确的行进路线走出迷宫。在此选择制作一个简易的行进装置,使其能顺利的走避障或是迷宫。为了实现小车识别路线,判断并自动躲避障碍,选择正确的行进路线,障碍判断采用单光束反射取样红外传感器,驱动电机采用直流电机,控制核心采用MCS-51单片机。控制上采用分时复用技术,仅用一块单片机实现了信号采集、线路判断、电机控制等功能。迷宫由16×16个区组成。起点设在拐角处,终点设在中央,占4个区。每个区为180 mm×180 mm大小,间壁高为50 mm,厚度为12 mm,侧面涂白色,底面涂黑色,如图1所示。

1 迷宫车控制系统的总体设计方案

迷宫车由墙壁传感器、单片机控制板、动力及转向系组成的,控制框图如图2所示。

 

迷宫车采用轮式移动方式。优点是:结构和控制简单而且技术成熟。从选定电动机转速和轮胎直径,可以简单地计算出小车的速度。但是,有关路面的阻力或上坡的驱动转矩等成为重要的因素。考虑这点,在轮胎上使用无线遥控车的塑胶轮胎。如图3所示,前轮1为万向脚轮或球形轮,后轮2和后轮3为独立驱动轮,利用它们的转速差实现转向。这种组合的特点是机枢组合容易,而且当2个驱动轮以相同速度、相反方向转动时车体能绕2个驱动轮连线的中点自转,值得注意的是自转中心与车体中心不一致。

迷宫车车身材料的选择。迷宫车使用的材料大部分用于结构,一般应采用金属材料。迷宫车承载和运动不应产生严重的变形和断裂,从力学角度讲即具有足够的强度。迷宫车负载小,自重轻,对寿命的要求不高。因此,选用铁皮。

1.1 迷宫车控制电路的设计

控制电路主要由电机驱动电路,单片机接口电路,电源电路和传感器电路组成。控制框图如图4所示。

 

(1)红外线光感电路传感器通过发光二极管发出红外线,若有障碍物在前方,红外线会被反射回来,被感光三极管接收,单片机程序对信号进行比较处理,按设定的动作要求向后轮的两个电机发出控制命令,控制小车行进。

(2)电机驱动电路采用89S51单片机,通过L293D芯片来控制两个驱动电机动作。89S51根据红外传感器对外界进行探测后反馈回来的信号,依据迷宫车探路算法,判定迷宫车行进方向,分别向左右两个驱动电机发出控制指令,该信号经L293D芯片驱动后,直接控制相应电机动作,使迷宫车按既定动作进行前进、后退、转向。

1.2 迷宫车控制程序设计

控制算法:

迷宫车一般有四种控制算法:

(1)靠左算法

①默认靠左走法。即一直沿着左墙壁走,左边有墙时一直沿着左边墙壁前进,当左边没有墙时左转,然后继续靠左边墙壁运行。该算法使用于最简单的迷宫走法。如图5所示,其中虚线表示小车前进的路线。

 

②算法流程图如图6所示。

 

③靠左算法的弊端。按照该算法,小车在走第二遍迷宫的时候,可以一次性的走出迷宫,但是这条道路不一定是最短的道路;如果迷宫本身存在“孤岛”,那么小车很有可能走不出迷宫。如图7所示。图7中两个圆点分别表示入口和出口,小车从入口进入迷宫,靠左前进则会导致小车一直按照虚线所描绘出的路线一直在迷宫里循环,终走不出迷宫。

 

(2)靠前算法

①靠前算法即一直沿着前方道路前行(前方没有任何障碍时一直前进),当前边没有墙时判断左边,左边没墙左转,左边有墙则判断右边。然后重复该循环。该算法使用于最简单的迷宫走法。

②算法流程图如图8所示。

 

③程序思路:前边没墙靠前走,前面有墙判断左边,左边没墙靠左转,左边前边都有墙再判断右边,右边没有墙靠右转,三面都墙直接后退转180°,继续靠前走。0表示有墙,1表示没墙,p3.0表示左传感器;p3.1表示前传感器;p3.2表示右传感器。

转角控制思路:计算轮子的转速,测出小车转90°时每个轮子所行的路程,用路程来除速度,求出一个时间作为小车转弯时的延迟时间,再通过调试进一步精确转角。

(3)洪水算法

洪水算法即使用256 B额外内存,会大幅提高性能。该算法比一般迷宫算法的有效率高20~50倍。同时可以在内存中建立一个区域,与实际中的迷宫格数一一对应。在实际使用时算法并不太复杂。该额外内存区域称为“浪头”,它将体现在内存区域的实际状况中如图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°时,经常转过规定的角度,以至影响小车不能直线走出迷宫。一种解决办法是接入调压电路,在给小车转弯时间一定的情况,调节马达上的电压来改变车轮速度,不断实践直到达到预定的标准。另一种解决办法是,在小车速度一定的情况下,不断通过改变程序中的小车转角时间来改变小车的转角,多次实践,以求达到预定目标。通过实际调试发现这两种办法单独应用很难达到预定目标。因此,将两种结合起来,通过调试,容易达到目标
原创文章:"http://www.52solution.com/bbs/viewthread.php?tid=1155"
文章出自我爱方案网。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客