APP下载

基于慧鱼模型和LabVIEW的智能五子棋机器人研究

2018-03-15马成武

科技视界 2018年35期
关键词:五子棋人工智能

马成武

【摘 要】慧鱼模型,是创新性极高的一种教学工具,可以组成各式各样的模型机器人,可以模拟众多现实场景。本研究是基于LabVIEW平台,用慧鱼模型设计一个人工智能五子棋机器人,最终完成了软件和硬件的搭建。

【关键词】慧鱼模型;LabVIEW;人工智能;五子棋

中图分类号: TP18 文献标识码: A 文章编号: 2095-2457(2018)35-0008-002

DOI:10.19694/j.cnki.issn2095-2457.2018.35.004

Research on Intelligent Backgammon Robot Based on Fischer Fish Model and LabVIEW

MA Cheng-wu

(School of Information and Mechanical Engineering, Shanghai Normal University, Shanghai 201418, China)

【Abstract】Fischer model is a kind of teaching tools with extremely high innovation, which is able to make various model robots and simulate many real situations. As for this research project, we design an intelligent gobang playing robot based on LabVIEW with the fischer model, and finally finishboth of the software and the hardware.

【Key words】Fischer model; LabVIEW; Artificial Intelligence; Gobang

0 引言

慧鱼模型是在阿门·费舍尔先生于1964年发明的“六面可拼接体”的基础上发展而成的技术含量很高的工程技术类智取拼装模型,适合设计方案的探究和论证。Arduino 是一款便捷灵活、方便上手的开源电子原型平台,能通过各种各样的传感器来感知环境,通过控制灯光、马达和其他的装置来反馈、影响环境,从而开发出很多互动作品。LabVIEW是一种程序开发环境,使用的是图形化编辑语言编写程序,具有强大的信号处理、分析和连接功能。

本研究课题设计了一款基于慧鱼模型和LabVIEW的人工智能五子棋机器人,基本实现了人与机器之间的五子棋对弈功能。硬件部分利用慧鱼模型组装和搭建控制系统电路,负责采集棋盘落子信息、准确完成落子等。软件部分利用Arduino和LabVIEW开发环境编写相关程序,负责处理棋盘落子信息、发送下一步落子坐标、驱动硬件部分完成落子等,结合各种传感器的反馈实现对慧鱼模型基本的控制,最终实现机电一体化的完整设计。

1 设计内容

1.1 硬件部分

智能五子棋机器人的硬件,主要包括摄像头、棋盘、机械臂(横轴和竖轴)、直流电机、电磁铁、指示灯、小滑轮以及各种用以连接、固定、支撑的部件等。

1.2 软件部分

LabVIEW控制程序

Labview程序由四个部分组成:图像读取部分,图像处理部分,五子棋算法部分,串口通信部分。

1.2.1 图像读取部分

图像读取部分的功能为通过摄像头将棋盘拍摄下来以便后续进行图像处理。

首先要用IMAQ Creat函数创建彩色和灰度图像的图像缓存,然后用IMAQdx模块的一系列函数配置摄像头,摄像头直接采集到的是彩色图像,利用IMAQ xtarctSingleColorPlane函数将其转化为灰度图像,其中Color Plane设置为Green。之所以转化为灰度图像,是因为五子棋只涉及到黑、白和棋盘底色三种颜色,将图像黑白化读取像素值即可,不需要其他复杂的颜色分析。

1.2.2 图像处理部分

图像处理部分是对之前得到的灰度图像进行处理,将摄像头拍到的棋盘转化成数组,作为五子棋算法程序的输入。

由于棋盘的规格为16×16,所以在前面板创建了一个16×16的二维数组,数组的每一格和棋盘的每一格对应。该二维数组用二重循环写入,循环参数为15。在这个循环中,第一次读取图像上(32,30)点的像素,根据像素值确定其为黑、白还是空格,黑记为2,白记为1,空记为0,写入数组的(1,1)格。第二次在(32,30)点的基础上纵坐标加30(棋盘图像上每一格的长宽都是30),得到数组上(2,1)格的信息。以此类推,最终整个数组都被写入。

1.2.3 五子棋算法部分

五子棋算法计算的是机器落子的位置。输入为棋盘数组,输出一个长度为5的字符串OUTPUT,代表落子位置和是否获胜。

要实现五子棋的算法,直接用Labview编写较为繁琐,因此选择更为合适的C语言编写程序。Labview的调用库函数节点可以调用dll库,而dll可以由C程序生成,这样就可以在Labview里调用C语言编写的程序, Labview程序框图如图3所示。

调用库函数节点的输入为array,即棋盘数组;输出为X,Y,WIN,对应表1的三个标志。确(下转第15页)(上接第9页)定好输入输出之后,用Visual C++6.0来生成dll文件。首先创建一个空的dll工程,然后在工程的source files创建一个.C文件,在工程的header files中创建一个.h文件。

在所创建的头文件中添加如下代码:

#ifndef FUNCTIONS_H

#define FUNCTIONS_H

__declspec( dllexport ) int testarray(int *array,int *X,int *Y,int *WIN);

#endif

__declspec( dllexport )不可缺少,它是用来声明所创建的dll文件是用来给外部调用的。

在所创建的头文件中添加如下代码:

1.2.4 串口通信部分

串口通信部分是将OUTPUT发送到串口,利用Arduino控制电机的运动。程序框图如图4所示,

2 结果和结论

Arduino控制器是一款性能优良的控制器,通过Arduino控制程序,實现了机器自动识别,自动落子,自动判断胜负,可以实现人机博弈,是人机一体化的设计。

【参考文献】

[1]修金鹏.Arduino与Labview互动设计[M].北京:清华大学出版社,2014:35-40.

[2]Arduino官网,http://arduino.cc/en/Main/arduinoBoardUno.

[3]巴雷特,Arduino高级开发权威指南,机械工业出版社,2014,20,33-36.

[4]沃伦,亚当斯,莫勒,Arduino机器人权威指南,电子工业出版社,2014,24-25.

猜你喜欢

五子棋人工智能
我校新增“人工智能”本科专业
Sim Sim
人工智能与就业
学下五子棋
90后罗运生:五子棋是我生命的一部分
财政部长吴波的“五子棋局”
基于PSP技术的五子棋网络系统的开发研究
夏日五子棋