新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 一种嵌入式智能寻迹机器人设计

一种嵌入式智能寻迹机器人设计

作者: 时间:2009-12-25 来源:网络 收藏

  3.3 直流电机驱动电路与电源模块

  直流电机通过主板的P5接口连接到主板的驱动模块上。本文采用L298作为电机的驱动芯片,L298的5、7、10、12四个引脚连接到单片机上,通过对单片机的编程就可以实现两组直流电机的正反转等功能。由于单片机的电压在4.8V左右,故采用VFM升压型电源芯片,为单片机及外围电路提供5V左右的电压。


  4 软件模块

  4.1 软件开发环境与搜索算法

  本文采用Keil U Version2 作为系统的开发环境,在程序中采用C语言和汇编语言混合编程。在软件算法上,考虑到深度优先搜索算法的时空效率和迷宫地形的复杂程度成正比,即迷宫越复杂,搜索出口的时间就越长。本文采用了一种称为左手(或右手)法则的迷宫路径搜索策略,即在迷宫中一直沿着左侧(或右侧)的墙寻找,就可以找到出口。

  相对于深度优先搜索法,左手(或右手)法则的空间占用与迷宫复杂程度无关,搜索路径的选择只与当前结点有关,不需要回溯。同时,硬件的制造精度要求不高,不需要精确的控制的移动距离和移动方向,方便了驱动。为便于算法的实现,本文设定了如下约束条件:

  1.在算法中不管迷宫地形有多么复杂,均由直线、死路、丁字形、十字形、转角形和终点七个基本地形构成。


  2.按分岔的多少将分岔口分为二岔口和三岔口(一般没有四岔口),而将分岔口前面的岔路按从右到左的顺序分别称为第一岔路、第二岔路、第三岔路(十字型才有)。二岔路有三种不同的形式,第一种是前进的路线右边出现一条岔路(右边的岔路称为第一岔路、前方称为第二岔路);第二种是在前进的路线左边出现一条岔路(前方称为第一岔路、左边的岔路称为第二岔路);第三种是丁字路口(右边的岔路称为第一岔路、左边的岔路称为第二岔路)。对于这三种情况,算法对应的程序由主程序、走直线子程序、左转子程序、右转子程序和校正子程序组成。主程序起到导向和决策的功能,决定什么时候该做什么。机器人的其他功能通过调用具体的子程序来实现。

  4.2 算法流程图描述

  本文所采用的迷宫搜索算法流程如图3所示。接通电机和传感器电源后,单片机在程序的控制下,根据传感器检测到的值,决定电机的正转和反转。当P0.7=1时,表示左方没有障碍物,依据“右手”遍历算法,机器人将调用右转子程序;当P0.7=0并且P0.5=0时,机器人将调用左转子程序;否则机器人直线前进,如此反复检测并调整机器人的动作,直至机器人走出迷宫为止。

迷宫搜索算法流程

  5 结论及其创新点

  本文对基于AT89S52的寻迹机器人的硬件架构进行了探讨,将左手(或右手)法则用于寻迹机器人行走路线搜索,重点讨论了基于AT89S52的光电传感器模块、直流电机驱动模块、电源模块等的电路实现技术,经过反复测试,机器人能够在软件的控制下,无需任何外界力量就可以地完成从迷宫入口走到出口的寻迹任务。创新点在于通过光电传感器自动感知障碍物,并利用软件控制机器人左/右转以及直线行走,对复杂路径探测是一种尝试,特别适合人无法到达的环境路径探测,系统成本低,可靠性高,反应灵敏,对玩具的设计与开发也具有一定的参考价值。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭