张芳,张震强
(陕西科技大学 电气与信息工程学院,陕西 西安 710021)
摘要:电脑鼠竞赛自动计时系统由传感器、延时电路、电平转换电路、串口通信电路和PC组成,包括了系统的硬件设计、软件界面和控制程序的设计。通过将软硬件系统相结合,本系统能够满足竞赛对高精度时间统计的要求,并且能够克服环境、人为等因素的影响。按照IEEE的比赛规则,能够准确地测量和计算电脑鼠的运行时间,在比赛过程中自动地对成绩进行大屏幕显示和计算机存储。本系统电路简单,测量精度和灵敏度高,调试方便,能够充分发挥自动计时系统在比赛中的实时观测、现场监督的作用。本系统已通过迷宫现场测试,期望应用于正式比赛。
关键词:电脑鼠竞赛;自动;计时
0引言
“电脑鼠”,英文名叫做 MicroMouse,是使用嵌入式微控制器、传感器和机电运动部件构成的一种智能行走装置,可以在复杂迷宫中精确定位,自动记忆和选择路径,规避障碍,寻找出口,采用相应的算法,最终快速地达到所设定的目的地[1]。
首场电脑鼠迷宫竞赛于1979年在纽约举行。 2009年由中国计算机学会嵌入式系统专业委员会主办了首届全国电脑鼠走迷宫竞赛,拉开了中国电脑鼠竞赛的大幕。
竞赛的得分用“时间”来衡量,时间越短,所获得的成绩也越高。因此,设计一个非接触式的比赛自动计时系统就显得尤为重要。本系统能够克服环境、人为等因素的影响,按照IEEE的比赛规则要求,准确地测量和计算电脑鼠的比赛时间。此外,该系统还具有远程传送和大屏幕显示的能力,便于实时观测,现场监督。
1电脑鼠走迷宫竞赛主要规则
本系统以IEEE电脑鼠走迷宫竞赛规则为设计依据[2]。主要规则如下:
电脑鼠的基本功能是从起点开始走到终点,比赛中,每一次的成绩都由运行时间、迷宫时间和碰触奖惩三部分组成。竞赛使用这3个参数,从速度﹑求解迷宫的效率和电脑鼠的可靠性三方面进行评分。
(1)运行时间。电脑鼠每次从迷宫起点走到终点所用时间称为“运行时间”。竞赛中,电脑鼠在迷宫中的总时间不可超过15 min。
(2)迷宫时间。从电脑鼠的第一次激活到每次运行开始所用时间称为“迷宫时间”。
(3)碰触奖惩。电脑鼠启动运行后出现故障,允许操作员手动电脑鼠使其继续行走或将电脑鼠从迷宫取出,放到起点重新启动运行,该动作称为“碰触”,但不能超过3次。
(4)成绩的计算。得分通过计算每次“排障时间”来衡量:排障时间=迷宫时间/30+运行时间+碰触奖惩。
电脑鼠在规定时间内允许运行多次,取最短排障时间作为最好成绩。
2系统设计原理
本系统根据竞赛规则要求,选用PC代替单片机作为控制器,PC既是显示器件同时也是控制器件,对PC的利用率大大提高,将上位机的控制作为主导,整个系统尽可能少地使用元器件,简化硬件电路。
系统采用激光管及其接收电路采集计时信号,经过信号处理部分,将输出的电平信号直接输入PC串口的特定引脚,PC采用Visual Basic编程语言构建计时系统界面,同时利用软件编写串行口通讯程序,通过对串行口引脚状态的判断,执行相应的计时控制程序。利用鼠标对上位机系统界面进行操作,并在大屏幕上显示当前内容和数据,实现对参赛电脑鼠的运行时间、迷宫时间、碰触次数、本次成绩、最好成绩的实时显示、控制及存储。
系统的整体设计框图如图1所示。
3硬件设计
本系统硬件部分的整体框图如图2所示。
3.1传感器的安装及其工作电路
由图2所示,在迷宫起点单元,一面墙壁内部嵌入激光管,该激光管使用+3 V纽扣电池驱动发光。发出的激光照射到迷宫单元格的对面墙壁上,在该墙壁上激光所照的点处嵌入光敏电阻,该光敏电阻连入比较器电路中。
当没有电脑鼠经过迷宫起点单元,即有激光照射到光敏电阻上时,光敏电阻阻值很小,比较器输出+10 V电压;当电脑鼠经过起点单元,即激光被阻断,没有激光照射到光敏电阻上时,光敏电阻阻值很大,比较器输出0 V电压。通过高低电平的变换实现对起点单元信号的检测。
迷宫终点的传感器安装方式及其工作电路同理。
3.2信号处理电路
由于传感器响应周期很短,若参加比赛的电脑鼠车体形状不规则,小车经过计时区时,很可能触发传感器对信号进行多次采集。本系统采用555定时器连接而成的单稳态触发器实现延时消抖,将传感器输出的信号进行一定的延时处理,从而保证车体每经过一次,传感器仅采集一次开关量信号。
3.3串口电路
串口电路的设计是本系统的难点,同时也是本设计的一项创新点。
不同于一般的单片机与PC的串行通讯[3-4],由于本系统为PC控制,采集到的开关量信号直接从PC串口的某一针脚输入,通过检测串口针脚的状态来得到计时脉冲信号。
RS-232C总线标准规定,RTS、CTS、DSR、DTR和DCD等控制线上信号有效(接通,ON状态,正电压)为+3 V~+15 V ,信号无效(断开,OFF状态,负电压)为-3 V~-15 V。本系统传感器电路的输出无车经过时为高电平+10 V,有车经过时为低电平0 V,而该电平是串口针脚所不能识别的。
因此,利用了OP07作为比较器构成电平转换电路,将输出的脉冲信号转换为串口可识别的±12 V电压,再从RS232C输入计算机。DB9的CTS脚接起点信号的输出端,DCD脚接终点信号的输出端,GND脚接地。具体连线方法如图3所示。
当小车经过起点传感器时,起点信号输出为+12 V,CTS有效,获得起点的计时脉冲信号,同理,当小车经过终点传感器时,终点信号输出为+12 V,DCD有效,获得终点的计时脉冲信号,从而控制系统进行计时。
4软件设计
软件是控制电路的灵魂,上位机程序的编写是本设计研究的核心,也是本计时系统功能实现的关键所在。本系统使用可视化编程语言Visual Basic进行操作界面和控制程序的设计[5]。
4.1流程图
软件设计的主程序流程图如图4所示。
4.2界面模块
界面模块由标题栏、计时显示、按键控制、参赛组提示4个主要部分组成,如图5所示。
其中,计时显示部分包括本次运行时间、本次迷宫时间、总时间、本次成绩、碰触次数和最好成绩共六部分;按键控制部分包括开始、碰触和清零共三部分。
4.3工作过程
裁判员单击“开始”按键,激活比赛计时系统。
控制程序以查询方式每隔一段时间检测起点信号状态,当CTS线为高电平时,表示电脑鼠进入迷宫起点,计时程序开始执行,同时,在界面模块上实时显示本次运行时间、迷宫时间和总时间,并将该时间值存入相应数组中。
电脑鼠继续在迷宫中运行,控制程序检测终点信号的状态,当DCD线为高电平时,表示电脑鼠进入迷宫终点,获取当前时间,计算并显示本次成绩。
电脑鼠允许在规定的15 min内运行任意次,因此,电脑鼠回到起点再次进入迷宫后,本次运行时间、本次迷宫时间和本次成绩由电脑鼠新一次的情况给出,选择各次成绩中最短用时作为最好成绩。
比赛过程中,电脑鼠每发生一次碰触事件,裁判员单击“碰触”按键,显示碰触次数加1,相应地碰触奖惩时间改变,当碰触次数达到4次时,显示“停赛!”。
当前组比赛停止后,裁判员单击“清零”按键,清除本轮比赛记录,当前组号和将要参赛的组号各加1,为进行下一组比赛做准备。
5现场测试及结论
同时使用人工秒表和自动计时系统两种方案进行迷宫现场计时。迷宫现场测试数据如表1所示。
由测试结果可以看出,电脑鼠竞赛自动计时系统,克服了人工秒表计时人力资源浪费大、计时误差大、不能实时显示等缺点,对资源的利用更为合理。按照比赛规则,可准确测量和计算电脑鼠的运行时间,在比赛过程中自动对成绩进行测定、显示与存储,具有远距离传送和大屏幕显示的能力,并且满足电路简单、测量精度和灵敏度高、调试方便的要求,能够充分发挥非接触式自动计时系统在比赛中的实时观测、现场监督的作用。本系统已经用于校内的电脑鼠比赛中,工作稳定。
参考文献
[1] 周立功.IEEE电脑鼠开发指南[M].广州:广州致远电子有限公司,2008.
[2] 2009全国“电脑鼠走迷宫”竞赛组委会.2009全国“电脑鼠走迷宫”竞赛 [EB/OL].(2009-11-01)[2016-06-20]. http://www.micromouse.com.cn.2009 11 01/2010 01 12.
[3] 顾星辰,胡仁杰,马智勇. AVR单片机和Matlab串口通信的计时器系统[J].单片机与嵌入式系统应用,2013,13(3):25-27.
[4] 梁振涛,樊泽明,任永亮,等.基于单片机的移动监控系统硬件设计[J].微型机与应用,2014,33(2):25-27.
[5] 邵昊舒. 基于VB的英国议会制辩论赛计时器的设计开发[J].电子测试,2015(4):1-3.