引言
目前,机器人足球比赛系统主要有3种控制方式:第1种称为远程遥控无智能机器人足球比赛系统,主机通过无线方式遥控机器人;第2种称为基于视觉的机器人足球比赛系统,主机通过处理由摄像机获取的信息来控制机器人;第3种称为基于机器人的机器人足球比赛系统,此系统无需主机的控制,每个机器人通过自身的传感器获取信息并作出判断。
基于视觉的足球机器人系统作为实验平台,其实现难度适中,而且利于模糊推理、神经网络、机器学习等人工智能领域的研究。从设备上看,基于视觉的机器人足球比赛系统包括小车、摄像装置、计算机和无线收发装置;从功能上看,基于视觉的足球机器人比赛系统由视觉子系统、决策子系统、通信子系统和机器人子系统等四个部分以闭环系统形式构成。基于视觉的机器人足球比赛系统结构框图如图1所示。
图1 基于视觉的机器人足球比赛结构框图(略)
首先,视觉子系统对比赛现场情况(如双方机器人和小球的位置、方向、速度)进行实时采集和处理。决策子系统根据现场情况,作出战略决策,为各机器人确定运行路径和速度,并经由通信子系统送到本队各机器人子系统中。每个机器人子系统作为战略的执行者,根据所接受的命令进行运动。通信子系统提供了上位机与机器人小车之间的可靠通信交互网络,其主要任务是准确无误地实现信号传输。本文将论述基于nRF401无线收发芯片和AT89C2051微控制器芯片的无线通信子系统的设计。
系统硬件设计
通信子系统是机器人足球比赛系统中一个重要组成部分,其通信性能好坏,将严重影响机器人的运动和比赛的顺利进行。如果在通信过程中有误差,它将导致机器人小车错误的动作,失去运动目标。一般来说,对通信子系统的要求是:通信频率可选,硬件电路结构紧凑,通信速率高和性能稳定可靠。为了便于机器人小车的活动,通信子系统一般采用无线通信方式。
根据对通信子系统的设计要求,我们采用微控制器(俗称单片机)AT89C2051作为无线通信子系统的控制核心,并选用基于蓝牙核心技术的无线通信芯片nRF401,通信子系统结构框图如图2所示。机器人小车的控制命令由PC机发出,PC机的RS232串口连接到图2所示的无线通信子系统的输入端,控制命令经AT89C2051处理后,通过芯片nRF401以无线的方式发送给机器人小车。
图2 无线通信子系统结构框图(略)
AT89C2051芯片简介
微控制器采用美国Atmel公司的AT89C2051芯片。它的指令系统与MCS-51产品兼容,具有2K字节可重编程闪速存储器,128 8位内部RAM,两个16位定时器/计数器,六个中断源,编程串行UART通道,15根可 编程I/O引线。在无线通信子系统中,AT89C2051完成接收PC机从RS232串口送来的机器人小车控制指令,并将控制指令经无线通信芯片nRF401送给机器人小车子系统。
nRF401芯片介绍
nRF401[3]是由挪威Nordic VLSI ASA公司推出的集收、发于一体的无线通信芯片,在一个20管脚芯片内集成了高频发射、高频接收、FSK调制与解调、PLL锁相环、放大器等单元电路。工作于433MHz ISM频段,采用FSK调制与解调技术,数据通信速率高达20kb/s,最大传输功率为+10dBM,并可以调整传输功率,差分式天线接口,非常适合做成PCB天线,以节约成本。
n RF401的内部结构如图3所示。nRF401的配置电路图如图4所示。
图3 nRF401的内部结构图(略)
图4 nRF401的配置电路图(略)
无线通信子系统电路原理图
无线通信子系统电路原理图如图5所示。CPU选用AT89C2051,它既接收来自上位机(PC机)的数据,同时又将从PC机接收的数据通过nRF401以广播形式发送给每个机器人小车子系统,每个机器人小车子系统根据设定的识别码,从接收缓冲区取出左右轮速度值,从而控制机器人小车的运动。
图5 无线通信子系统电路原理图(略)
AT89C2051微控制器的RXD/p3.0口与电平转换芯片MAX232相连,MAX232通过DB_9/male插头与PC机的RS232串口相接,用以接收PC机发送过来的命令控制字。AT89C2051微控制器的TXD/p3.1口与nRF401的DOUT/pin9脚相接,结合其他的控制引脚,AT89C2051控制nRF401的无线发射过程,用来完成将命令控制字经nRF401实现无线传输给机器人小车。AT89C2051微控制器的P1.0、P1.1、P1.2分别与nRF401的CS、PWR_UP、TXEN相连接。
基于ERTOS的系统软件设计
通信格式
nRF401可以使用全双工模式,因此,机器人小车子系统不但可以接收主机发出的命令,而且可以向主机发出信息,甚至可以实现机器人小车子系统之间的通信。但是当信息量过大时,有可能发生通信死锁,所以应考虑通信协议的设计。为确保通信的顺畅,我们
只允许主机向机器人发送命令,而禁止其他形式的通信。命令控制字的具体格式如下:
(略)
其中Si(i=1,2,3,...),为i号机器人小车标识;
Li(i=1,2,3,...),为i号机器人小车左轮速度;
Ri(i=1,2,3,...),为i号机器人小车右轮速度。
PC机发给每个机器人小车的控制命令字包括3个字节,第1字节是小车标号,第2字节是该小车左轮速度,第3字节是该小车右轮速度。一次性将所有机器人小车的控制命令打包发送。每个小车都能接收到PC机发送的每1条指令,机器人小车子系统上的通信专用MCU对标识信号进行比较,相符则随后数据有效,否则不予接收。
软件设计
为 了能够实时地完成无线通信的目的,系统的软件我们用C51语言编写,并采用 Keil Vision2 6.20集成开发环境中的RTX51 Tiny实时操作系统来完成无通信子系统中微控制器AT89C2051的软件设计。RTX51 Tiny实时操作系统是德国Keil公司开发的一种应用于MCS-51系列单片机功能强大的、可用于目前世界上由Intel 8051标准内核派生出的很多种增强型微控制器的实时操作 系统。RTX51 Tiny短小精悍,只占用900字节ROM、7字节DATA型及3倍于任务数量的IDATA型RAM空间,可以很容易地运行在没有扩展外部存储器的单片机系统上。使用RTX51 Tiny的用户程序可以访问外部存储器,允许循环任务切换,并且支持信号传递和事件驱动,还能并行地利用中断功能。RTX51 Tiny允许“准并行”地同时执行16个任务。
根 据对无通信子系统功能的分析,我们把软件分解为三个任务,各任务之间的运行关系如图6所示。这三个任务的具体情况如下。
图6 程序流程图(略)
任务0:系统初始化,如设置MCU的串行口工作在方式1,并设置波特率为9600bps。在启动任务1和任务2后自动删除任务0,使得任务0只在系统复位时执行一次。
任务1:接收PC机的命令控制字。若接收到了命令控制字则向任务2发送触发信号。
任 务2:等待触发信号,若SIGNAL被置 位,则控制nRF401并将命令控制字传送给nRF401,完成无线发射。
结束语
人 类对机器人的研究已走过了漫长的历程。随着科学技术的不断发展,人们对机器人的要求也随之越来越高而现实。在机器人足球比赛系统的开发过程中,不仅需要机器人学、通信与计算机技术等,而且还需要图像处理、智能控制等学科内容。
本 文主要叙述了机器人足球比赛通信子系统的硬件、软件设计。采用AT89C2051和nRF401所设计的通信子系统,电路核心芯片少,外围电路简单,体积小巧,成本低,其无线数字通信距离及其通信的可靠性均能满足机器人足球比赛系统的要求,从实际使用情况来看,使用效果 相当好。 |