国际象棋机器人的制作图解

电子说

1.2w人已加入

描述

第1步:要求

所有代码都是用Python编写的,它将在Raspberry Pi上运行。

Raspberry Pi是一种小型,廉价(约40美元)的单板计算机。由Raspberry Pi基金会开发。原始模型变得比预期的要受欢迎得多,它被出售用于机器人技术。

我的机器人使用Raspberry Pi,并且机器人手臂是通过套件Lynxmotion AL5D构建的。该套件随附伺服控制器板。 (我刚刚给出的链接是到RobotShop的美国站点的;请单击其站点页面右上方您所在国家(例如英国)的标志之一。

您还需要一个表格,摄像头,照明设备,键盘,屏幕和指示设备(例如鼠标)。当然还有棋子和棋盘。我将在后续步骤中更详细地描述所有这些内容。

步骤2:硬件构建

正如我之前指出的,视觉代码的核心将适用于各种构建。

该构建使用Lynxmotion的机械臂套件AL5D。该套件包含一个SSC-32U伺服控制器板,用于控制手臂中的电机。

我使用的Raspberry Pi I是Raspberry Pi 3 Model B +。这通过USB连接与SSC-32U板通信。

编辑:Raspberry Pi 4现在可用。

您将需要:

15W USB-C电源–我们建议使用正式的Raspberry Pi USB-C电源

装有NOOBS的microSD卡,该软件可安装操作系统(购买预装的SD卡以及您的Raspberry Pi或下载NOOBS来自己加载卡)

键盘和鼠标(请参阅下文)

通过Raspberry Pi 4的微型HDMI端口连接到显示器的电缆

我需要进一步伸手去拿机器人手臂,因此我做了一些较小的修改,使用了可以从RobotShop购买的其他Lynxmotion零件:

1。将4.5英寸的管换成6英寸的管。

2。尝试使用另外一组弹簧,但是当我实施下面的第3项时又回到了一对。

3。使用1英寸的垫片-Lynxmotion部件HUB-16

4扩展了高度。使用我拥有的一些备用乐高零件和松紧带(!)附接的备用夹持器垫来扩大夹持器的作用范围,效果非常好,因为它在提升零件时具有灵活性。

可以在右上方的图像中看到这些修改。

在棋盘上方安装了一个摄像头。

步骤3:移动机器人的软件

所有代码均用Python 2编写。逆运动学为了正确移动各种马达,需要代码,以便可以移动棋子。我使用了Lynxmotion的库代码,该库代码支持二维移动电动机,并在我自己的代码中添加了3个维度(抓爪角度和抓爪下巴运动)的代码。

因此,我们有了可以移动的代码碎片,碎片,城堡,辅助传递等等。

国际象棋引擎是Stockfish-可以击败任何人! “ Stockfish是世界上最强大的国际象棋引擎之一。它也比人类最好的国际象棋大师强得多。”

驱动国际象棋引擎,验证动作是否有效的代码,等等。第四是ChessBoard.py

我使用来自http://chess.fortherapy.co.uk的一些代码与之交互。我的代码(上面)然后与之交互!

步骤4:识别人类活动的软件

我已经在Instructable中对此进行了详细描述。为我的国际象棋机器人乐高积木游戏-不需要在这里重复!

我的“黑色”作品本来是棕色的,但是我将它们涂成了哑光黑色(带有“黑板上的油漆”),这使得

第5步:摄像头,灯光,键盘,桌子,显示器

这些与我的Chess Robot Lego版本中的相同,因此在此无需重复。

除了这次我使用了另一种更好的扬声器,即Lenrui蓝牙扬声器,该扬声器通过USB连接到RPi。

可从amazon.com,amazon.co获得.uk和其他渠道。

我现在还使用另一台摄像机-HP Webcam HD 2300,因为我无法使以前的摄像机可靠运行。

算法如果棋盘的颜色与棋子的颜色相去甚远,则效果最好!在我的机器人中,棋子是灰白色和棕色,而国际象棋棋盘是手工制作的卡片,是浅绿色的,在“黑色”和“白色”方块之间几乎没有差异。

这些算法需要相机到板的特定方向。如果您遇到问题,请在下面发表评论。手臂的作用范围有限,因此正方形尺寸应为3.5厘米。

步骤6:获取软件

1。 Stockfish

如果您在RPi上运行Raspbian,则可以使用Stockfish 7引擎-它是免费的。只需运行:

sudo apt-get install stockfish

2。 ChessBoard.py从这里获取。

3。基于http://chess.fortherapy.co.uk/home/a-wooden-chess的代码。..随附了我的代码。

4。 Python 2D逆运动学库-https://github.com/Lynxmotion/Arms/tree/master/Code%20examples/Python%20(RPi)

5。我的代码会调用上面的所有代码,并让机器人进行移动,还有我的视觉代码。通过发表评论从我这里得到这个,我会回复。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分