这周没什么好写的,设备驱动入门中,但还是想写点东西,能坚持每周写一篇的话还是写吧
想想毕业快半年了,把毕设简单写一下吧,短时间内估计也不会去折腾这些玩意了
没搞懂怎么插入视频,直接放地址吧
http://v.youku.com/v_show/id_XMTU4NjYxNjA1Ng
方案
方案上最开始想用舵机+机械爪,但后来觉得好麻烦,加工也贵,而且网上也有好多版本的了,大同小异。
后来看号称世界最快的,是步进电机,直接插入魔方中,就是这个
http://v.youku.com/v_show/id_XMTQ1NTAzOTIw
想想可以参考,而且实现也简单,目前DIY的似乎还没看到这么做的,于是就定为步进电机方案(其实就是懒==)
机械
机械上,需要的就是一个支架,用于固定步进电机,以及步进电机与魔方的连接件
支架,支架其实怎么搞都好,只要能固定,固定直接就是热熔胶,简单粗暴。最开始用个盒子,后来试了下纸杯,最后的版本才想搞个书立好看些,也好调整位置以及安装
连接件,参考的那个老外的版本,是在魔方上有洞,然后爪子插进去卡住,具体去看视频。感觉太麻烦,干脆去掉中间的外壳,用来固定吧,于是去掉中间的外壳,量了下尺寸,画个零件,直接3D打印,成本几块钱一个吧,还行。一端直接插入魔方,另一端留出孔插步进电机轴,也是够简单粗暴的。精度方面倒也还好。
电路
淘宝一个开关电源,供电用。
主控用STM32F407,主要原因是熟悉,够用。其实用F103应该也够了
步进电机驱动就直接买的A4988,用起来也简单,然后就是接线了,好多线
这里还有个小问题,驱动的时候,用电压控制A4988的力矩,但只有两路DA,后来就想到用PWM+二阶滤波,效果还行
然后串口跟电脑通信,可以直接接个TTL,也可以加一对蓝牙弄成无线的,我是加了蓝牙,调试的时候电脑好放些,不受串口线限制。
软件
软件分上下位机
下位机
STM32就是跑个小操作系统,用的freertos,然后接收上位机的控制指令,解析后,驱动步进电机执行动作
所以首先是调试好单个步进电机的驱动,这个比较重要
然后从串口解析指令调用驱动即可
不用操作系统也行,但既然有,为什么不用呢,又不需要自己移植
上位机
上位机,比较麻烦的是魔方算法,还好也有不少开源的,参考一下弄个层先法,C#其实做上位机挺不错,入门轻松
大概是,鼠标填色,计算解法,串口发出去就行了
但有个问题是层先法太挫了,还好,有牛逼的软件,CubeExplorer,二阶段算法,溜得不行,基本上十几步就能搞定。
还提供了网络接口,于是在上位机中加上网络调用CubeExplorer功能
演示视频的那个解法就是上位机调用CubeExplorer跑出来,再发送给下位机执行的,所以看起来就是无法理解,转来转去怎么就还原了
一个比较大的缺点是没有做视觉,手工鼠标填色确实费事。一是没时间,二是没经验,三是没必要,毕竟只是个毕设,就这个样子都是白天实习,晚上在宾馆一点点弄,才搞出来的
本文链接http://www.cnblogs.com/zqb-all/p/6160481.html