本帖最后由 cc87707060 于 2018-1-18 20:18 编辑
先上图:
整体效果:
摄像头:
控制板:
上位机:
这个是第二个版本,上一个版本可以参考一下帖子:
https://www.amobbs.com/thread-5664459-1-1.html
这个版本主要优化了以下几点:
1、机械结构由原来的铝型材搭建,改为3D打印材料,为了打印这些材料,特地来了一个3D打印机,打印了一个多星期,以后要DIY什么,在Solidworks画一画直接打印出来,很方便,由于不是机械专业,3D打印文件来自网上,具体可以参考以下网站:
http://www.otvinta.com/download12.html
效果图如下:
2、上位机方案,由原来的手机APP,改为matlab + USB摄像头。主要原因是,今年一直在玩matlab,用来写算法非常方便,功能强大,调试方便。
3、下位机主要用stm32最小系统 和万用板 搭起来 , 简单方便,还是上一代拆下来了,包括舵机也是,还是原来的配方,哈哈。不过程序上面做了很大的优化。
通讯采用HAL+DMA+帧中断来接收上位机的指令,有点小题大做。舵机控制用两个定时器8路控制。采用多线程方式,可以让机器人边转动魔方,边接收上位机的指令。
4、算法上面,分两个,图像解析,和生成解魔方的步骤。CFOP算法具体可以参考动力老男孩的博客,我把它用C++封装起来,提供matlab调用。
http://www.diy-robots.com/?p=265
5、图像识别方面,由于上一个版本还太年轻,还不知道HSV颜 {MOD}格式,所以导致图像识别不够给力,这里聪明了,先把图像RGB格式转换成HSV格式后,颜 {MOD}区分杠杠的:
6、颜 {MOD}区分解决了,关键还要怎么找每个面的九个颜 {MOD}块,我使用的方法就是先确定中心块的颜 {MOD}范围,然后在往外找,具体也很简单,可以参考一下帖子:
https://www.amobbs.com/forum.php ... A%E5%99%A8%E4%BA%BA
7、待改进方面:
由于时间比较短,元旦开始做,光3D打印加打磨就花了一个多星期时间,还没做成一键解魔方的,步骤也比较繁琐,需要花时间优化。
8、下位机和上位机都比较简单,还比较粗糙不完整 ,3D打印文件网上也有了,把核心的图像识别算法和解魔方算法分享给大家,供大家参考。当然,最重要的是享受DIY的过程,有问题可以留言。
向楼主致敬!!!! 太强了
一周热门 更多>