王潤民, 劉占文, 楊 瀾, 惠 飛
(長安大學 a.現代工程訓練中心; b.信息工程學院; c.陜西省道路交通智能檢測與 裝備工程技術研究中心,陜西 西安 710064)
工程實踐教學是部分高校針對我國現行教育體制下的大學生動手實踐能力較弱的問題,在傳統(tǒng)理論教學的基礎上增加的實踐性教學環(huán)節(jié)。該環(huán)節(jié)通過建立一整套完整的工程意識和工程訓練培養(yǎng)體系,使大學工科學生參與工程實踐、形成工程思維、獲得工程經驗,從而培養(yǎng)他們的創(chuàng)新能力、工程實踐能力和社會適應能力[1]。然而我國高等教育中現有的工程實踐教學體系存在著很多不足:工程實踐教學環(huán)節(jié)多從教學工廠或金工實習發(fā)展轉變而來,教學內容多局限于金工實習、工程材料、機械制造等傳統(tǒng)基礎實踐課程,電氣信息類等現代實踐內容的教學能力較為薄弱;傳統(tǒng)實踐教學多以教師教學為中心,缺乏與工程、社會應用之間的交流互動;教學實踐局限于單一學科門類,跨學科、跨學術領域間的協同教學能力不足[2]。
為了解決上述問題,我校在現有的工程訓練中心的基礎上增加了現代電子電氣信息類的教學實訓區(qū),包括機器人設計開發(fā)、電工技能、可編程控制器、PCB制版、電子裝配、計算機輔助設計及計算機輔助制造等工程實訓室,并以此為依托開辦了我校的“IEEE電腦鼠走迷宮競賽”、“中國機器人創(chuàng)新大賽”、“全國電子設計大賽”、“挑戰(zhàn)杯”全國大學生系列科技學術競賽等實踐競賽項目。從而提高了我?,F代工程實踐環(huán)節(jié)的教學能力,促進了現代工程實踐與傳統(tǒng)工程訓練的交流融合。
論文以我校全國IEEE“電腦鼠”走迷宮競賽中的IEEE標準電腦鼠的設計與制作為例,從IEEE標準電腦鼠的軟硬件開發(fā)、傳感器及微控制器系統(tǒng)集成和算法設計等內容,闡述了學生在“IEEE標準電腦鼠設計與實作”這一工程實踐課程中需要學習的工程實踐技能,并通過長時間的實踐教學總結了該工程實踐課程的意義。
電腦鼠(Micromouse)是使用微控制器、傳感器、電機以及機械構件所組成的一種智能自主移動的機電一體化機器人。電腦鼠可以在不同的未知迷宮中自主的搜索并記憶迷宮墻壁的存在情況,在找到迷宮終點后,電腦鼠返回迷宮起點并通過算法分析迷宮內部結構得到起點到終點的最短路徑,然后根據最短路徑的特性規(guī)劃出最快的運動方式,由起點快速的移動到終點。電腦鼠的性能通過完成上述過程所耗費的時間衡量[3]。
自1979年以來,每年國際各地都會定期舉辦“電腦鼠走迷宮”的競賽,最新的比賽規(guī)則是2006年國際電工和電子工程學會(IEEE)制定的電腦鼠走迷宮競賽規(guī)則。如圖1(a)所示,規(guī)則規(guī)定電腦鼠的迷宮由16×16個的18 cm×18 cm大小的迷宮方格組成,迷宮墻壁為白色,表面涂有反射紅外線的涂料,迷宮地面為黑色,表面涂有吸收紅外線的涂料;迷宮的起點位于迷宮四個角的一個,但必須三面有迷宮墻;迷宮的終點由迷宮中心的四個方格組成,內部無迷宮墻壁[4]。
一個完整的電腦鼠包含了微處理器、電機、傳感器、車身機械結構、驅動電路、電池和車輪等硬件和負責控制電腦鼠正常運行的軟件程序,如圖1(b)所示,其開發(fā)實作過程融合了機械、機電、電子、傳感、軟件和智能控制等多領域的科技知識,非常適合作為相關學科領域綜合性工程實踐教學的教具[5]。
(a) IEEE標準迷宮
(b) IEEE電腦鼠
一個電腦鼠的開發(fā)包括了硬件設計、軟件設計和算法設計等部分,而且每一部分的設計必須考慮其他部分的設計內容,因此設計一種性能優(yōu)良的電腦鼠實質是采用軟硬件協同設計的方法構造一種嵌入式系統(tǒng)的過程。
2.1.1硬件選型及原理分析
在進行電腦鼠具體硬件設計之前,項目小組成員首先需要根據所設計的電腦鼠的功能需求和設計目標按其所負責的方面分別進行各部分硬件種類及規(guī)格的選型和使用原理的分析,包括微處理器、傳感器、電機、電源等,一般需要提供多種選型方案,并在實際設計過程中根據整體設計方案作出調整[6]。
電腦鼠最早是純機械式的,由彈簧驅動,隨著電子技術特別是微處理技術的發(fā)展,越來越多種類的微處理器被應用于現代電腦鼠中。微處理器作為執(zhí)行控制部件和算術邏輯部件控制電腦鼠的運動和對迷宮的求解。學生必須首先考察所設計的電腦鼠對微處理性能的要求,如代碼和數據的存儲、模擬和數字傳感器信號的接收處理、控制和驅動信號的發(fā)送、電平標準等,然后選擇合適的微處理器,如ARM、DSP、MCU等[7]。
電腦鼠還需要用于檢測周圍環(huán)境和自身運行狀態(tài)各種不同種類的傳感器,如用于檢測迷宮內部墻壁信息及其在某一迷宮格所處位置的紅外傳感器或超聲波傳感器,用于檢測自身行走距離的旋轉光電編碼器和用于檢測轉彎車體運行姿態(tài)的陀螺儀等。學生必須查閱傳感器手冊同時使用各種儀器(如數字示波器、信號發(fā)生器等)通過一系列實驗來研究測試各傳感器的精度、分辨率、漂移、靈敏度、線性度和響應能力等,如通過確定不同種類的紅外傳感器因輸出飽和而產生的“死區(qū)”的消除或避免方法以及其自身的感測敏感性,從而提出紅外傳感器的合理選型和布置方式。
電機是電腦鼠的運動控制部件,學生需要學習有刷直流電機、無刷直流電機、步進電機等不同類型電機的使用特性并考察其優(yōu)缺點,并估計其實際應用對電腦鼠重量、能耗及運動控制等方面帶來的的影響。然后針對選擇的電機分別學習其驅動原理,如直流電機通常采用H橋電路和脈沖寬度調制(PWM)的方法進行控制。
2.1.2機械結構的設計
機械結構的設計是電腦鼠整體設計中較為重要的一部分,其設計結果影響到電腦鼠其他部分的設計以至其實際運行性能。但由于該部分的設計耗費時間長且難度較大因此最容易被設計者輕視,導致設計完成的電腦鼠結構不合理而達不到理想的運動效果。一般說來電腦鼠的整體機械結構的設計需要盡量遵從以下要求:電腦鼠的尺寸要盡量小(至少滿足比賽規(guī)則規(guī)定的尺寸要求),重量要盡量輕,以降低其車身重心、運動慣性和著地摩擦力,從而進一步地降低其運動能量消耗和電機發(fā)熱量,提高復雜運動狀態(tài)下的穩(wěn)定性和持續(xù)性。
除此之外設計者還需要根據各組成部件的使用特性,預估其使用目的,并確定其最優(yōu)布局方式,例如采用紅外傳感器的電腦鼠在每進入一個迷宮格需要使用紅外傳感器檢測其左、右、前三個方向是否存在迷宮墻壁,在運行過程中還要使用紅外傳感器檢測車體與左右墻壁距離,防止碰觸迷宮墻壁,因此紅外傳感器一般布置于電腦鼠車體前端邊緣,但紅外傳感器存在“死區(qū)”問題,所以紅外傳感器的布置距離迷宮墻壁要盡量遠,比如朝前向的紅外傳感器一般布置在車輪的前方而不是車體最前端。圖2為幾種種常見的紅外傳感器布置方式,其中朝向前方的紅外傳感器在迷宮搜索過程中用于檢測電腦鼠前方是否有迷宮墻壁;左右水平朝向的傳感器用于檢測電腦鼠左右兩側是否存在迷宮墻壁;左右45度朝向的傳感器用于矯正電腦鼠運行姿態(tài)防止碰撞。
(a) 6傳感器布置 (b) 4傳感器布置 (c) 5傳感器布置
圖2 常見電腦鼠紅外傳感器布置
電腦鼠機械結構的設計需要項目小組通過CAD/CAM、SolidWorks等工具軟件進行電腦鼠整體機械結構和具體零部件(如車架、車軸、齒輪等)的建模、造型、仿真,并通過數控車床或傳統(tǒng)機械加工設備進行必要零部件的加工制作,最終組裝成一體化的電腦鼠。如圖3(a)所示為臺灣龍華科技大學電子工程研究所通過SolidWorks軟件建模的電腦鼠整體機械結構圖,圖3(b)為參照該結構圖實作的電腦鼠。
(a) 電腦鼠機械結構圖
(b) 電腦鼠實作
2.1.3電路設計
硬件電路連接電腦鼠中的電源、微控制器、傳感器、電機等,是各電子部件之間能源與控制信號傳輸的紐帶。在經過硬件選型分析和完成電腦鼠機械結構的初步設計后,項目小組成員需要通過altium designer、Cadende spb等軟件設計各部分的電路圖并最終使用線路板雕刻機、顯影機、鍍錫機等設備進行PCB板的制作。一般一款電腦鼠中應包含電源電路、微控制器控制電路、傳感器驅動電路、電機驅動電路及調試電路、按鍵電路等部分。
在電路設計過程中,學生必須首先掌握相關電子部件的電氣特性和工作原理,然后根據相關特性和電腦鼠各部件實際需求設計合適有效的電路,并通過仿真驗證各部分電路的有效性,最終設計出完整的電路圖。例如直流電機的運轉一般需要時鐘產生的PWM信號驅動,PWM信號頻率的高低決定了直流電機的運轉速度,但其正反轉的控制則需要搭建H橋電路完成,如圖4所示,H橋電路采用4個三極管連接電機,當Q1和Q4導通時,電流從電源正極經Q1從左至右穿過電機,經Q4回到電源負極,從而驅動電機順時針轉動,同理,當Q2和Q3導通時,電路會驅動電機逆時針轉動。學生應在詳細分析此原理的基礎上,設計合理的電腦鼠H橋電路,完成電機驅動電路的設計。
(a) H橋電路 (b) 正向導通 (c) 反向導通
圖4 H橋電路原理示意圖
2.2.1運動狀態(tài)規(guī)劃
算法設計的目的是根據不同的情況為電腦鼠提供穩(wěn)定的控制方法,在算法設計之前,為了精確控制電腦鼠運行,學生需要在將電腦鼠的運動狀態(tài)細分的基礎上進行路徑規(guī)劃。電腦鼠的運動一般分為迷宮資料未知的迷宮搜索和迷宮資料已知的迷宮沖刺兩個過程,迷宮搜索過程又可分為直行、90度弧形轉和180度回轉三種狀態(tài),而迷宮沖刺過程除了包含以上三種運動狀態(tài)外,還需要項目小組算法設計成員通過分析所設計的電腦鼠自身能力,歸納總結競賽迷宮的內部路徑狀況,然后設計電腦鼠的具體運動狀態(tài)。如圖5所示,一種典型的電腦鼠設計將迷宮沖刺過程細分為八種運動狀態(tài):直行、90°弧形轉、180°回轉、45°弧形轉、斜線90°弧形轉、135°弧形轉、斜線直走和180°弧形轉。
圖5 一種電腦鼠運動狀態(tài)規(guī)劃
2.2.2運動控制策略
電腦鼠精確的運動狀態(tài)規(guī)劃依賴于對外界環(huán)境信息準確識別的基礎上的精確控制。然而電腦鼠的每一個電機及其驅動電路并不完全相同,因此電腦鼠左右兩輪的運動特性并非完全吻合,且電腦鼠在運動過程中始終存在著不可估計的運動誤差,所以電腦鼠的實際運動狀況與理想預期間存在較大差距,從電腦鼠運動方向上看,主要包括縱向上的誤差、橫向上的誤差和朝向角度上的誤差,如圖6所示。因此項目小組必須根據所開發(fā)的電腦鼠硬件為電腦鼠運行的各個過程設計完善的運動控制策略。
圖6 電腦鼠運動誤差示意圖
閉環(huán)控制是精確的運動控制過程中常采用的方法,紅外傳感器、光電編碼器和陀螺儀均可為閉環(huán)控制策略提供硬件支持[8]。以圖3(a)中的紅外傳感器布置方式為例,可以為在搜索過程中的電腦鼠設計如下的運動控制策略:如圖7(a)所示,在剛進入一個迷宮格時,電腦鼠通過朝前的一對傳感器檢測該迷宮格前方是否有墻壁,如有則減速停止后反轉180度繼續(xù)前進;否則進入迷宮格,并用斜方向的傳感器修正電腦鼠在迷宮格內的橫向上和朝向角度誤差,如圖7(b);修正完成后控制電機直行并使用水平方向的傳感器校正橫向上的誤差, 如圖7(c);在該迷宮格的盡頭,使用光電編碼器校正縱向上的誤差,然后通過左右斜方向的傳感器判斷下一格迷宮左右是否有墻壁,如圖7(d),如果均有就重復以上幾步過程;如果沒有且需要轉彎時,轉彎結束后通過陀螺儀校正轉彎誤差;如果不需要轉彎則保持電腦鼠直行,直到到達下一格迷宮。但如果連續(xù)幾個迷宮格左右均沒有墻壁,則通過朝前的傳感器來糾正電腦鼠左右位置和朝向偏差,如圖7(e)。
(a)
(b)
(c)
(d)
(e)
2.2.3迷宮求解算法
為了保證電腦鼠能夠在未知的迷宮中盡快地找到從迷宮起點到迷宮終點的最短路徑,項目小組成員需要深入考慮電腦鼠迷宮的求解問題,并在分析傳統(tǒng)的電腦鼠迷宮求解算法和其它領域中單源最短路徑求解算法在電腦鼠迷宮求解問題的適應性基礎上,改進現有的迷宮求解算法或者設計新的迷宮求解算法[9]。
迷宮求解算法一般分為兩個部分:迷宮搜索算法和最短路徑求解算法,其中如沿壁法、左手法、右手法、中左法、中右法、向心法等算法僅具有迷宮搜索的功能,在搜索完成后還需要根據相應算法求解最短路徑,而洪水填充法、Djikstra算法、A*算法、粒子群算法、遺傳算法等同時具有迷宮搜索和最短路徑求解的功能[10-11]。
然而相當多的迷宮求解算法執(zhí)行時存在較多問題,如洪水填充法執(zhí)行時系統(tǒng)資源消耗量較大、執(zhí)行時間較長且所求解路徑不一定為最快路徑,因此設計者必須根據所設計的電腦鼠的系統(tǒng)資源,綜合考慮迷宮求解算法和運動控制策略,優(yōu)化迷宮信息搜索和方向選擇等過程的先后順序,精簡算法中的冗余步驟,改進算法的最短路徑求解策略,從而提高算法的執(zhí)行效率。
電腦鼠的軟件設計需要將包括運動控制策略和迷宮求解算法在內的電腦鼠的整個運行過程根據微控制器的特性通過高級編程語言實現[12]。在編程高級語言代碼之前,項目小組首先需要針對電腦鼠各硬件部件的特性為其開發(fā)硬件設備驅動程序,為高級語言編寫的應用程序提供一系列操作各硬件設備的接口;然后需要繪制電腦鼠運動控制策略和迷宮求解算法的流程圖,并根據流程圖采用編程工具(如Keil C、IAR Embedded Workbench等)通過高級語言(如C語言)編程實現;最后通過編譯器將編程實現的高級編程語言編譯成微控制器可以識別的機器語言,并將其燒寫到電腦鼠的存儲部件中,實現電腦鼠的自動運行。
在電腦鼠軟件設計的過程中,項目小組成員必須學會使用仿真工具對所設計的軟件進行仿真,這使得不需要搭建復雜的硬件環(huán)境即可完成對不同控制方法的測試,降低了開發(fā)成本,加速了開發(fā)進程。常見的仿真工具如MathWorks公司的Matlab/Simulink軟件,該工具可針對電腦鼠的運動系統(tǒng)進行模擬、建模和分析[13-14]。例如設計者可以通過建立一個電機的運動控制Simulink模型,并在其中加入速度估測系統(tǒng)或者將速度PI控制器替換為位置PD控制器來檢測電腦鼠的控制性能;或者通過將軌跡計算移動方程式構建為Simulink模型檢測電腦鼠在各種運動狀態(tài)下的運行軌跡并據此提出修正策略;或通過Matlab中的圖形使用者界面發(fā)展環(huán)境與程序,以圖形的方式直觀地檢測迷宮求解算法的運行效率[15]。
我中心自2011年開始,在以現代電子電氣信息教學實訓區(qū)和傳統(tǒng)工藝實訓區(qū)以及校內其它實驗室或研究機構的教學設施和師資的基礎上,通過將機械、電子、算法、軟件等不同學科專業(yè)的學生組合成一個項目小組,在多名不同領域授課教師的綜合指導下,試點IEEE標準電腦鼠的設計與實作這一綜合性工程實踐課程,到目前為止獲得了良好的教學效果,達到了預期教學目標。
在電腦鼠的設計制作工程實踐過程中,學生作為項目小組成員發(fā)現了很多傳統(tǒng)課堂上未傳授的新問題,學習了很多技術知識和問題解決方法,獲得了很多實踐技能,具體包括機械、電子、軟件、控制等基礎知識的實踐應用能力,實驗的設計及操作和數據分析的能力,系統(tǒng)性、整體性設計的能力,發(fā)現、分析、處理工程技術問題的能力,團隊合作與交流的能力,技術技能和現代工程工具在工程實踐中的應用能力,自主學習和創(chuàng)新能力,時間分配管理的能力等。
通過該實踐課程將原有的單一和集中式的授課方式轉變?yōu)榫C合和發(fā)散式的授課方式,減少了指導教師對同一課程的教學重復量,增加了課程的教學課時,提高了教學效率。同時以項目競賽的形式替代傳統(tǒng)理論色彩濃厚的實踐教學方式,寓教于樂,提高了工程實踐教學的實踐性和學生的學習興趣。
隨著現代科技的迅速發(fā)展,我國現行教育體制下的傳統(tǒng)工程實踐教學內容和教學方法已不能滿足現代高層次工程技術人才的培養(yǎng)要求。針對我國目前工程實踐教學普遍存在教學能力不足的問題,我?,F代工程訓練中心近年來參考國外工科實踐教學模式試點開設了“IEEE標準電腦鼠的設計與制作”這一工程實踐課程。論文以該課程為例,從IEEE標準電腦鼠的設計開發(fā)深入闡述了學生在該工程實踐課程中需要學習的工程實踐技能。長時間的實踐教學表明,工程實踐課程“IEEE標準電腦鼠的設計與制作”使學生以項目小組的形式設計制作電腦鼠,并參與到實踐競賽當中,不僅可以提升教師教學效率、提高教學質量,還可以提高學生的工程實踐、自主學習和研發(fā)創(chuàng)新能力,并掌握團隊合作、時間分配和人際交流的技巧。
[1] 王章豹,劉光復,吳玉程. 強化工科實踐教學培養(yǎng)學生的工程實踐與創(chuàng)新能力[J]. 合肥工業(yè)大學學報(社會科學版),2006,20(4):1-5.
WANG Zhang-bao, LIU Guang-fu, WU Yu-cheng. Strengthening the practical teaching of engineering course to train students' ability of engineering practice and innovation[J]. Journal of Hefei University of Technology(Social Sciences),2006,20(4):1-5.
[2] 惠記莊,劉海明,鄒亞科. 現代工程訓練中心建設及訓練模式的探索[J]. 實驗技術與管理,2009,26(3):115-118.
HUI Ji-zhuang, LIU Hai-ming, ZOU Ya-ke. Exploration of construction of modern engineering training center and training mode[J].Experimental Technology and Management,2009,26(3):115-118.
[3] 祝學云,況迎輝,楊海波. “基于LM3S615的電腦鼠實踐”研討班課程建設[J]. 電氣電子教學學報,2011,33(4):25-26,53.
ZHU Xue-yun, KUANG Ying-bo, YANG Hai-bo. Seminar course construction of lm3s615 based computer mouse practice[J]. Journal of EEE, 2011, 33(4):25-26,53.
[4] 宮兆儉. 新型電腦鼠的設計開發(fā)[D].青島:中國海洋大學,2013.
[5] HUANG Hsin-Hsiung, SU Juing-Huei, LEE Chyi-Shyong. A Contest-Oriented Project for Learning Intelligent Mobile Robots[J]. IEEE Transactions on Education, 2013, 56(1):88-96.
[6] 周立功. ARM嵌入式系統(tǒng)基礎教程(第2版)[M]. 北京:北京航空航天大學出版社,2008.
[7] 方金亮,談英姿,周怡君. 基于ARM的IEEE標準電腦鼠研究與實現[J]. 機械制造與自動化,2008,37(5):99-101.
FANG Jin-liang, TAN Ying-zi, ZHOU Yi-jun. Micromouse based on ARM of IEEE standard[J]. Machine Building & Automation,2008, 37(5): 99-101.
[8] 趙俊逸,林志賢. 在電腦鼠設計中使用紅外LED管測距的研究[J]. 單片機與嵌入式系統(tǒng)應用,2007(7):84-85.
ZHAO Jun-yi, LIN Zhi-xian. Study of using infrared LED tube to measure the distance in the design of Micromouse[J]. Microcontroller & Embedded Systems,2007(7):84-85.
[9] SINGH A, SEKHON G S. A new shortest path finding algorithm for a maze solving robot with simulator[J]. International Journal of Computer Science and Communication, 2011, 2(2):445-449.
[10] LAW George. Quantitative Comparison of Flood Fill and Modified Flood Fill Algorithms[J]. International Journal of Computer Theory and Engineering, 2013, 5(3):503-508.
[11] 郭長生,龔 濤,李 龍. 一種電腦鼠走迷宮搜索算法[J]. 華中科技大學學報(自然科學版),2013(S1):388-391.
GUO Chang-sheng, GONG Tao, LI Long. A solving algorithm for micromouse maze[J]. J.Huazhong Univ.of Sci.& Tech.(Natural Science Edition),2013(S1):388-391.
[12] 夏 炎. 基于ARM7的電腦鼠的設計與實現[J]. 煤炭技術,2010(12): 188-189.
XIA Yan. Design and implementation of micromouse based on ARM7[J]. Coal Technology, 2010(12): 188-189.
[13] 薛 艷. 電腦鼠模糊PID控制算法研究[D].西安:長安大學,2010.
[14] 王鳳林,王宜懷. 一種電腦鼠走迷宮算法的設計與實現[J]. 計算機應用與軟件,2010,27(12):270-272,290.
WANG Feng-lin, WANG Yi-huai. Designing and implementing a maze solving algorithm for micromouse[J]. Computer Applications and Software,2010,27(12): 270-272,290.
[15] 王 磊. 基于IEEE電腦鼠走迷宮競賽的迷宮算法分析與實現[D].濟南:山東大學,2013.