【2022研电赛】安谋科技企业命题一等奖:基于EAIDK-610的中国象棋机器人对弈系统

基于EAIDK-610的中国象棋机器人对弈系统

作品全貌

下位机电路

AltiumDesigner16工程文件:

链接:https://pan.baidu.com/s/1I3_ZuyW63Es_l4B93szx8A
提取码:juro

下位机的主要功能是机械臂的运动控制,除此之外还有简单的人机交互界面(一个OLED显示屏,两个按键)、语音模块控制、与上位机的通信。

STM32资源分配如下:

I/O引脚 功能 使用到的系统资源
PA0 主臂电机脉冲输出 TIM2
PB0 副臂电机脉冲输出 TIM3
PB8 Z轴电机脉冲输出 TIM4
PA9,PA10 程序下载调试 USART1
PC13 程序运行指示 滴答时钟
PB3,PB4 电磁铁控制 普通I/O
PB5 蜂鸣器 普通I/O
PB13 主臂电机方向控制 普通I/O
PB12 副臂电机方向控制 普通I/O
PB14 Z轴电机方向控制 普通I/O
PB15 三轴电机使能控制 普通I/O
PA2,PA3 上位机通信 USART2
PB10,PB11 SYN6288语音模块 USART3
PB6,PB7 OLED屏 I2C(软件模拟)
PA13,PA14 SWD下载调试接口 SWD
PA4,PA5,PA6,PA7 预留SPI接口 SPI(硬件)
PA11,PA12 用户按键 普通I/O

下位机程序设计

下位机源码下载地址(Keil5):

链接:https://pan.baidu.com/s/1bUcL7kNskY2Asv6L1yjL6w
提取码:if84

下位机的主要功能是机械臂的运动控制,包括两部分:逆运动解算电机加减速控制

SCARA机械臂为三轴,正运动指的是已知每个轴的角度,这时候机械臂的姿态就唯一确定了,其末端执行器的xyz坐标也确定了。在象棋对弈过程中需要控制机械臂移动到棋盘的某个坐标,逆运动解算就是根据输入的xyz坐标计算出机械臂每个轴的角度。

上位机开发

上位机代码链接:https://github.com/STM32xxx/Chinese-chess-robot-upper-computer.git

上位机包括四个部分:

  1. 界面:显示摄像头处理结果,输出调试信息
  2. 象棋搜索算法:运行Elephantfish象棋搜索算法
  3. 图像处理:使用OpenCV及级联分类器识别棋子的位置及类别
  4. 串口通讯:负责上位机和下位机的通信

界面

视频展示

https://www.bilibili.com/video/BV1gt4y1u7NA?www.bilibili.com/video/BV1gt4y1u7NA

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年9月22日
下一篇 2022年9月22日

相关推荐