這周沒什么好寫的,設備驅動入門中,但還是想寫點東西,能堅持每周寫一篇的話還是寫吧
想想畢業快半年了,把畢設簡單寫一下吧,短時間內估計也不會去折騰這些玩意了
沒搞懂怎么插入視頻,直接放地址吧
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