1、工业控制计算机2023年第36卷第1期随着人类认知的深入,科学技术的进步,人工智能这个概念被提了出来,计算机模拟人脑,让机器具有人的智慧1。虽然一开始受限于计算机性能和理论基础,但随着科技发展,人工智能也愈发强大。自从2017年AlphaGo战胜了排名第一的世界围棋棋手柯洁后,人工智能和计算机博弈又再一次成为当今社会的热点话题。当然大众对人工智能依然有着不同的认识,不管人们的态度如何,有一点可以肯定,那就是人工智能已经改变了现代人的生活,渗透进了各种各样的行业之中2。1系统总体结构人机对战,顾名思义是人与机器的对战,因此不仅需要机器根据一套算法进行对事件的回应,也需要人机之间的交互。系统总体结
2、构框图如图1所示:图1系统总体设计方案/系统结构图2系统硬件设计系统硬件部分主要分为三个部分,分别为单片机最小系统设计、电源部分设计、触摸屏显示模块设计。电源部分负责为整个系统提供所需要的电源。单片机最小系统将使用单片机作为系统核心处理器,将和触摸屏进行通信,实现人机对战。触摸屏显示模块除了与单片机通信,还需要显示出棋盘,能进行人机交互。2.1单片机最小系统设计本次设计使用STM32F103RCT6单片机作为系统核心处理器,该芯片是一款STM32系列ARM-M内核的32位小型控制器,有64个引脚,存储容量256 kB,电压2 V3.6 V,工作温度-4085。作为一款专门用于嵌入式设计的芯片,
3、其本身就具有高性价比、高性能、低功耗等特点,而且具有多I/O口和多通信接口,能满足设计需要。该处理器需要与触摸屏进行通信,接收并处理触摸屏上的触摸点信息,在建立的棋盘数学模型中模拟下棋,还要将结果反馈给触摸屏。2.2电源模块为了保证系统的稳定运行,需要合适的外部供电,最后采用USB供 电。因 为USB一 般 只提 供5 V电 压,还 需 要 使 用AMS1117将5 V降压成3.3 V以供后续使用。2.3触摸屏选型为了能够进行人机交互,触摸屏是有必要的,之所以选择电容式触摸屏而非电阻式触摸屏,是因为电容式触摸屏更加耐用,且响应速度更快3。而选择7寸屏幕,是为了能完整显示棋盘及其他功能选项。经过
4、反复比较后选择了ATK-7TFTLCD模块。3系统软件设计系统软件部分设计可以分成以下几个部分,包含了单片机、触摸屏的初始化和通信程序、触摸屏显示和触摸部分程序、五子棋人机对战算法、胜负判断。单片机、触摸屏的初始化,将进行相应的定时器、中断、串口基于 STM32 的人机对战五子棋系统设计王梦寻戴家兴施武斌杨鑫钱林皓玮薛晶晶(绍兴文理学院机械与电气工程学院,浙江 绍兴312000)Design of Five-Go Chess System Based on STM32摘要:采用STM32单片机作为系统的主处理器,同时连接显示屏显示出1515的棋盘,可以触摸屏幕下棋。同时选择最直观的贪心算法,该
5、算法可以概述为当人下完一步后,单片机会进行搜索合适落子的点,并计算每个落子得到的分数,选出最适合落子(得分最高)的点作为后一步。经过实验证明,该五子棋人机对战系统具有操作简便、反应灵敏、界面显示清晰等特点。关键词:STM32;计算机博弈;五子棋;人机对战Abstract:Using STM32 MCU as the main processor of the system,while connecting the display display 1515 board,can touch the screen to play chess.At the same time,the most int
6、uitive greedy algorithm is selected.The algorithm can besummarized as that after the next step,the MCU will search for the right step,calculate the score of each step,and selectthe most suitable point for the step(the highest score)as the next step.The experiment proved that the design of gob-man-ma
7、chine battle system has the characteristics of simple operation,sensitive response and clear interface display.Keywords:STM32,computer game,five-go chess,man-machine battle151基于STM32的人机对战五子棋系统设计图3人机算法流程图2总体程序流程图初始化设置,使整个系统能够正常启动。五子棋人机对战算法是本系统的关键算法,本次设计采用的是直观的贪心算法,即搜索当前局面的最优点位进行落子。系统软件部分设计流程图如图2所示。3.
8、1人机算法部分在一系列的计算机博弈算法中,本次系统设计选择的是一种较为直观简洁的贪心算法,其核心思想是:建立一个基于当前棋局的数学模型,量化每一个合适的空白点位,寻找最优的点位进行落子4。具体流程如3图所示。3.2根据棋盘建立模型为了量化当前局势,便于搜索最优点位,建立一个好的数学模型是必要的。根据经验,本文使用了一个二维数组来表示当前棋盘。数组的行和列即代表了棋盘的行和列,又使用了3个数字来分别表示该交叉点的状态:0表示该交叉点没有棋子,1表示该交叉点上已放了黑子,2表示该交叉点上已放了白子5。示例如图4所示。3.3棋型分值评估已经用二维数组表示了棋盘,再轮到电脑方落子时,首先需要选择合适的
9、空白点位,因此首先从(0,0)点开始,依次搜索到(14,14),挑选出该交叉点数字为0的点。挑选出能落子的点后,如何判断下在哪个点才是最优点,就需要进行得分评估。模拟人脑的思路,我们下棋会优先选择的点位一般是能将我方凑成活四、活三或是能够阻止对手凑成活四、活三的点位。如图5所示,之所以黑方会选择这个点位下棋,是因为这个黑子不仅能阻止白色棋子组成活四,还能使黑色棋子组成活三,方便自己的后续进攻。单从这一部分而言,可以认为该点基本是最优点位。需要根据这个思路进行编程,让电脑能够作出回应(对战)。因此,我们可以建立一套估分系统,计算每个空白点位的得分,找出得分最高的点位作为最优点。一般来说,我们需要
10、考虑该点落子之后的四个方向,它将和这四个方向的棋子组成何种棋型,每个棋型应当有不同的得分,越接近胜利或者阻止对手胜利的棋型应当获得更高的得分,根据平日经验和调试过程后总结出了一份得分表。如表1所示。3.4棋型判断得到得分表后,就可以判断该点位落子之后的得分,需要从该点为中心,从四个方向依次搜索棋型,因为已经将棋盘二维数组化,可以直接从数字上判断。表2为棋型判断表,其中1、2代表不同方的棋子,0代表空位。表2棋型判断表以落子点其中一个方向为例,判断该点是否符合成五棋型,若是,则返回成五得分,若不是,则继续向下判断,直到确认是某一个棋型,返回该棋型得分。3.5点位得分每一个模拟落子点位的得分,应当
11、是以该点位为中心的四个方向所构成的所有棋型的得分总和,这样才能比较直观地选择出最优点。继续以图4为例,假设该点为(i,j),它的四个方向分别构成的棋型分别为活二、活三、阻止活四,那么,该点的得分可以简单表示为:S(i,j)=2+40+2000=2042。3.6落子从(0,0)扫描到(14,14),挑选出空白点位并计算该点位模拟落子后的得分,然后比较得分选出最高得分点,即是最优落子点。4触摸屏部分4.1显示部分为了更好地显示字符,使用了PCtolLCD2002工具作为辅助。这款软件能够以像素为单位生成所需要的汉字的字模,方便在程序中使用。使用软件得到字模后,需要的时候就可以直接引用。4.2触摸部
12、分在使用触摸屏前,需要先初始化触摸屏,然后等待触摸。因为并不能确定何时会有触摸事件发生,所以,则需要每隔一定时(下转第160页)图4二维数组表示棋盘示例图5选择优势点位表1棋型分值表152(上接第152页)间(10 ms)扫描一次屏幕,一旦检测到有点触摸,则立刻计算得到精确触摸位置,然后由单片机处理,判断是在离该触摸点最近的空白交叉点落子还是重新开始或悔棋。流程如图6所示。若是触摸点在棋盘内部,则选择离触点最近的交叉点进行落子;若是触摸点在棋盘外部,则判断是点击了悔棋按钮还是重新开始按钮。在一盘人机对弈棋局中,悔棋是非常重要的一部分,机器不会下错位置,而人可能因为各种原因下错。为了能够进行悔棋
13、,在本系统中额外使用一组二维数组记录每一步的坐标点,当点击了悔棋按键后,就需要清除最近二步(人和机器各一步)的记录,并将这两步落子清除。同理,重新开始部分与悔棋部分相似,其中,重新开始需要清除每一步的记录,并刷新整个棋盘,以便重新开始对弈。5结束语本次设计的系统是以STM32单片机为基础的人机对战五子棋系统,本文从模块处理硬件选择、算法设计等方面分析介绍了整个系统。整个系统主要是以触摸屏为基点进行人机交互,单片机对触摸屏发送过来的数据进行分析处理,再返回给触摸屏,即是只要点击屏幕就会作出反应的人机对战系统。参考文献1李昊.五子棋人机博弈算法优化研究与实现D.大连:大连海事大学,20202李俊平
14、.关于约束人工智能情感的思考J.科协论坛(下半月),2013(1):85-873龚海锋.基于多点触摸的自然手势识别及人机交互的研究D.武汉:武汉理工大学,20134涂智豪.人工智能五子棋系统设计与实现D.长沙:湖南大学,20165张效见.五子棋计算机博弈系统的研究与设计D.合肥:安徽大学,2017收稿日期:2022-04-14图6流程图图2中兴云计算平台围绕油化产业新需求,采取共建联合研发中心、合作开展项目研究、共建实验测试平台等多种模式,建立起稳定的校企产学合作机制。2014年与大庆油田综合录井二公司合作开展现场便携式综合录井仪的研制,形成“教师-工程师-学生”混合研发团队,在完成项目研发的
15、同时还结合项目形成了围绕油田钻探生产的智能检测与控制技术应用实践教学项目。2015年与大庆宇奥科技有限公司共建综合测试油田应用技术联合研发中心,教师带领学生完成了固井施工三参数仪表的方案改进工作,完成了仪表控制核心功能的测试。2018年通过校企双方的共同努力建成中兴ICT通讯产业学院,自动化专业学生依托企业开发的ICT、物联网技术相关实践课程,及时补充了工程实践所需的前沿知识和技能。依靠校企合作交流,学生毕业设计、学科竞赛获奖、实习实训开展的质量均有较大提升,参与企业项目开发的学生工程实践能力获得了行业相关企业的认可,近年在石油、化工行业内实现高端就业的毕业生人数稳步增长。3.4打造工程实践经
16、验丰富的教师团队专业学生工程实践能力培养的质量与指导教师团队的水平密切相关,专业实验中心一直注重指导教师能力的提升。中心建立了教师进入企业定期实践锻炼的管理机制,打通了教师与企业专家沟通交流的渠道,形成了合理评价教师工程实践经验增长的指标与体系,对实践指导教师水平的提升起到了促进作用。在具体实践教学实施中,综合实践项目指导以团队为基本单位,打破了以往个人指导在综合工程经验不足上的局限,根据每位指导教师的能力、经验、水平和技术擅长合理分配指导任务,实践教学实施效果突出,学生实践能力提高明显。中心结合我校对双师型教师认定、考核的要求,为实践指导教师制定了培训学习计划,促进教师不断提升个人能力和水平。依托稳定的校企产教合作,定期举办校企双方交流论坛,帮助中心指导教师及时掌握工程环境和技术的变化,保证实践项目内容的快速更新。4结束语技术更迭进步带来的工程环境变化给高校工科专业人才培养带来了挑战,人才培养为了更好地契合于地方油化企业,专业实验中心需要以学生工程实践能力培养为核心,积极应对产业变革对工程技术人才培养提出的更高要求。大庆师范学院自动化专业坚持实验中心建设突出工程实践能力培养,通过找准