基于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
上位机包括四个部分:
- 界面:显示摄像头处理结果,输出调试信息
- 象棋搜索算法:运行Elephantfish象棋搜索算法
- 图像处理:使用OpenCV及级联分类器识别棋子的位置及类别
- 串口通讯:负责上位机和下位机的通信
界面
视频展示
https://www.bilibili.com/video/BV1gt4y1u7NA?www.bilibili.com/video/BV1gt4y1u7NA
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!