不知道用什么标题合适,想了很久也没想出一个酷炫狂拽吊炸天,低调奢华有内涵的标题,姑且就用这个吧。一直想着更新一篇博客来总结一下,可是由于前端时间学业繁重和自己的懒惰,导致拖了一两个月都没有开始,终于在暑假不上班的一天里,开始写这篇博客。这篇博客主要是总结一下我在做魔方机器人的一些过程,一些收获和一些遇到的问题以及怎么解决的,希望对别人能有一点点帮助,CSDN这个平台解决了我非常多的问题,我在上面获得了非常多的资源,现在想着也对社会做点小小的贡献。
我在做之前,在网上看了很多前人做的还原魔方的机器人,基本上都是分为三个部分:视觉、算法、旋转结构。需要的知识大概包括编程语言(至少C或C++)、opencv(用来处理图像)、solidWorks(做机械结构)。下面我分为软件、电路和机械结构来写,主要是软件部分。
一、软件部分
1.学习opencv。
我学习opencv是从csdn上的大神 浅墨_毛星云 那学的,这里附上博客地址/zhmxy555算是帮他打一波广告了,不过他的博客确实写得非常好,浅显易懂,推荐学习。
2.确定魔方中心点
学习完opencv后,就可以对图像进行一系列操作了。对魔方的一面的识别,首先要确定9个块在图像上的位置,这样在识别颜色的时候才能正确的识别并保存魔方的状态。方案有很多种,不管是确定左上角、右上角、左下角、右下角的块的像素点位置,都可以推算出其他块的像素点位置。我的方案是确定魔方的中心点,可以参考我之前的一篇博客/jason_er/article/details/79276534 主要写了如何来处理图像和确定中心点,有图有代码。
在做这部分的时候,正好遇上了微信跳一跳比较火,做了一个跳一跳的外挂。emmm,,,好像忘记发出来了,等我有时间整理发出来后,再把链接附到这里。
3.魔方颜色识别
在确定了魔方一面9个块的位置后,就要开始对每个块的颜色进行判断了。我也写了一篇关于颜色识别的博客,大家可以参考一下/jason_er/article/details/79294125
4.解魔方算法
这种算法非常多,话不多说,移步我另一篇博客,里面的代码做了详细的注释/jason_er/article/details/81152665
5.others
最后就是一些比较杂乱的东西了,按照自己的需要而学习。比如调用USB摄像头、和下位机通信、对文件夹的一些操作。有时间的话我会更一下调用摄像头和串口通信,当时找资料也找得挺难受的。
二、电路部分
我的下位机用的是STM32,控制6个步进电机旋转,比较的简单,驱动也是之家买的模块,所以几乎没有涉及到什么电路知识。不过六个驱动芯片,VCC、GND、控制线,如果全用杜邦线插的话,非常的乱;为了美观,我还是把电源和驱动弄到了一块板子上。如图
虽然看起来还是有点乱,不过比之前好多了。之后如果有时间的话,直接画PCB板集成一下就更简洁了。
三、机械部分
机械结构推荐用solidworks设计,入门简单,一两个小时就上手。材料呢大概就用些金属、亚克力板、3D打印。我就不附我的结构了,自我感觉做得比较菜,没考虑到受力,导致有几个薄弱地方,很容易断。这个教训花了我一百多块钱和几天的时间啊!
本人不擅长编辑文字之类的东西,这篇总结也算不上很详细,大家就大概看看吧,希望能有一点点帮助。里面可能也会有一些错误,一些BUG,希望有发现的大神帮我指出,感激不尽。如果有问题也可以给我发邮件交流1208689118@
最后附一张照片,我觉得结构非常的差,希望能有大神提出一些建议。
如果觉得《如何DIY一个还原三阶魔方的机器人》对你有帮助,请点赞、收藏,并留下你的观点哦!