- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
能在不同类型的道路上自动寻道
【作品介绍】
智能型实物棋盘人机对弈象棋机器人摘要:智能型实物棋盘人机对弈象棋机器人智能型实物棋盘人机对弈象棋机器人关键词:;;物理学技术结合了人类智能型实物棋盘人机对弈象棋机器人就是以基础,结合制作的一件作品。
1 设计方案
将人机对给人们更多的乐趣。基本思路智能型实物棋盘人机对弈象棋机器人控制机械臂移动、子、吃子。如果吃子需要先将被吃棋子移走移动吃棋子硬件工作原理
(1)坐标定义红色棋子,智能型实物棋盘人机对弈象棋机器人黑色棋子。棋盘以右上角为原点(00)。为方向,为方向。
图1 实物棋盘坐标定义
(2)获取坐标
图2 电路结构图
在木质棋子正面打一个图钉,其目的是被电磁铁吸引,以搬动棋子;在棋子背面挖去一个小圆柱孔,安装钕铁硼磁铁,当棋子搬动到某个位置时,在这个棋盘格点处磁场强度大大增加。在每个棋盘格点处挖一个上小下大的圆孔放置霍耳元件,构成9行10列的霍耳元件阵列,其编号与图1相对应。当棋子被搬动一次,相应的位置的霍耳元件产生的电压增大,其信息就传送到单片机,然后分析,作出下一步棋的走法。(3)棋子
智能型实物棋盘人机对弈象棋机器人单片机是连接与机械臂的桥梁,通过与进行串口通信来控制机械臂移动。
根据发送的坐标控制3个步进电机的运动,方向步进电机工作频率为,步距角均为1.8°每次接受个坐标,先判断个坐标是否合法,之后根据相对进行移动
1.4 软件工作原理
(1)象棋算法算法有极大极小值法搜索引擎Alpha-Beta法搜索引擎Fail-Soft Alpha-Beta法搜索引擎渴望搜索引擎极小窗口搜索引擎迭代深化搜索引擎MTD(f)搜索引擎使用历史启发和置换表的Alpha-Beta搜索引擎(2)数据通信通信方面使用MFCWindows下程序框架,通过MFC中的MSCOMM空间来控制通讯。
SetCommPort(int); //设置发送端口号
SetPortOpen(); //打开端口
SetSettings(“9600,n,8,1”); //设置端口波特率等信息
SetInputMode(int); //设置端口发送模式
SetRThreshold(1); //建立OnComm事件
SetPortOpen(); //打开端口
SetInputLen(0); //设置端口发送数据帧长度
SetOutput(CString); //发送的数据帧
GetInput(); //读取缓冲区
GetElement(); //转换为BYTE型数据
数据帧协议字节0”表示“0xff”(十六进制);字节0x01”;
字节号“3”表示x1坐标;字节号“4”表示y1坐标;
字节号“5”表示x2坐标;字节号“6”表示y2坐标;
对于字节号“1”和“2”为
1号字节 0x30 2号字节 0x30 表示无吃子移动 0x31 0x30 有吃子移动 0x31 0x31 悔棋操作 0x30”即十进制的48ASCII码对应的字符为0”;
在下棋过程中需要“悔棋时,单片机悔棋响应,将棋盘恢复为上一次的实物棋盘形态,。
举例说明:
将棋子从(3, 2)移动到(3, 4)则发送数据如下十六进制0xff 0x30 0x30 0x33 0x32 0x33 0x34 0x01 十进制255 48 48 51 50 51 52 1 ASCII 0 0 3 2 3 4 发送时发送16进制对应的二进制数据帧
1111111100110000 0011010100 2 技术难题
三维机械臂定点移动
控制电磁铁接通回路和断开回路
控制智能型实物棋盘人机对弈软件的时候,设计软件的UI,让界面尽量做到界面友好,操作兼顾的通信,能够实时观察软件的通信。设计软件的核心算法,引入一系列的全局变量方便调用。象棋的计算方法上,使用了的算法,用历史启发和置换表的Alpha-Beta搜索引擎从而使的棋高,能达到人对弈的。
这些功能,建立了
(1)CEveluation类:估值类,对给定的棋盘进行估值;
(2)CMoveGenerator类:走法产生器,对给定的棋盘局面搜索出所有可能的走法;
(3)CSearchEngine类:搜索引擎基类;
(4)CNegaMaxEngine类:负极大值法搜索引擎;
(5)CAlphaBetaEngine类:采用了Alpha-Beta剪枝技术的搜索引擎;
(6)CFAlphaBetaEngine类:fail-softalpha-beta搜索引擎;
(7)CHistoryHeuristic类:历史启发类;
(8)CAlphabeta_HHEngin
原创力文档


文档评论(0)