Arduino是一个开放源码的电子原型平台,它可以让你用简单的硬件和软件来创建各种互动的项目。Arduino的核心是一个微控制器板,它可以通过一系列的引脚来连接各种传感器、执行器、显示器等外部设备。Arduino的编程是基于C/C++语言的,你可以使用Arduino IDE(集成开发环境)来编写、编译和上传代码到Arduino板上。Arduino还有一个丰富的库和社区,你可以利用它们来扩展Arduino的功能和学习Arduino的知识。
Arduino的特点是:
1、开放源码:Arduino的硬件和软件都是开放源码的,你可以自由地修改、复制和分享它们。
2、易用:Arduino的硬件和软件都是为初学者和非专业人士设计的,你可以轻松地上手和使用它们。
3、便宜:Arduino的硬件和软件都是非常经济的,你可以用很低的成本来实现你的想法。
4、多样:Arduino有多种型号和版本,你可以根据你的需要和喜好来选择合适的Arduino板。
5、创新:Arduino可以让你用电子的方式来表达你的创意和想象,你可以用Arduino来制作各种有趣和有用的项目,如机器人、智能家居、艺术装置等。


SCARA 国际象棋机器人
它使用来自免费资源的 3D 打印 SCARA 机械臂和我的代码来识别人类动作并控制机械臂。



## 项目描述
我之前做了一个$ 笛卡尔下棋机械臂$ - 并且还想制作一个 3D 打印的 SCARA 手臂下棋。
它的工作原理是这样的:
人类下白棋,下棋。这是由视觉识别系统检测到的。然后机器人思考,然后开始行动。
等等......
也许这个机器人最新颖的地方是移动识别的代码。
因为人类的动作被视觉系统识别,所以不需要特殊的棋盘硬件(例如簧片开关或其他任何东西)。
USB 或 IP 摄像头安装在棋盘的正上方。
大多数代码在 Raspberry Pi(或其他 Linux 或 Windows)上运行,并使用 Arduino 代码进行反向运动和步进电机控制。

## 硬件构建
机器人的 3D 打印机文件可以按照“代码”下的链接中指定免费获得。pyBot 手臂被我修改为具有更长的手臂组件并使用迷你夹持器。Jjrobots 对硬件和机器人组装进行了很好的描述。我们不使用他们的抓手、电子设备或软件。
因此,我们有一个 Raspberry Pi(或其他 Linux 或 Windows)通过打印机电缆连接到 Arduino。Arduino 上有一个 Ramps 1.4 板,用于通过 A4988 电机驱动板驱动电机。
步进电机具有非常高的精度和可重复性。
作为 Arduino 的 USB 连接的替代方案,该代码支持使用 HC-05 的蓝牙(不是 BLE)。
## 移动机器人的软件
所有 Raspberry Pi 代码都是用 Python 3 编写的。
因此,我们有了代码,它将移动棋子、拿走棋子、城堡、支持 en passant 等等。
国际象棋引擎是 Stockfish - 它可以击败任何人!“Stockfish 是世界上最强大的国际象棋引擎之一。它也比最好的人类国际象棋特级大师强得多。
我使用 chessfortherapy.co.uk 中的一些代码来验证人类的移动并与 Stockfish 交互。我用于识别人类移动和移动 SCARA 机械臂的代码与此交互。
我使用 chessfortherapy.co.uk 中的一些代码来验证人类的移动并与 Stockfish 交互。我用于识别人类移动和移动 SCARA 机械臂的代码与此交互。
在 Arduino 上,I$ Nverse Kinematics 公司$ de 用于正确移动各种电机,以便可以移动棋子。此代码基于 ftobler 为他的笛卡尔机器人编写的代码,并由我为 SCARA 机器人修改。
识别人体移动的软件
这与我为我的$ 笛卡尔国际象棋机器人$ 编写的代码完全相同,所以请看那里的描述。
## 其他注意事项
如果棋盘的颜色与棋子的颜色相去甚远,则算法效果最佳!在我的机器人中,棋子是灰白色和哑光黑色的,棋盘是用彩色打印机在薄卡上手工制作的。可以在视频中看到。
棋盘应该光线充足且光线均匀,棋子的阴影最小。光线不应从棋盘或棋子反射回相机。需要一张坚固的桌子。
我的代码包含用于轻松校准相机的例程。提供了鱼眼失真校准,IP 摄像机更可能需要校准。如果 USB 相机放置得足够远,通常没有它就可以了。
机器人很容易手动校准。我们在每场比赛开始时都以向左伸出的手臂(如视频中所示),这可以通过肉眼轻松对齐。高度也可以调整到正确的高度。

## 项目代码和3D打印STL文件

相关说明
可指导资料:https://create.arduino.cc/projecthub/ricpd/scara-chess-robot-a45793
Arduino 代码位于 https://github.com/rpd123/Arduino-Firmware
Python 代码位于 https://github.com/rpd123/chess-robot
它使用迷你抓手:
不需要 https://www.thingiverse.com/thing:4394894/files
manipulator.stl
这是针对 pyBot 的修改版本。原文见:
https://www.jjrobots.com/scara-robotic-arm-assembly-guide/
我们这里有 pyBot stlfiles。与原来的变化是具有更长的柄1和替换的柄2(以及不同的夹具)。
钻穿轮毂并使用更长的螺钉
较长的刀柄1 需要 400 毫米的皮带。
注意:此修改适用于下棋,其中负载非常轻。
这种修改允许 shank2 右转回对付 shank1,从而允许机器人站在棋盘旁边并到达近处和远处的方格。
布线
Shank1 从肩部到肘部,shank2 从肘部到抓手。
连接: X 控制器到移动 shank2 的电机 Y 控制器到移动柄 1 的电机 Z 控制器到电机,使机器人垂直移动
在此图中 https://github.com/rpd123/community_robot_arm/blob/master/Assembly%20%26%20Control%20Guides/Wiring%20Guide/wiring-lower%20motor.jpg
控制器从左到右依次为 X、Y、Z。

附录
项目链接:https://projecthub.arduino.cc/ricpd/scara-chess-robot-8bd1b9
项目作者:ricpd
项目视频(4分钟):https://www.youtube.com/watch?v=ddsYWAB58ho
Stockfish 国际象棋引擎:https://stockfishchess.org/download/linux/
项目代码:
Arduino 代码位于 https://github.com/rpd123/Arduino-Firmware
Python 代码位于 https://github.com/rpd123/chess-robot
SCARA国际象棋机器人手臂,3D打印文件:https://github.com/rpd123/SCARA#readme
评论