2 硬件设计
根据竞技机器人的功能要求进行总体设计,将各个功能进行模块化,其控制系统硬件框图如图1所示。中央处理器采用微控制器结构,用以控制外围设备协调运行。舵机控制机器人的运动方向;驱动电机电动机采用输出轴配有光电编码器的小型直流电机驱动车轮旋转。电磁铁作为机械手夹紧的执行元件。设置了两路超声波传感器、8路光电检测输入和8路开关量检测接口。整个机器人的运行状态和运行参数通过LCD动态显示。
2.1 微控制器的选型
机器人要实现的动作和功能较多,需要多个传感器对外界进行检测,并实时控制机器人的位置、动作和运行状态。系统中的所有任务最终都挂在实时操作系统μC/0S一Ⅱ上运行,因此不仅要考虑微控制器的内部资源,还要看其可移植性和可扩展性。LPC2129是Philips公司生产的一款32位ARM7TDMI—S微处理器,嵌入256 KB高速Flash存储器,它采用3级流水线技术,同时进行取指、译码和执行,而且能够并行处理指令,提高CPU的运行速度。由于它的尺寸非常小,功耗极低,抗干扰能力强,适用于各种工业控制。2个32位定时计数器、6路PWM输出和47个通用I/0口,所以特别适用于对环境要求较低的工业控制和小型智能机器人系统。因此选用LPC2129为主控制器,可以获得设计结构简单、性能稳定的智能机器人控制系统。
2.2 无线通信接口设计
系统采用迅通公司生产的PTR2000无线通信数据收发模块。电路接口如图2所示。该模块基于NORDIC公司生产的射频器件nRF401开发,其特点是:①有两个频道可供选择,工作速率高达20 Kb/s;②接收发射合一,适合双工和单工通信,因而通信方式比较灵活;③体积小,所需外围元件少,接口电路简单,因此特别适合机器人小型化要求;④可直接接单片机串口模块,控制简单;⑤抗干扰能力强;⑥功耗小,通信稳定。
2.3 光电检测模块设计
2.3.1 光电检测过程
设计光电检测模块,使机器人能够检测地面上的白色引导线。光电检测电路主要包括发射部分和接收部分,其原理如图3所示。发射部分的波形调制采用了频率调制方法。由于发光二极管的响应速度快,其工作频率可达几兆赫兹或十几兆赫兹,而检测系统的调制频率在几十至几百千赫兹范围之内,因此能够满足要求。光源驱动主要负责将调制波形放大到足够的功率去驱动光源发光。光源采用红外发光二极管,工作频率较高,适合波形为方波的调制光发射。
接收部分采用光敏二极管接收调制光线,将光信号转变为电信号。这种电信号通常较微弱,需进行滤波和放大后才能进行处理。调制信号的放大采用交流放大形式,可以将调制光信号与背景光信号分离开来,为信号处理提供方便。调制信号处理部分对放大后的信号进行识别,判断被检测对象的特性。因此,该模块的本质是将“交流”的、有用的调制光信号从“直流”的、无用的背景光信号中分离出来,从而达到抗干扰的目的。
2.3.2 光电探头
在机器人底盘前部安装有光电探头,共设置了5个检测点,其结构如图4所示。
从理论上讲,检测点越多,越密,识别的准确性与可靠性越高。但是硬件的开销与软件的复杂程度也相应增加。采用该寻线系统保证了检测的精确度,也节约了硬件的开销。发光二极管发出的调制光经地面反射到光敏二极管。光敏二极管产生的光电流随反射光的强弱线性变化。检测出这种变化,即可判断某一个检测点是否在白色引导线的上方,从而判断机器人和白色引导线的相对位置。
2.4 超声波测距传感器设计与实现
两路超声波传感器用以控制机器人避开障碍物,并预测机器人相对目的地距离,起导航作用,其接收部分与微控制器的捕获和定时管脚相连接。整个超声波检测系统由超声波发射、超声波接收和单片机控制等部分组成。发射部分由高频振荡器、功率放大器及超声波换能器组成。经功率放大器放大后,通过超声波换能器发射超声波。
图5给出由数字集成电路构成的超声波振荡电路,振荡器产生的高频电压信号通过电容C2隔除掉了信号中的直流量并给超声波换能器MA40S2S。其工作过程:U1A和UlB产生与超声波频率相对应的高频电压信号,该信号通过反向器U1C变为标准方波信号,再经功率放大,C2隔除直流信号后加在超声波换能器MA40S2S进行超声波发射。如果超声波换能器长时间加直流电压,会使其特性明显变差,因此一般对交流电压进行隔除直流处理。U2A为74ALS00与非门,control_port(控制端口)引脚为控制口,当control_port为高电平时,超声波换能器发射超声波信号。
图6示出为超声波接收电路。超声波接收换能器采用MA40S2R,对换能器接收到的信号采用集成运算放大器LM324进行信号放大,经过三级放大后,通过电压比较器LM339将正弦信号转换为TTL脉冲信号。INT_Port与单片机中断管脚相连,当接收到中断信号后,单片机立即进入中断并对超声波信号进行处理和判断。
3 实时操作系统μC/OS—II的移植
μC/OS—II是一个嵌入式实时操作系统内核,包含了任务调度、任务管理、时间管理、内存管理和任务间的通信与同步等基本功能。μC/OS—II进行任务调度时,会把当前任务的CPU寄存器存放到该任务堆栈中,然后再从另一个任务堆栈中恢复原来的工作寄存器,继续运行另一个任务。
根据各个控制功能和微控制器的资源结构对任务进行划分,共划分为7个应用任务,其划分过程如图7所示。无线串行通信采用中断接收方式,保证数据接收的实时性。
μC/OS一Ⅱ任务的建立包括定义任务堆栈、设定任务优先级、初始化该任务要求的系统硬件及实现具体的控制过程等4部分。现以任务1为例,介绍应用任务的建立过程。
在嵌入式实时操作系统环境下开发实时应用程序,可使程序的设计和扩展变得容易,而且无需大的改动即可增加新的功能。通过将应用程序分割成若干独立的任务模块,可大大简化应用程序的设计过程;而且能快速、可靠地对实时性要求苛刻的事件。通过有效的系统服务、嵌入式实时操作系统,能使系统资源得到更好的利用。
4 调试运行
在机器人控制系统起动时,μC/OS一Ⅱ对堆栈空间、各个控制寄存器和外设器件的硬件进行初始化,并设定当前各个功能部件的初始状态。
在实时机器人系统下,机器人正常启动后,系统实时监视机器人在比赛场上的运行状况,若出现某一动作或功能无效则给出出错信息。正常运行时实时显示机器人在比赛场上的坐标值和动作状态,如图8所示。
5 结语
根据智能机器人的控制要求,设计了基于无线通信的嵌入式机器人控制系统。在软件设计上移植了嵌人式实时操作系统μC/OS一Ⅱ。利用光电检测模块和超声波导航模块感知外部信息,实现了对智能机器人的控制。