Pico相比于传统树莓派,更偏向掌控。本项目充分发挥其掌控,并结合传统树莓派生态优良,打造一个五子棋AI对弈平台:图像识别棋盘、PC通讯调用算法、IO口掌控机械结构下棋。该平台可用来学习AI算法、设备学习,同期兼顾对机械臂、摄像头等硬件外设的运用。
1、概述
树莓派最新推出的Pico,基于其双核Arm Cortex M0+芯片RP2040。对比可发掘,这一颗芯片,相较于传统的树莓派,更偏向一个做掌控的MCU单片机,其丰富的外设IO,精巧的结构,很难让人相信这亦是树莓派系列。
该项目的想法是想明显Pico的掌控性能,同期又继续发挥树莓派现有的优良生态环境的优良,放开胆子,两个方面的优良相结合。打造一个五子棋AI对战系统,即:
(1)图像识别五子棋盘;
(2)与PC通讯调用关联算法和库,计算下一步落子;
(3)Pico经过IO掌控机械结构,安置棋子,实现真正道理上的人机对弈。
项目新意:
一方面,在软件编程上,能够基于该项目平台学习人工智能、深度学习关联的算法知识;另一方面,在硬件方面,能够学习IO掌控机械臂、调用摄像头等外设方面的硬件知识和技能。该项目软硬相结合,后续再研发、再学习的潜能很强。
五子棋的算法较围棋简单,亦有较多现成的库可参考。该项目就相当于一个迷你版的阿尔法狗。听起来是不是很酷!
2、技术路线
1、图像识别
日前摄像头初步计划选择:OV7670摄像头(FIFO)
该摄像头集成度高,调用很简单,且有必定的实质工程经验做为参考。该摄像头清晰度做图像识别已然足够。
在算法方面,采用较为成熟的Ganny算子边缘检测和图像灰度处理。鉴于Pico资源有限,日前思虑Pico做为一个中继或是做初步处理的功能。重点算法能够经过串口通讯将数据传递给PC端上位机,上位机计算后识别五子棋棋子坐标及其棋局状况。
2.下棋算法
下棋算法基于Python编程,发挥 Python强大的能力及生态。初步可调用现有的有些五子棋算法,实现基本功能。
更进一步地,能够这里基本上,加入AI算法和深度学习,在PC端训练出一个五子棋AI,计算下一步落子。该过程可研发程度较高,后期可很久连续的优化研发,可做为一个学习工具。
最后能够实现对弈对手难道选取:简单、中等、困难、挑战AI等模式。
3.下棋执行
PC上位机计算得到下一步落子的位置坐标后,将信息经过串口传到Pico。Pico经过IO口掌控机械臂结构,在棋盘相应位置安置五子棋。
为节省资源和保准落子的准确性,机械臂采用X-Y二维移动臂+安置臂两个结构构成
X-Y二维移动臂采用2个步进电机,占用4个IO;
安置臂采用2个舵机,占用4个IO;
为保准落子的准确性,提前输入并校准棋盘各坐标的位置(棋盘各坐标对应平面X-Y轴两个步进电机的转动量)
如有必要,可采用摄像头辅助识别落子位置,增多落子准确性。形成闭环。
3、可行性与项目优良:
1.OV7670摄像头有运用经验,并有海量的现成资料;
2.机械臂的掌控有项目经验可参考;
3.五子棋算法有较多可参考的算法和资料,以及有关联的五子棋算法库可经过Python调用。相针对围墙,五子棋算法简单,可学习性和实现性较强。
4.Pico 的外设掌控丰富:30*GPIO管脚,16*PWM通道,足以实现以上的掌控方面的需求;树莓派及其基于microPython研发为算法的深度研发供给了强大的生态和资源,是其他单片机不可比拟的。
5.该项目平台打造之后,亦是一个深入软硬件学习的平台。
(1)硬件方面:学习IO、机械臂掌控(掌控舵机、步进电机);摄像头调用;串口通讯等关联硬件知识。
(2)软件方面:除了Pico的片上编程之外,还能学习上位机编程、Python编程、AI算法、设备学习等深度的软件编程知识。是一个人工智能的学习平台,能够用来持续训练和打磨五子棋AI模型。
这是一个迷你版的阿尔法狗,同期亦是真正道理上和你面对面下棋的AI。
|