基于AT89C51微控制器实现具有道路学习记忆的机器人设计

基于AT89C51微控制器实现具有道路学习记忆的机器人设计,第1张

随着科学技术的不断发展,机器人技术在航天、海洋、军事、建筑、交通、工业及服务业等领域已经取得广泛的应用和发展。而在一些特殊场合(如航天、深海作业及核工业等领域),以无人探察车、无人排险车及无人运输车等为代表的机器人技术越来越受到关注。为此,笔者设计了一种具有道路记忆功能、使用灵活方便、应用范围较广的轮式移动机器人模型。

该机器人模型以微控制器MCU为核心,先由人对机器人模型按照所要行走的路线进行训练,即让机器人模型记忆该路线(将路线数据存储在存储器中)。以后机器人模型就可沿此路线重复行走。其记忆路线的方式灵活方便,可根据不同的要求和需要对其进行不同的路线训练以完成不同的任务。

该模型可以应用于一些人类不宜活动或较难控制的场合(如微型核反应堆的金属罐管系统、火场探测、辐射、消防、有毒、易燃、易爆物体场所的探测等),也可作为室内服务机器人使用,以代替人完成家务劳动、厂区货物搬运、医院病历及资料的传递等。

该机器人模型具有以下特性:

●具有道路学习记忆和道路循迹重复功能;

●可模拟地图仿真训练,输出放大倍数可按需要设定;

●在实际工作时,如遇到障碍物?可采用道路转移法绕过障碍物并沿原学习道路继续前进;

●工作时无人控制;

●光线较暗时会自动打开光源;

●前进距离可用LCD实时显示;

●运动状态可用指示灯实时显示;

●具有系统故障报警功能。

1、系统硬件设计

系统硬件设计框图如图1所示,核心控制部分采用Atmel公司的普及型8位MCU AT89C51。作为一款目前广泛应用的MCU,AT89C51提供有电机控制、LCD驱动显示以及传感信息等多种驱动功能和接口,另一方面,该MCU价格低廉,有很高的性价比。外接存储模块采用容量为256kB的24LC256闪存芯片,当然,也可以根据实际需要选用其它容量的闪存芯片。感光探测选用光敏电阻即可感应外界光线的强弱。障碍物探测采用美国邦纳工程有限公司的PicoDot PD系列激光传感器,该传感器能对被测物体进行精确的到位检测、定位和计数。

基于AT89C51微控制器实现具有道路学习记忆的机器人设计,基于AT89C51微控制器实现具有道路学习记忆的机器人设计,第2张

2、系统设计要点

轮式移动机器人模型的速度及方向可由两个后轮作为驱动轮来控制,MCU通过驱动芯片L293B驱动两个后轮电机。AT89C5可通过两个后轮对应的两个计速器来分别控制这两个后轮的转速,从而实现模型的前进和转向功能。

2.1 计速部分

系统计速部分由光电开关及带有均匀分布小孔的圆盘组成,其电路及皮带轮连接示意图如图2所示。当光电开关中间有黑色物体挡住时,输出电平为0;无遮挡时,输出电平为1。当均匀分布小孔的圆盘边缘在光电开关的槽中转动时,可根据输出的一系列脉冲及圆盘上的孔数计算出圆盘的转速N。皮带轮1与圆盘粘在一起,因而转速相同;皮带轮2与模型后驱动轮同轴,速度相同;皮带轮1、皮带轮2由皮带相连。假设皮带轮2周长是皮带轮1周长的5倍,则皮带轮2的转速为N/5,即车轮转速为N/5。

2.2 道路学习记忆

计数芯片选用7级二进制串行计数器CD4024,光电开关的输出波形经施密特触发器整形为标准脉冲波形可使CD4024计数更方便。设每隔T时间记录到脉冲数M,那么,T时间内圆盘转速N=M/(LT)(设L为圆盘上的孔数),则车轮的速率为N/5=M/(5LT)。由于T越小,结果越精确,故T取几至几十毫秒。记录的数据经微控制器MCU送至外接闪存24LC256储存起来,供输出使用。

通过上述过程可对模型进行道路训练,即每隔T时间将两个后轮速率分别记入闪存。训练结束后,闪存内存储的是两个后轮每隔T时间一次的速率,这样就可实现对训练道路的记忆。

2.3 道路循迹重复

在对该模型进行输出控制时,先由微控制器MCU从闪存中读取数据,再将每隔T时间的转速数据通过脉冲输出,并通过L293B芯片驱动两后轮电机的转动。为保证输出的转速与原记录的转速一致,可用反馈控制的方法在后轮驱动电机转动的同时,由计速器模块同时检测两个后轮的转速,然后分别比较两个后轮的转速是否与原记录转速相同:若小于原记录转速,可调用加速子程序;若大于,则调用减速子程序。

由于计数时间T较小,再加上反馈控制的作用,就可保证输出的运动轨迹精确接近于原训练道路,误差很小。实际运行时,可在保证记录和输出精度的前提下把训练的道路模拟成与实际道路按比例缩小的地图,即在地图上对模型进行道路训练,按比例倍数放大输出,即可使机器人在实际道路上按训练道路运动。由于输出放大倍数由程序决定,因而可按不同的需要设置,灵活性很高。

基于AT89C51微控制器实现具有道路学习记忆的机器人设计,第3张

2.4 道路转移法绕障

该机器人模型在训练完成后,即可从预设地点开始行走。模型在前进过程中,当传感器探测到前方有障碍物时,可调用绕障碍物程序绕过障碍物并返回到原记录道路继续前进。其绕障过程示意图如图3所示,当模型传感器在A点探测到前方有障碍物时,会将障碍物模拟成一边与当时模型方向垂直的矩形物体(见图中虚线矩形)。然后中断从闪存中读取路线数据,并使模型在A点左转90,接着以匀速v直线前进t1时间到B点,再在B点右转90,接着从原中断处调用原记录路线数据前进t2时间到达C点。之后再在C点以方向 C 1 转动 C1与 C2方向的夹角θ(θ=90-两车轮前进距离差/两车轮间距),模型方向 从 C1转动到 C2 ,然后再以匀速v直线前进t1时间到D点,此时方向为 d2方向,然后再以C1到C2的相反方向从 d2转θ角到 d1方向,即 d1 // C1。实际上,在没有障碍物的情况下,模型依所记录路线应沿AD段前进,到达D点方向为 d1方向。由图可见,BC段的运动情况完全等同于AD段的运动情况,也就是说,在遇到障碍物时,机器人会将AD段转移到实际的BC段运动以绕开障碍物,同时保持它应有的运动状态并返回原记录路线。其中t1、t2的选取与虚线矩形的大小(代表障碍物的大小)有关,它可由传感器探测到的障碍物大小来确定。

基于AT89C51微控制器实现具有道路学习记忆的机器人设计,第4张

2.5 附加功能

应用时也可根据特殊需要,在模型上安装摄像机以实时观察或安装自动拍照的数码像机来记录工作区域周围的情况。当模型探测到周围环境的光线比较暗时,还可由微控制器MCU打开光源,以便为像机提供照明。

此外,模型上还设计了工作指示灯来实时指示模型的工作状态,不同指示灯分别指示其正常、左转、右转及出错状态,以方便使用者及时了解模型的工作情况。外接LCD可实时显示模型的前进距离,每个车轮前进的距离=记录的车轮的转数车轮的周长,再取两个车轮前进距离的平均值作为模型的前进距离,这样可方便使用者及时了解模型的进程。

若模型在工作过程中发生故障(如不能前进、失控等),也可通过警铃和警灯提醒用户及时检修。

3、系统软件设计

图4、图5分别为机器人模型道路学习记忆、循迹重复的软件流程。本程序中,道路学习记忆时的记录时间间隔T取30ms,输出控制时,在每一个记录周期内比较6次(每5ms计一次数,再乘以6与原记录数相比较,以判断应加速还是减速),以使输出更精确于原记录数据。图6为绕障碍物程序流程图,其中模型方向转过一定角度可由一轮静止、另一轮运动时的两轮间距转动角弧度的距离来实现。

基于AT89C51微控制器实现具有道路学习记忆的机器人设计,第5张

基于AT89C51微控制器实现具有道路学习记忆的机器人设计,第6张

基于AT89C51微控制器实现具有道路学习记忆的机器人设计,第7张

4、结束语

该机器人模型相比无线遥控 *** 作机器人的优势在于,可工作在电磁波屏蔽的场合;而相比有线遥控 *** 作机器人来说,其优点是工作过程中无需人实时控制,可自主完成活动,并具有活动精度高、效率高的特点;相比固定轨道机器人,该模型能够摆脱固定轨道的限制,其活动路线灵活易变,适应范围更广

责任编辑:gt

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/dianzi/2500948.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-05
下一篇 2022-08-05

发表评论

登录后才能评论

评论列表(0条)

保存