图片缩略图

魔方求解器使用Arduino和MATLAB

版本1.2.0.1 (12.3 MB) MathWorks MATLAB硬件团队
使用图像处理和arduino控制的伺服电机解决魔方

2.7 k下载

更新2016年9月1日

查看许可协议

在这篇文章中,我们构建了一个机器人,它使用MATLAB、SparkFun RedBoard (Arduino Uno克隆)、两个伺服电机和一个网络摄像头来解决魔方。提交的文件包含了用于控制机器人的所有代码,一篇详细描述机器人如何构建和编程的文章,以及最终结果的几个视频。如果您有兴趣了解我们的项目,请下载此提交文件。或者将其作为构建和控制自己的魔方解决机器人的起点。
除硬件组件外,本项目还需要MATLAB和图像处理工具箱。它还使用了Arduino®硬件的MATL金宝appAB支持包,可以在这里免费下载://www.tatmou.com/matlabcentral/fileexchange/47522-matlab-金宝appsupport-package-for-arduino%C2%AE-hardware
该项目的初始设置包括用现成的材料建造机器人。除了Arduino设备、网络摄像头和伺服器,我们还使用了乐高积木、亚克力板和硬质聚苯乙烯泡沫。该机器人由两个主要部分组成。一个支架从下面将立方体固定在一个开口的盒子里,并可以在水平面上旋转立方体。一个夹持臂可以从上面放下来固定立方体的两层,同时夹持器可以从下面旋转一个面。夹持臂也可以向前推动,将立方体翻转到不同的一侧。
随着整个机器人的组装和校准,解决立方体需要两个步骤:
1.读取打乱的多维数据集的初始状态。

编写了MATLAB函数来控制Arduino上的伺服电机,使它们可以旋转支架中的整个立方体并将其翻转到不同的一侧。这些函数用于旋转立方体,使6个面都朝上,并用网络摄像头捕捉面部图像。使用图像处理工具箱,确定每个小面的颜色。使用自定义的MATLAB UI验证结果并纠正任何错误。

2.解立方体。

用于求解立方体的算法是Thistlethwaite 45 (T45)算法。之所以使用它,是因为该算法的MATLAB实现已经在MATLAB中央文件交换中提供,作为提交的一部分://www.tatmou.com/matlabcentral/fileexchange/31672-rubik-s-cube-simulator-and-solver

T45算法的输出决定了哪些面应该被翻转。然后,这将转换为机器人的一系列动作,可以旋转立方体,将其翻转到另一侧,并转动单个面。一旦所有步骤都完成了,立方体就被解决了。

引用作为

MathWorks MATLAB硬件团队(2021)。魔方求解器使用Arduino和MATLAB(//www.tatmou.com/matlabcentral/fileexchange/49434-rubik-s-cube-solver-using-an-arduino-and-matlab), MATLAB中央文件交换。检索

MATLAB版本兼容性
使用R2014a创建
与任何版本兼容
平台的兼容性
窗户 macOS Linux
社区
更多文件在电力电子控制社区

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!

ArduinoRubiksCubeSolver / html /