珜羽 发表于 2012-5-30 00:41

人工智能之五子棋机器人——人机对弈

废话不多说,先上视频:

http://player.56.com/v_68688070.swf

珜羽 发表于 2012-6-2 02:03

CY57 发表于 2012-6-1 22:21 static/image/common/back.gif
啊,我電子小白啊,加二極管怎麼檢測多個按鍵呢,不太懂

能够识别组合按键的矩阵键盘的解析
http://arduino.cn/forum.php?mod=viewthread&tid=1122&fromuid=509
看这个帖子。。。

可以说专门为你写了。。汗。。。
从你回复帖子编辑到现在。。。洗洗睡了。。。
要给好评哦亲~~~

Randy 发表于 2012-5-30 09:21

这个觉得是重磅奉献,见识了!

珜羽 发表于 2012-5-30 01:16

单片机主控 主控板由一块STC的51单片机组成两组IO负责8X8棋盘上的棋子扫描一组IO负责控制电机的正转,停止,反转一组IO接受回馈控制(限位,转速脉冲)为了留出通信接口,使用了一块三八译码器留出了串口通信。



电机驱动部分 主控板的工作电压为5V,而电机需要9V的电压才能提供足够的动力。且单片机的输出电流不足以带动电机我们采用了L298N模块来驱动电机

珜羽 发表于 2012-5-30 01:12

机械臂的回馈控制部分 在机械臂上共设有五个开关作为单片机的回馈控制有两个开关为纵向以及横向的脉冲回馈开关,使得机械臂能把棋子准确的下在棋盘上有三个开关分别为机械手臂的纵向行程,横向行程和夹手的极限位置限制开关




绿色圈内是限位开关,天蓝色圈内是速度回馈开关

珜羽 发表于 2012-5-30 01:03

硬件总体设计: 五子棋对弈机器人主要包含由机械部分和电气控制部分组成。机械部分全部用慧鱼创意组件搭建而成 机械部分有:1)底盘模块2)棋子输送模块3)机械臂模块 电气部分有:1)棋盘棋子识别2)51单片机主控3)电机驱动模块4)机械臂反馈模块

珜羽 发表于 2012-5-30 01:04

底盘部分与棋子输送装置 底盘上的履带条为机械手臂行走时提供定位同时支撑着电气部分的棋子识别装置在后部是棋子输送装置。将棋子送至指定位置以提供机械臂夹取

珜羽 发表于 2012-5-30 01:05

棋子输送模块 电机启动后,带动履带,使棋子仓抖动起来,棋子匀速下滑。当棋子运动到履带上后,触碰挡板,单片机控制电机延时一段距离,将棋子运送到指定位置停止,供机械臂夹取。当机械臂取走棋子后重复以上过程。



托盘


挡板


珜羽 发表于 2012-5-30 01:09

机械臂的行走部分 机械臂上共装有三组电机第一组为两个减速电机,驱动齿轮咬合底盘上的履带,带动机械手臂在纵向上行走第二组为一个电机直接带动蜗杆,驱动机械手臂上的夹手在横向上移动第三组为减速电机,驱动夹手的夹取和释放棋子的动作


夹手电机


螺杆行程以及电机


履带行程以及电机


螺杆电机细节


珜羽 发表于 2012-5-30 01:13

本帖最后由 珜羽 于 2012-6-2 02:02 编辑

棋盘棋子部分
出于成本的控制需求,棋子的位置识别参考了矩阵键盘棋子的底部为金属,能够导电。落在棋格上的两个焊盘上,将其导通,相当于按键按下为了能够识别多个按键,添加了多个二极管






具体的原理见这个帖子:能够识别组合按键的矩阵键盘的解析

珜羽 发表于 2012-5-30 01:17

程序流程每个流程图的过程都是由子程序构成,使用C语言编写,虽然与汇编相比降低了一点运行效率,但是能加快软件开发过程,也使整个软件的可读性增强了。便于后期的升级维护。



智能核心算法简介(空白,具体内容为我自己口述的,要打出来好麻烦,直接看答辩视频吧)

珜羽 发表于 2012-5-30 01:18

模块化设计整个系统的设计都遵循模块化设计,尽力降低了模块之间的耦合度,为整个系统的扩容升级留下余地增大底盘面积,延长机械臂,并加强强度即可支持更大面积的棋类游戏,例如围棋。如果在机械臂夹臂上加上上下电机,即可支持大富翁,象棋,国际象棋,斗兽棋,飞行棋等等。。。程序上的模块化,使之只要改写AI模块,即可实现其他落棋游戏。 扩展方案主控板上留出了串行通信口,加上透传的GPRS模块(或者透传的WIFI模块),改动智能子程序为数据传输接受子程序,那么两个朋友相聚千里也能一起下棋了。



GSM模块


WIFI模块
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 人工智能之五子棋机器人——人机对弈