查看: 64335|回复: 80

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

  [复制链接]
  • TA的每日心情
    慵懒
    2019-4-17 21:21
  • 签到天数: 29 天

    [LV.4]偶尔看看III

    发表于 2012-5-30 00:41 | 显示全部楼层 |阅读模式
    废话不多说,先上视频:


  • TA的每日心情
    擦汗
    2016-8-7 07:53
  • 签到天数: 112 天

    [LV.6]常住居民II

    发表于 2012-5-30 09:21 | 显示全部楼层
    这个觉得是重磅奉献,见识了!
  • TA的每日心情
    慵懒
    2019-4-17 21:21
  • 签到天数: 29 天

    [LV.4]偶尔看看III

     楼主| 发表于 2012-5-30 01:16 | 显示全部楼层
    单片机主控
    主控板由一块STC51单片机组成
    两组IO负责8X8棋盘上的棋子扫描
    一组IO负责控制电机的正转,停止,反转
    一组IO接受回馈控制(限位,转速脉冲)
    为了留出通信接口,使用了一块三八译码器留出了串口通信。

    image023.jpg


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

    image025.jpg
  • TA的每日心情
    慵懒
    2019-4-17 21:21
  • 签到天数: 29 天

    [LV.4]偶尔看看III

     楼主| 发表于 2012-6-2 02:03 | 显示全部楼层
    CY57 发表于 2012-6-1 22:21
    啊,我電子小白啊,加二極管怎麼檢測多個按鍵呢,不太懂

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

    可以说专门为你写了。。汗。。。
    从你回复帖子编辑到现在。。。洗洗睡了。。。
    要给好评哦亲~~~
  • TA的每日心情
    慵懒
    2019-4-17 21:21
  • 签到天数: 29 天

    [LV.4]偶尔看看III

     楼主| 发表于 2012-5-30 01:12 | 显示全部楼层
    机械臂的回馈控制部分
    在机械臂上共设有五个开关作为单片机的回馈控制
    有两个开关为纵向以及横向的脉冲回馈开关,使得机械臂能把棋子准确的下在棋盘上
    有三个开关分别为机械手臂的纵向行程,横向行程和夹手的极限位置限制开关


    image017.jpg

    image035.jpg
    绿色圈内是限位开关,天蓝色圈内是速度回馈开关
  • TA的每日心情
    慵懒
    2019-4-17 21:21
  • 签到天数: 29 天

    [LV.4]偶尔看看III

     楼主| 发表于 2012-5-30 01:03 | 显示全部楼层
    硬件总体设计:
    五子棋对弈机器人主要包含由机械部分和电气控制部分组成。
    机械部分全部用慧鱼创意组件搭建而成
    机械部分有:
    1)底盘模块
    2)棋子输送模块
    3)机械臂模块
    电气部分有:
    1)棋盘棋子识别
    251单片机主控
    3)电机驱动模块
    4)机械臂反馈模块

    image002.jpg
  • TA的每日心情
    慵懒
    2019-4-17 21:21
  • 签到天数: 29 天

    [LV.4]偶尔看看III

     楼主| 发表于 2012-5-30 01:04 | 显示全部楼层
    底盘部分与棋子输送装置
    底盘上的履带条为机械手臂行走时提供定位
    同时支撑着电气部分的棋子识别装置
    在后部是棋子输送装置。将棋子送至指定位置以提供机械臂夹取

    image004.jpg
  • TA的每日心情
    慵懒
    2019-4-17 21:21
  • 签到天数: 29 天

    [LV.4]偶尔看看III

     楼主| 发表于 2012-5-30 01:05 | 显示全部楼层
    棋子输送模块
    电机启动后,带动履带,使棋子仓抖动起来,棋子匀速下滑。
    当棋子运动到履带上后,触碰挡板,单片机控制电机延时一段距离,将棋子运送到指定位置停止,供机械臂夹取。
    当机械臂取走棋子后重复以上过程。



    image006.jpg
    托盘

    image008.jpg
    挡板


  • TA的每日心情
    慵懒
    2019-4-17 21:21
  • 签到天数: 29 天

    [LV.4]偶尔看看III

     楼主| 发表于 2012-5-30 01:09 | 显示全部楼层
    机械臂的行走部分
    机械臂上共装有三组电机
    第一组为两个减速电机,驱动齿轮咬合底盘上的履带,带动机械手臂在纵向上行走
    第二组为一个电机直接带动蜗杆,驱动机械手臂上的夹手在横向上移动
    第三组为减速电机,驱动夹手的夹取和释放棋子的动作


    机械臂夹手电机

    机械臂夹手电机

    夹手电机

    螺杆

    螺杆

    螺杆行程以及电机

    行走履带电机

    行走履带电机

    履带行程以及电机

    螺杆驱动电机

    螺杆驱动电机

    螺杆电机细节


  • TA的每日心情
    慵懒
    2019-4-17 21:21
  • 签到天数: 29 天

    [LV.4]偶尔看看III

     楼主| 发表于 2012-5-30 01:13 | 显示全部楼层
    本帖最后由 珜羽 于 2012-6-2 02:02 编辑

    棋盘棋子部分

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


    image019.gif

    image021.jpg


    具体的原理见这个帖子:能够识别组合按键的矩阵键盘的解析
  • TA的每日心情
    慵懒
    2019-4-17 21:21
  • 签到天数: 29 天

    [LV.4]偶尔看看III

     楼主| 发表于 2012-5-30 01:17 | 显示全部楼层
    程序流程
    每个流程图的过程都是由子程序构成,使用C语言编写,虽然与汇编相比降低了一点运行效率,但是能加快软件开发过程,也使整个软件的可读性增强了。便于后期的升级维护。


    image027.gif

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

    image029.jpg
  • TA的每日心情
    慵懒
    2019-4-17 21:21
  • 签到天数: 29 天

    [LV.4]偶尔看看III

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



    image031.gif
    GSM模块

    image033.gif
    WIFI模块
    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    【Arduino】108种传感器模块系列实验(55)---DHT11温湿度传感器
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    【Arduino】168种传感器系列实验(149)--AS608光学指纹识别模块
    【Arduino】168种传感器系
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    黑乌鸦的Arduino兵器库-----DFPlayer MiNi mp3音乐模块
    黑乌鸦的Arduino兵器库---
    嗯 这是一个系列后期会罗列几乎所有的常见基础模块的demo所以 大家的回复将是我最大
    【原创】 drawbot平面关节scara机械臂写字机 画画机器人直播...
    【原创】 drawbot平面关节
    这个项目上个月就在做了,结构和代码反反复复改了多次,加上自己又太忙,一直没来得及
    【干货分享】mega2560原理图PCB图纸altium designer18
    【干货分享】mega2560原理
    分享一下mega2560的板子 AD版本 **** 本内容被作者隐藏 **** ergo
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表